<?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>174192</bug_id>
          
          <creation_ts>2017-07-05 20:42:34 -0700</creation_ts>
          <short_desc>[PAL] Move SessionID into PAL</short_desc>
          <delta_ts>2017-08-17 20:16:33 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Don Olmstead">don.olmstead</reporter>
          <assigned_to name="Don Olmstead">don.olmstead</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yoshiaki.jitsukawa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1325913</commentid>
    <comment_count>0</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-07-05 20:42:34 -0700</bug_when>
    <thetext>WebCore::SessionID is required in multiple places within WebCore/platform but is currently at WebCore/page/SessionID.h. For example platform/network/NetworkStorageSession and WebCoreCrossThreadCopier.

It seems like it should reside within pal/network.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325915</commentid>
    <comment_count>1</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-07-05 20:43:15 -0700</bug_when>
    <thetext>Alex does this work for you? There&apos;s quite a lot of places that need to be touched to make this happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326060</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-07-06 09:36:16 -0700</bug_when>
    <thetext>Hmmm.  PAL will probably need to use it, and it will probably need to go into PAL, but a SessionID corresponds with a WebsiteDataStore and all forms of persistent storage.  Cookies and HTTP cache are two parts of that, but because it isn&apos;t a concept that has only to do with the network, I wouldn&apos;t put it in the network directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338585</commentid>
    <comment_count>3</comment_count>
      <attachid>318098</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-08-14 18:56:36 -0700</bug_when>
    <thetext>Created attachment 318098
WIP Patch

WinCairo builds checking GTK/WPE. No XCode changes yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338587</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-14 18:58:29 -0700</bug_when>
    <thetext>Attachment 318098 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:67:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:68:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:71:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:73:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:74:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:76:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:80:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:87:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Storage/StorageProcessProxy.cpp:86:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Storage/StorageProcessProxy.cpp:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:110:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:137:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:143:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:149:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:155:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:161:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:167:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:199:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:245:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:264:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:65:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:65:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:70:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:70:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/NetworkProcess/NetworkProcess.cpp:328:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:125:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:140:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/loader/cache/MemoryCache.cpp:275:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp:183:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp:183:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 35 in 194 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>1338912</commentid>
    <comment_count>5</comment_count>
      <attachid>318187</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-08-15 15:40:31 -0700</bug_when>
    <thetext>Created attachment 318187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338913</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-15 15:43:05 -0700</bug_when>
    <thetext>Attachment 318187 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:67:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:68:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:71:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:73:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:74:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:76:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:80:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:87:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Storage/StorageProcessProxy.cpp:86:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Storage/StorageProcessProxy.cpp:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:110:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:137:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:143:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:149:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:155:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:161:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:167:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:199:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:245:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:264:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:65:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:65:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:70:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:70:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/NetworkProcess/NetworkProcess.cpp:328:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:125:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:140:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/loader/cache/MemoryCache.cpp:275:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp:183:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp:183:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 35 in 199 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>1338930</commentid>
    <comment_count>7</comment_count>
      <attachid>318190</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-08-15 16:04:54 -0700</bug_when>
    <thetext>Created attachment 318190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338931</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-15 16:06:30 -0700</bug_when>
    <thetext>Attachment 318190 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:67:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:68:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:71:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:73:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:74:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:76:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:80:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:87:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Storage/StorageProcessProxy.cpp:86:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Storage/StorageProcessProxy.cpp:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:110:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:137:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:143:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:149:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:155:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:161:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:167:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:199:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:245:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:264:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:65:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:65:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:70:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:70:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/NetworkProcess/NetworkProcess.cpp:328:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:125:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:140:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/loader/cache/MemoryCache.cpp:275:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp:183:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp:183:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 35 in 199 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>1338953</commentid>
    <comment_count>9</comment_count>
      <attachid>318190</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-08-15 16:31:35 -0700</bug_when>
    <thetext>Comment on attachment 318190
Patch

This moves SessionID into PAL completely fixing layering violations present in WebCore/platform. Mostly this was just a find/replace operation. Only notable thing is teaching the derived sources script in WebKit about the SessionID&apos;s location.

Believe the style errors are just from the style checker not understanding the syntax usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339332</commentid>
    <comment_count>10</comment_count>
      <attachid>318300</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-08-16 16:07:19 -0700</bug_when>
    <thetext>Created attachment 318300
Patch

Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339356</commentid>
    <comment_count>11</comment_count>
      <attachid>318305</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-08-16 16:42:42 -0700</bug_when>
    <thetext>Created attachment 318305
Patch

Rebased again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339357</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-16 16:45:00 -0700</bug_when>
    <thetext>Attachment 318305 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:67:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:68:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:71:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:73:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:74:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:76:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:80:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:87:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Storage/StorageProcessProxy.cpp:86:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Storage/StorageProcessProxy.cpp:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:110:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:137:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:143:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:149:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:155:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:161:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:167:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:199:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:245:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:264:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:65:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:65:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:70:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/C/WKCookieManager.cpp:70:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/NetworkProcess/NetworkProcess.cpp:328:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:125:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:140:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/loader/cache/MemoryCache.cpp:275:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:203:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp:183:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp:183:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 35 in 198 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>1339549</commentid>
    <comment_count>13</comment_count>
      <attachid>318305</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-08-17 07:46:17 -0700</bug_when>
    <thetext>Comment on attachment 318305
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339561</commentid>
    <comment_count>14</comment_count>
      <attachid>318305</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-17 08:17:09 -0700</bug_when>
    <thetext>Comment on attachment 318305
Patch

Clearing flags on attachment: 318305

Committed r220857: &lt;http://trac.webkit.org/changeset/220857&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339562</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-17 08:17:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339563</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-17 08:18:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/33940723&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339606</commentid>
    <comment_count>17</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-17 09:57:35 -0700</bug_when>
    <thetext>Why did SessionID.h move to &lt;pal/identifier/.&gt;?

Why not just &lt;pal/.&gt;?

I am strongly against segregating the paths within the pal exports. We don&apos;t do that in WebCore or WTF (with the exception of WTF/text/ which is a special case where there&apos;s a particular reason to do so)

Could you either fix this in a followup or roll it out until you have time to revisit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339614</commentid>
    <comment_count>18</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-08-17 10:33:43 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #17)
&gt; Why did SessionID.h move to &lt;pal/identifier/.&gt;?
&gt; 
&gt; Why not just &lt;pal/.&gt;?
&gt; 
&gt; I am strongly against segregating the paths within the pal exports. We don&apos;t
&gt; do that in WebCore or WTF (with the exception of WTF/text/ which is a
&gt; special case where there&apos;s a particular reason to do so)
&gt; 
&gt; Could you either fix this in a followup or roll it out until you have time
&gt; to revisit?

Is the ask to just move the file into the root? or to do something like WebCore where the includes look like &lt;WebCore/*.h&gt;? for WebKit(Legacy)?

I&apos;m fine with doing a followup with whatever the consensus is. I have been trying to organize things when moving them to PAL as a lot of WebCore/platform is a bit of a dumping ground.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339620</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-17 10:40:21 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #18)
&gt; (In reply to Brady Eidson from comment #17)
&gt; &gt; Why did SessionID.h move to &lt;pal/identifier/.&gt;?
&gt; &gt; 
&gt; &gt; Why not just &lt;pal/.&gt;?
&gt; &gt; 
&gt; &gt; I am strongly against segregating the paths within the pal exports. We don&apos;t
&gt; &gt; do that in WebCore or WTF (with the exception of WTF/text/ which is a
&gt; &gt; special case where there&apos;s a particular reason to do so)
&gt; &gt; 
&gt; &gt; Could you either fix this in a followup or roll it out until you have time
&gt; &gt; to revisit?
&gt; 
&gt; Is the ask to just move the file into the root? or to do something like
&gt; WebCore where the includes look like &lt;WebCore/*.h&gt;? for WebKit(Legacy)?
&gt; 

Move to root.

I see now that we&apos;re segregating by path in all the &lt;pal&gt; headers. 
&lt;pal/spi&gt;, &lt;pal/system&gt;, &lt;pal/crypto&gt;, etc.

This is silly. If this was a decision made by consensus anywhere, I missed the conversation. I would&apos;ve participated as a strong &quot;nay&quot;

&gt; I have been trying to organize things when moving them to PAL as a lot of
&gt; WebCore/platform is a bit of a dumping ground.

WebCore itself is a vast dumping ground. But all of the headers still export to a root path.

WTF is a dumping ground, but most of the headers still export to a root path.

WebKit is a dumping ground, but the headers export to a root path.

System headers are a dumping ground, but they mostly export to a root path.

It&apos;s unclear to me what the identified value is for engineers in the WebKit project to have to learn longer subdirectories for commonly used headers.

e.g. When I used to include SessionID.h in WebKit, I knew it was &lt;WebCore/SessionID.h&gt;
It would take a day or two to adapt to &lt;pal/SessionID.h&gt;
It would take me a *LONG* time to remember &lt;pal/identifier/SessionID.h&gt;, and I see no value in anybody having to do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339760</commentid>
    <comment_count>20</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-08-17 14:25:38 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #19)
&gt; (In reply to Don Olmstead from comment #18)
&gt; &gt; (In reply to Brady Eidson from comment #17)
&gt; &gt; &gt; Why did SessionID.h move to &lt;pal/identifier/.&gt;?
&gt; &gt; &gt; 
&gt; &gt; &gt; Why not just &lt;pal/.&gt;?
&gt; &gt; &gt; 
&gt; &gt; &gt; I am strongly against segregating the paths within the pal exports. We don&apos;t
&gt; &gt; &gt; do that in WebCore or WTF (with the exception of WTF/text/ which is a
&gt; &gt; &gt; special case where there&apos;s a particular reason to do so)
&gt; &gt; &gt; 
&gt; &gt; &gt; Could you either fix this in a followup or roll it out until you have time
&gt; &gt; &gt; to revisit?
&gt; &gt; 
&gt; &gt; Is the ask to just move the file into the root? or to do something like
&gt; &gt; WebCore where the includes look like &lt;WebCore/*.h&gt;? for WebKit(Legacy)?
&gt; &gt; 
&gt; 
&gt; Move to root.
&gt; 
&gt; I see now that we&apos;re segregating by path in all the &lt;pal&gt; headers. 
&gt; &lt;pal/spi&gt;, &lt;pal/system&gt;, &lt;pal/crypto&gt;, etc.
&gt; 
&gt; This is silly. If this was a decision made by consensus anywhere, I missed
&gt; the conversation. I would&apos;ve participated as a strong &quot;nay&quot;
&gt; 
&gt; &gt; I have been trying to organize things when moving them to PAL as a lot of
&gt; &gt; WebCore/platform is a bit of a dumping ground.
&gt; 
&gt; WebCore itself is a vast dumping ground. But all of the headers still export
&gt; to a root path.
&gt; 
&gt; WTF is a dumping ground, but most of the headers still export to a root path.
&gt; 
&gt; WebKit is a dumping ground, but the headers export to a root path.
&gt; 
&gt; System headers are a dumping ground, but they mostly export to a root path.
&gt; 
&gt; It&apos;s unclear to me what the identified value is for engineers in the WebKit
&gt; project to have to learn longer subdirectories for commonly used headers.
&gt; 
&gt; e.g. When I used to include SessionID.h in WebKit, I knew it was
&gt; &lt;WebCore/SessionID.h&gt;
&gt; It would take a day or two to adapt to &lt;pal/SessionID.h&gt;
&gt; It would take me a *LONG* time to remember &lt;pal/identifier/SessionID.h&gt;, and
&gt; I see no value in anybody having to do so.

A patch is at https://bugs.webkit.org/show_bug.cgi?id=175684 for your review that moves SessionID to the root of the pal directory.

I see your issue with how things are currently looking and since PAL is still being fleshed out I&apos;d like to address your feedback earlier rather than later. Is this something you want addressed on the mailing list so others can chime in or should I just put together a bug that will create forwarding headers which behave in the same way as the &lt;WebCore/*.h&gt; includes and start implementing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339862</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-17 17:14:16 -0700</bug_when>
    <thetext>I would just go ahead and work on forwarding headers. There&apos;s no reason for PAL to operate differently than other WebKit subprojects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339918</commentid>
    <comment_count>22</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-17 20:02:49 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #21)
&gt; I would just go ahead and work on forwarding headers. There&apos;s no reason for
&gt; PAL to operate differently than other WebKit subprojects.

^^^

👍👍👍</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339927</commentid>
    <comment_count>23</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-08-17 20:16:33 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #22)
&gt; (In reply to Michael Catanzaro from comment #21)
&gt; &gt; I would just go ahead and work on forwarding headers. There&apos;s no reason for
&gt; &gt; PAL to operate differently than other WebKit subprojects.
&gt; 
&gt; ^^^
&gt; 
&gt; 👍👍👍

Will work on this next https://bugs.webkit.org/show_bug.cgi?id=175705 to get things resolved.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318098</attachid>
            <date>2017-08-14 18:56:36 -0700</date>
            <delta_ts>2017-08-15 15:40:31 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-174192.diff</filename>
            <type>text/plain</type>
            <size>329886</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTNmNGM5MmI2OTguLjEzNDYzZWJiNzdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjE2Myw3ICsyMTYzLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEu
Y3BwCiAgICAgcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKLSAgICBwYWdlL1Nlc3Npb25JRC5jcHAK
ICAgICBwYWdlL1NldHRpbmdzLmNwcAogICAgIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCiAgICAg
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNGUxOWFhYzhhNC4uNThj
Y2ZhNmM5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNTIgQEAKKzIwMTctMDgtMTQgIERvbiBP
bG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBbUEFMXSBNb3ZlIFNl
c3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
ICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3kp
OgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHls
ZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6OkNhY2hl
ZENTU1N0eWxlU2hlZXQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNo
ZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkRm9udDo6Q2FjaGVkRm9udCk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZEZvbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmF3UmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OkNh
Y2hlZFJhd1Jlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3Vy
Y2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2Vzc2lvbklEIGNvbnN0KToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
U1ZHRm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdGb250OjpDYWNoZWRTVkdG
b250KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
U2NyaXB0OjpDYWNoZWRTY3JpcHQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFRleHRUcmFjazo6Q2FjaGVkVGV4dFRyYWNrKToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkWFNMU3R5
bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFhTTFN0eWxlU2hlZXQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnNlc3Npb25SZXNvdXJjZU1hcCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZW5zdXJlU2Vzc2lvblJlc291
cmNlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmZvckVhY2hTZXNzaW9uUmVzb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5zKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpvcmlnaW5zV2l0aENhY2hlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpldmljdFJlc291cmNlcyk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmg6CisgICAgICAgICogbG9hZGVyL2NvY29hL0Rp
c2tDYWNoZU1vbml0b3JDb2NvYS5oOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRv
cjo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvRGlza0NhY2hlTW9u
aXRvckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6bW9uaXRv
ckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNrQ2FjaGVN
b25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKToKKyAgICAgICAgKiBwYWdlL0RhdGFiYXNlUHJvdmlk
ZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjplbmFibGVMZWdhY3lQcml2YXRlQnJvd3Np
bmcpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OnNldFNlc3Npb25JRCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6Cisg
ICAgICAgICogcGFnZS9QbHVnSW5DbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1NvY2tldFByb3Zp
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRT
dHJlYW1IYW5kbGUpOgorICAgICAgICAqIHBhZ2UvU29ja2V0UHJvdmlkZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9XZWJDb3Jl
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoV1RGOjpQQUw6OlNlc3Npb25JRD46OmNv
cHkpOgorICAgICAgICAoV1RGOjpXZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb3B5KTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpoZWFkZXJWYWx1ZUZvclZhcnkpOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdFZhcnlpbmdS
ZXF1ZXN0SGVhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjp2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhl
YWRlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnbG9iYWxTZXNzaW9uTWFwKToK
KyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZXN0cm95U2Vzc2lv
bik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2Vzc2lvbklEIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpl
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGlu
Z1Nlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZh
dWx0U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpT
b2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OlNvY2tldFN0cmVhbUhhbmRsZUltcGwpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUpOgorICAgICAg
ICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNj
b3BlKToKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6bm90aWZ5
RmluaXNoZWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3Rh
cnRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZCk6CisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5oOgorCiAyMDE3LTA4LTE0ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIE9iai1DIGV4Y2VwdGlvbiBjcmFzaCBp
biBBVlN0cmVhbVNlc3Npb24gd2hlbiB1c2luZyBFTUUgaW4gUHJpdmF0ZSBCcm93c2luZyBtb2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHAKaW5kZXggZjEyMWUyNTFkY2MuLjdiNTFlYzMxNDdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0
IFVSTCYgcmVxdWVzdGVkVVJMLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQogICAgIGlmIChGcmFt
ZSogZnJhbWUgPSBtX2RvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgIHJlZigpOwogICAgICAg
ICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICAgICAgU2Vzc2lvbklEIHNlc3Npb25J
RCA9IHBhZ2UgPyBwYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpOworICAgICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBwYWdlID8gcGFnZS0+c2Vz
c2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgICAgICBT
dHJpbmcgcGFydGl0aW9uID0gbV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS5zZWN1cml0eU9yaWdp
bigpLmRvbWFpbkZvckNhY2hlUGFydGl0aW9uKCk7CiAgICAgICAgIG1faGFuZGxlID0gbV9zb2Nr
ZXRQcm92aWRlci0+Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKG1faGFuZHNoYWtlLT51cmwoKSwg
KnRoaXMsIHNlc3Npb25JRCwgcGFydGl0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRl
eCA5ZTJmOTkwMjliMi4uYTQ2ODhkYzBhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDE3LTA4LTE0ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+
CisKKyAgICAgICAgW1BBTF0gTW92ZSBTZXNzaW9uSUQgaW50byBQQUwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDE5MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL0NNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5jcHAuCisgICAgICAgICogcGFsL2lkZW50aWZpZXIv
U2Vzc2lvbklELmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5o
LgorICAgICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjpoYXNoKToKKyAgICAgICAgKFdURjo6U2Vz
c2lvbklESGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lv
bklEPjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8UEFMOjpTZXNzaW9u
SUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFBB
TDo6U2Vzc2lvbklEPjo6aXNEZWxldGVkVmFsdWUpOgorCiAyMDE3LTA4LTExICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlcGxhY2UgREFUQV9UUkFOU0ZFUl9J
VEVNUyBieSBhIHJ1bnRpbWUgZmxhZyBhbmQgYWRkIGEgc3R1YiBpbXBsZW1lbnRhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvQ01ha2VMaXN0cy50eHQKaW5kZXggNTU2YTUwOGM2ZGIuLmRkNjExZDU2
NmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvQ01ha2VMaXN0cy50eHQKQEAgLTEsNCArMSw1IEBA
CiBzZXQoUEFMX1NPVVJDRVMKKyAgICBpZGVudGlmaWVyL1Nlc3Npb25JRC5jcHAKICkKIAogc2V0
KFBBTF9JTkNMVURFX0RJUkVDVE9SSUVTCkBAIC04LDYgKzksNyBAQCBzZXQoUEFMX0lOQ0xVREVf
RElSRUNUT1JJRVMKIHNldChQQUxfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
UEFMX0RJUn0vcGFsIgogICAgICIke1BBTF9ESVJ9L3BhbC9jcnlwdG8iCisgICAgIiR7UEFMX0RJ
Un0vcGFsL2lkZW50aWZpZXIiCiAgICAgIiR7UEFMX0RJUn0vcGFsL3N5c3RlbSIKICAgICAiJHtQ
QUxfRElSfS9wYWwvdGV4dCIKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vz
c2lvbklELmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaWRlbnRpZmllci9TZXNzaW9uSUQu
Y3BwCnNpbWlsYXJpdHkgaW5kZXggOTglCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2Vzc2lvbklELmNwcApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvUEFML3BhbC9pZGVudGlmaWVy
L1Nlc3Npb25JRC5jcHAKaW5kZXggMmUxNTk1MDhjNzIuLmM0MjM1ZTRkOTdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFj
ZSBQQUwgewogCiBzdGF0aWMgdWludDY0X3QgY3VycmVudFBlcnNpc3RlbnRJRCA9IFNlc3Npb25J
RDo6RGVmYXVsdFNlc3Npb25JRDsKIHN0YXRpYyB1aW50NjRfdCBjdXJyZW50RXBoZW1lcmFsSUQg
PSBTZXNzaW9uSUQ6OkxlZ2FjeVByaXZhdGVTZXNzaW9uSUQ7CkBAIC02MCw0ICs2MCw0IEBAIFNl
c3Npb25JRCBTZXNzaW9uSUQ6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgcmV0dXJuIFNlc3Np
b25JRCB7IG1fc2Vzc2lvbklEIH07CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8g
bmFtZXNwYWNlIFBBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaApzaW1pbGFy
aXR5IGluZGV4IDgwJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5o
CnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmgK
aW5kZXggMzc4ZjY4OWQxNzQuLmRlZjQ5N2U5NGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Nlc3Npb25JRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rp
b25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUg
eworbmFtZXNwYWNlIFBBTCB7CiAKIGNsYXNzIFNlc3Npb25JRCB7CiBwdWJsaWM6CkBAIC01Myw5
ICs1Myw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX3Nl
c3Npb25JRCAhPSBIYXNoVGFibGVFbXB0eVZhbHVlSUQgJiYgbV9zZXNzaW9uSUQgIT0gSGFzaFRh
YmxlRGVsZXRlZFZhbHVlSUQ7IH0KICAgICBib29sIGlzRXBoZW1lcmFsKCkgY29uc3QgeyByZXR1
cm4gbV9zZXNzaW9uSUQgJiBFcGhlbWVyYWxTZXNzaW9uTWFzayAmJiBtX3Nlc3Npb25JRCAhPSBI
YXNoVGFibGVEZWxldGVkVmFsdWVJRDsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNl
c3Npb25JRCBnZW5lcmF0ZUVwaGVtZXJhbFNlc3Npb25JRCgpOwotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTZXNzaW9uSUQgZ2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lvbklEKCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24oKTsKKyAg
ICBQQUxfRVhQT1JUIHN0YXRpYyBTZXNzaW9uSUQgZ2VuZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQo
KTsKKyAgICBQQUxfRVhQT1JUIHN0YXRpYyBTZXNzaW9uSUQgZ2VuZXJhdGVQZXJzaXN0ZW50U2Vz
c2lvbklEKCk7CisgICAgUEFMX0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFibGVHZW5lcmF0aW9uUHJv
dGVjdGlvbigpOwogCiAgICAgdWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uSUQ7IH0KICAgICBib29sIG9wZXJhdG9yPT0oU2Vzc2lvbklEIHNlc3Npb25JRCkgY29u
c3QgeyByZXR1cm4gbV9zZXNzaW9uSUQgPT0gc2Vzc2lvbklELm1fc2Vzc2lvbklEOyB9CkBAIC05
MywyMiArOTMsMjIgQEAgYm9vbCBTZXNzaW9uSUQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBT
ZXNzaW9uSUQmIHNlc3Npb25JRCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgUEFMCiAKIG5hbWVzcGFjZSBXVEYgewogCiBzdHJ1
Y3QgU2Vzc2lvbklESGFzaCB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViQ29y
ZTo6U2Vzc2lvbklEJiBwKSB7IHJldHVybiBpbnRIYXNoKHAuc2Vzc2lvbklEKCkpOyB9Ci0gICAg
c3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBhLCBjb25zdCBXZWJD
b3JlOjpTZXNzaW9uSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBwKSB7IHJldHVybiBpbnRIYXNoKHAuc2Vzc2lv
bklEKCkpOyB9CisgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUEFMOjpTZXNzaW9uSUQmIGEs
IGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBiKSB7IHJldHVybiBhID09IGI7IH0KICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwotdGVt
cGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+IDogR2VuZXJpY0hh
c2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lvbklEPiB7Ci0gICAgc3RhdGljIFdlYkNvcmU6OlNlc3Np
b25JRCBlbXB0eVZhbHVlKCkgeyByZXR1cm4gV2ViQ29yZTo6U2Vzc2lvbklEOjplbXB0eVNlc3Np
b25JRCgpOyB9Cit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPiA6
IEdlbmVyaWNIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPiB7CisgICAgc3RhdGljIFBBTDo6U2Vz
c2lvbklEIGVtcHR5VmFsdWUoKSB7IHJldHVybiBQQUw6OlNlc3Npb25JRDo6ZW1wdHlTZXNzaW9u
SUQoKTsgfQogCi0gICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6
OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gV2ViQ29yZTo6U2Vzc2lvbklEOjpoYXNoVGFibGVE
ZWxldGVkVmFsdWUoKTsgfQotICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdl
YkNvcmU6OlNlc3Npb25JRCYgc2xvdCkgeyByZXR1cm4gc2xvdCA9PSBXZWJDb3JlOjpTZXNzaW9u
SUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0
RGVsZXRlZFZhbHVlKFBBTDo6U2Vzc2lvbklEJiBzbG90KSB7IHNsb3QgPSBQQUw6OlNlc3Npb25J
RDo6aGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRW
YWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyByZXR1cm4gc2xvdCA9PSBQQUw6OlNl
c3Npb25JRDo6aGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KIH07Ci10ZW1wbGF0ZTw+IHN0cnVj
dCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpTZXNzaW9uSUQ+IHsKK3RlbXBsYXRlPD4gc3RydWN0IERl
ZmF1bHRIYXNoPFBBTDo6U2Vzc2lvbklEPiB7CiAgICAgdHlwZWRlZiBTZXNzaW9uSURIYXNoIEhh
c2g7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmYTcwOGNlZTg2NS4uZjcyZmVl
N2U0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDY3MSw3ICs0NjcxLDcgQEAgVVJM
IERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKICAgICByZXR1
cm4gY29tcGxldGVVUkwodXJsLCBtX2Jhc2VVUkwpOwogfQogCi1TZXNzaW9uSUQgRG9jdW1lbnQ6
OnNlc3Npb25JRCgpIGNvbnN0CitQQUw6OlNlc3Npb25JRCBEb2N1bWVudDo6c2Vzc2lvbklEKCkg
Y29uc3QKIHsKICAgICBpZiAobV9zZXNzaW9uSUQuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
bV9zZXNzaW9uSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGNmYjcyMDUwMTZiLi5mMzYyMDY5
ZWVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJS
ZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiU3RyaW5nV2l0
aERpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiVGV4
dFJlc291cmNlRGVjb2Rlci5oIgpAQCAtNTQsNiArNTMsNyBAQAogI2luY2x1ZGUgIlVzZXJBY3Rp
b25FbGVtZW50U2V0LmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRl
IDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTY0Miw3ICs2NDIsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAg
ICAgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYgYmFzZVVSTE92ZXJy
aWRlKSBjb25zdDsKLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CisgICAg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICAgICBTdHJpbmcgdXNl
ckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFsOwogCkBAIC0xODEwLDcgKzE4MTAsNyBAQCBw
cml2YXRlOgogI2VuZGlmCiAKICAgICBPcmllbnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25O
b3RpZmllcjsKLSAgICBtdXRhYmxlIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBtdXRhYmxl
IFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogCiAgICAgc3RhdGljIGJvb2wgaGFzRXZlckNy
ZWF0ZWRBbkFYT2JqZWN0Q2FjaGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgKaW5kZXggZjA3MTMzNzM0N2EuLjMyZjE5YzMwM2ZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTUwLDYgKzUwLDEwIEBA
IGNsYXNzIENvbnNvbGVNZXNzYWdlOwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogfQogCituYW1l
c3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CkBAIC02MSw3ICs2NSw2IEBAIGNsYXNzIFB1YmxpY1VSTE1h
bmFnZXI7CiBjbGFzcyBSZWplY3RlZFByb21pc2VUcmFja2VyOwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXNzaW9uSUQ7CiBjbGFzcyBTb2Nr
ZXRQcm92aWRlcjsKIGNsYXNzIFVSTDsKIApAQCAtODIsNyArODUsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgVVJMIGNv
bXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBTZXNz
aW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNv
bnN0IFVSTCYpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggYjg0NDRlMDdlNjEuLjNmNWUwNmNhZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTgyLDcgKzgyLDYgQEAKICNpbmNsdWRlICJTY3Jp
cHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTbGVlcERpc2Fi
bGVyLmgiCkBAIC05MCw2ICs4OSw3IEBACiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDxsaW1pdHM+
CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CmluZGV4IDdiY2UzNDhjNGUyLi5mNjQzZjg3N2MzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC03NjksNyArNzY5LDcgQEAgdm9pZCBEb2N1bWVudExvYWRl
cjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICAg
ICAgLy8gRG93bmxvYWQgbWF5IHVzZSB0aGlzIGtub3dsZWRnZSBmb3IgcHVycG9zZXMgdW5yZWxh
dGVkIHRvIGNvb2tpZXMsIG5vdGFibHkgZm9yIHNldHRpbmcgZmlsZSBxdWFyYW50aW5lIGRhdGEu
CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnNldE9yaWdpbmFsVVJMRm9yRG93bmxvYWRSZXF1ZXN0
KG1fcmVxdWVzdCk7CiAKLSAgICAgICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpOworICAgICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgICAgICBpZiAoZnJhbWUoKSAm
JiBmcmFtZSgpLT5wYWdlKCkpCiAgICAgICAgICAgICBzZXNzaW9uSUQgPSBmcmFtZSgpLT5wYWdl
KCktPnNlc3Npb25JRCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmlu
ZGV4IGNkMWQ5Y2JhYzIxLi4yODExODk4OTVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBjbGFzcyBFbXB0eUNvbnRleHRNZW51Q2xp
ZW50IGZpbmFsIDogcHVibGljIENvbnRleHRNZW51Q2xpZW50IHsKIAogY2xhc3MgRW1wdHlEYXRh
YmFzZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIERhdGFiYXNlUHJvdmlkZXIgewogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQotICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVy
JiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFNlc3Npb25JRCYpIGZpbmFs
CisgICAgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1Nl
cnZlckZvclNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBmaW5hbAogICAgIHsKICAgICAg
ICAgc3RhdGljIGF1dG8mIHNoYXJlZENvbm5lY3Rpb24gPSBJblByb2Nlc3NJREJTZXJ2ZXI6OmNy
ZWF0ZSgpLmxlYWtSZWYoKTsKICAgICAgICAgcmV0dXJuIHNoYXJlZENvbm5lY3Rpb24uY29ubmVj
dGlvblRvU2VydmVyKCk7CkBAIC0yOTMsNyArMjkzLDcgQEAgY2xhc3MgRW1wdHlGcmFtZUxvYWRl
ckNsaWVudCBmaW5hbCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAgICAgdm9pZCBkZXRh
Y2hlZEZyb21QYXJlbnQyKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQz
KCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9h
ZChEb2N1bWVudExvYWRlciosIFNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgY29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KIAog
ICAgIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZywg
RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBmaW5hbCB7IH0KICAgICBi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZykgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggMzk0ZDA5YTZkYzcuLjAyZTI5Mzk5N2JlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNTcsNiArNTcsMTAgQEAgT0JK
Q19DTEFTUyBOU0RpY3Rpb25hcnk7CiBPQkpDX0NMQVNTIE5TVmlldzsKICNlbmRpZgogCituYW1l
c3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKQEAgLTkwLDcgKzk0LDYgQEAgY2xhc3Mg
UmVzb3VyY2VIYW5kbGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXNzaW9uSUQ7CiBjbGFzcyBT
aGFyZWRCdWZmZXI7CiBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKIGNsYXNzIFVSTDsKQEAgLTI3Myw3
ICsyNzYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJh
bWVzZXQoYm9vbCkgPSAwOyAvLyBDYW4gY2hhbmdlIGR1ZSB0byBuYXZpZ2F0aW9uIG9yIERPTSBt
b2RpZmljYXRpb24uCiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9j
dW1lbnRMb2FkZXIqLCBTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklELCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwogCiAgICAgdmly
dHVhbCBSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
bmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9v
bCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkgPSAw
OwogICAgIHZpcnR1YWwgUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUm
LCBIVE1MUGx1Z0luRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0
eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxl
U2hlZXQuY3BwCmluZGV4IDc1OTJiMjM5NTQzLi45ZWQyYjMxZmQ3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMzgs
NyArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZENTU1N0eWxlU2hlZXQ6
OkNhY2hlZENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vz
c2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZENTU1N0eWxlU2hlZXQ6OkNhY2hlZENTU1N0eWxlU2hl
ZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgQ1NTU3R5bGVTaGVl
dCwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0
ZSgidGV4dC9jc3MiLCByZXF1ZXN0LmNoYXJzZXQoKSkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaAppbmRleCA4M2M2N2RiOWM1My4u
ZmIzNGQxY2IwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZENTU1N0eWxlU2hlZXQuaApAQCAtMzQsNyArMzQsNyBAQCBzdHJ1Y3QgQ1NTUGFyc2VyQ29udGV4
dDsKIAogY2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVldCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNv
dXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291
cmNlUmVxdWVzdCYmLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkQ1NTU3R5
bGVTaGVldCgpOwogCiAgICAgZW51bSBjbGFzcyBNSU1FVHlwZUNoZWNrSGludCB7IFN0cmljdCwg
TGF4IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9u
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKaW5kZXgg
ZDkwNTY3Y2M3YzguLjg4YzUwODNjNmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEZvbnQuY3BwCkBAIC00NSw3ICs0NSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotQ2FjaGVkRm9udDo6Q2FjaGVkRm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBUeXBlIHR5cGUpCitDYWNoZWRGb250OjpDYWNoZWRGb250
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVHlwZSB0eXBlKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgdHlw
ZSwgc2Vzc2lvbklEKQogICAgICwgbV9sb2FkSW5pdGlhdGVkKGZhbHNlKQogICAgICwgbV9oYXND
cmVhdGVkRm9udERhdGFXcmFwcGluZ1Jlc291cmNlKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRGb250LmgKaW5kZXggN2U5ZWE4YmQxMDMuLjAxNWM2NTBkMjEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
dHlwZWRlZiBGb250VGFnZ2VkU2V0dGluZ3M8aW50PiBGb250RmVhdHVyZVNldHRpbmdzOwogCiBj
bGFzcyBDYWNoZWRGb250IDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKLSAgICBD
YWNoZWRGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQsIFR5cGUgPSBGb250
UmVzb3VyY2UpOworICAgIENhY2hlZEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6
U2Vzc2lvbklELCBUeXBlID0gRm9udFJlc291cmNlKTsKICAgICB2aXJ0dWFsIH5DYWNoZWRGb250
KCk7CiAKICAgICB2b2lkIGJlZ2luTG9hZElmTmVlZGVkKENhY2hlZFJlc291cmNlTG9hZGVyJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRleCAxN2Q2
ZmZiMWU4NS4uOGNhZTcyNDNhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEltYWdlLmNwcApAQCAtNTUsMTkgKzU1LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
IDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lv
bklEKQogewogICAgIHNldFN0YXR1cyhVbmtub3duKTsKIH0KIAotQ2FjaGVkSW1hZ2U6OkNhY2hl
ZEltYWdlKEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6
IENhY2hlZFJlc291cmNlKFVSTCgpLCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBt
X2ltYWdlKGltYWdlKQogewogfQogCi1DYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29uc3QgVVJM
JiB1cmwsIEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBk
b21haW5Gb3JDYWNoZVBhcnRpdGlvbikKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBV
UkwmIHVybCwgSW1hZ2UqIGltYWdlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pCiAgICAgOiBDYWNoZWRSZXNvdXJjZSh1cmws
IEltYWdlUmVzb3VyY2UsIHNlc3Npb25JRCkKICAgICAsIG1faW1hZ2UoaW1hZ2UpCiAgICAgLCBt
X2lzTWFudWFsbHlDYWNoZWQodHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmgKaW5kZXggNTJjNDc2Y2ZlMWMuLmE3ZTg5ODZhNTcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApAQCAtNDcsMTAgKzQ3LDEwIEBAIGNsYXNzIENh
Y2hlZEltYWdlIGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBmcmllbmQgY2xh
c3MgTWVtb3J5Q2FjaGU7CiAKIHB1YmxpYzoKLSAgICBDYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKLSAgICBDYWNoZWRJbWFnZShJbWFnZSosIFNlc3Npb25J
RCk7CisgICAgQ2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lv
bklEKTsKKyAgICBDYWNoZWRJbWFnZShJbWFnZSosIFBBTDo6U2Vzc2lvbklEKTsKICAgICAvLyBD
b25zdHJ1Y3RvciB0byB1c2UgZm9yIG1hbnVhbGx5IGNhY2hlZCBpbWFnZXMuCi0gICAgQ2FjaGVk
SW1hZ2UoY29uc3QgVVJMJiwgSW1hZ2UqLCBTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZG9tYWlu
Rm9yQ2FjaGVQYXJ0aXRpb24pOworICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwg
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pOwog
ICAgIHZpcnR1YWwgfkNhY2hlZEltYWdlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZSog
aW1hZ2UoKTsgLy8gUmV0dXJucyB0aGUgbnVsbEltYWdlKCkgaWYgdGhlIGltYWdlIGlzIG5vdCBh
dmFpbGFibGUgeWV0LgpAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZv
aWQgY2xlYXIoKTsKIAotICAgIENhY2hlZEltYWdlKENhY2hlZEltYWdlJiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSYsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgc2V0Qm9k
eURhdGFGcm9tKGNvbnN0IENhY2hlZFJlc291cmNlJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IDI5YjhkODcx
YzBjLi4wNDczOWYyMDQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotQ2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKENhY2hlZFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0Nh
Y2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBUeXBlIHR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENh
Y2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIHR5cGUsIHNlc3Npb25JRCkKICAgICAsIG1f
aWRlbnRpZmllcigwKQogICAgICwgbV9hbGxvd0VuY29kZWREYXRhUmVwbGFjZW1lbnQodHJ1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKaW5k
ZXggYmI1YTViOGRlZTMuLjE1YThhODY2MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaApAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTdWJy
ZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgQ2FjaGVkUmF3UmVzb3VyY2UgZmluYWwgOiBwdWJsaWMg
Q2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZFJhd1Jlc291cmNlKENhY2hlZFJl
c291cmNlUmVxdWVzdCYmLCBUeXBlLCBTZXNzaW9uSUQpOworICAgIENhY2hlZFJhd1Jlc291cmNl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBUeXBlLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICAv
LyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2FjaGVkUmF3
UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0byBkZWZl
ciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAKaW5kZXggZTI3ZTgxMzZlY2UuLjZkNjNhNmJhYmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCBz
dGF0aWMgU2Vjb25kcyBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VU
eXBlKENhY2hlZFJlc291cmNlOjpUeQogCiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoUmVmQ291
bnRlZExlYWtDb3VudGVyLCBjYWNoZWRSZXNvdXJjZUxlYWtDb3VudGVyLCAoIkNhY2hlZFJlc291
cmNlIikpOwogCi1DYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVk
UmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IFR5cGUgdHlwZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJl
cXVlc3QocmVxdWVzdC5yZWxlYXNlUmVzb3VyY2VSZXF1ZXN0KCkpCiAgICAgLCBtX29wdGlvbnMo
cmVxdWVzdC5vcHRpb25zKCkpCiAgICAgLCBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcigqdGhp
cywgJkNhY2hlZFJlc291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEsIGRlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUodHlwZSkpCkBAIC0xNDUsNyArMTQ1LDcgQEAg
Q2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2kKIH0KIAogLy8gRklYTUU6IEZvciB0aGlzIGNvbnN0cnVj
dG9yLCB3ZSBzaG91bGQgcHJvYmFibHkgbWFuZGF0ZSB0aGF0IHRoZSBVUkwgaGFzIG5vIGZyYWdt
ZW50IGlkZW50aWZpZXIuCi1DYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UoY29uc3QgVVJM
JiB1cmwsIFR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZFJlc291cmNlOjpD
YWNoZWRSZXNvdXJjZShjb25zdCBVUkwmIHVybCwgVHlwZSB0eXBlLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdCh1cmwpCiAgICAgLCBtX2RlY29kZWRE
YXRhRGVsZXRpb25UaW1lcigqdGhpcywgJkNhY2hlZFJlc291cmNlOjpkZXN0cm95RGVjb2RlZERh
dGEsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUodHlwZSkp
CiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IDZhY2JjOWE2MDczLi42M2M0YjNlMTc0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTMwLDgg
KzMwLDggQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVk
ZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRp
Zmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx0aW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hD
b3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTk0LDcgKzk0LDcgQEAg
cHVibGljOgogICAgICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAKLSAgICBDYWNoZWRSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwgUEFMOjpTZXNzaW9uSUQpOwog
ICAgIHZpcnR1YWwgfkNhY2hlZFJlc291cmNlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChD
YWNoZWRSZXNvdXJjZUxvYWRlciYpOwpAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKICAgICBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBt
X3Jlc291cmNlUmVxdWVzdC51cmwoKTt9CiAgICAgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCk7IH0K
LSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0K
KyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25J
RDsgfQogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCiAgICAgUmVz
b3VyY2VMb2FkUHJpb3JpdHkgbG9hZFByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJp
b3JpdHk7IH0KQEAgLTI4MSw3ICsyODEsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICAv
LyBDYWNoZWRSZXNvdXJjZSBjb25zdHJ1Y3RvciB0aGF0IG1heSBiZSB1c2VkIHdoZW4gdGhlIENh
Y2hlZFJlc291cmNlIGNhbiBhbHJlYWR5IGJlIGZpbGxlZCB3aXRoIHJlc3BvbnNlIGRhdGEuCi0g
ICAgQ2FjaGVkUmVzb3VyY2UoY29uc3QgVVJMJiwgVHlwZSwgU2Vzc2lvbklEKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZShjb25zdCBVUkwmLCBUeXBlLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lk
IHNldEVuY29kZWRTaXplKHVuc2lnbmVkKTsKICAgICB2b2lkIHNldERlY29kZWRTaXplKHVuc2ln
bmVkKTsKQEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmFpbEJlZm9yZVN0
YXJ0aW5nKCk7CiAKICAgICBIYXNoTWFwPENhY2hlZFJlc291cmNlQ2xpZW50Kiwgc3RkOjp1bmlx
dWVfcHRyPENhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjazsKLSAgICBTZXNzaW9u
SUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVz
b3VyY2VMb2FkUHJpb3JpdHkgbV9sb2FkUHJpb3JpdHk7CiAgICAgc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCBtX3Jlc3BvbnNlVGltZXN0YW1wOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCA5
NGVjN2EyMmQ1Zi4uMDMyYjgwOWU5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNjYsMTIgKzY2LDEyIEBACiAj
aW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2lu
Y2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiVXNlclN0eWxlU2hlZXQuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRp
Zmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTg2LDcgKzg2LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogLy8gVGltZW91dCBmb3IgbGluayBwcmVsb2FkcyB0byBiZSB1c2VkIGFmdGVyIHdp
bmRvdy5vbmxvYWQKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHVudXNlZFByZWxvYWRUaW1lb3V0IHsg
M19zIH07CiAKLXN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKK3N0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2U6CkBAIC0xNzIsOSArMTcyLDkgQEAgRnJh
bWUqIENhY2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9j
dW1lbnRMb2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDogbnVsbHB0cjsKIH0KIAot
U2Vzc2lvbklEIENhY2hlZFJlc291cmNlTG9hZGVyOjpzZXNzaW9uSUQoKSBjb25zdAorUEFMOjpT
ZXNzaW9uSUQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCgpIGNvbnN0CiB7Ci0gICAg
U2Vzc2lvbklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCk7CiAKICAgICBpZiAoRnJhbWUqIGYgPSBmcmFtZSgpKQogICAgICAgICBzZXNzaW9uSUQg
PSBmLT5wYWdlKCktPnNlc3Npb25JRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCA3MWE1Yjg4YjdlMC4uM2JhOGFmNzFj
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0gLy8gQ2FuIGJlIG51bGwKICAgICB2
b2lkIHNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkgeyBtX2RvY3VtZW50ID0gZG9jdW1l
bnQ7IH0KICAgICB2b2lkIGNsZWFyRG9jdW1lbnRMb2FkZXIoKSB7IG1fZG9jdW1lbnRMb2FkZXIg
PSBudWxscHRyOyB9Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OworICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OwogCiAgICAgdm9pZCByZW1vdmVDYWNoZWRSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcAppbmRleCAwOGI0MDE2OWQzMy4uNmI2NjMwNDMwYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50
LmNwcApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFNW
R0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0Rv
Y3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIFNWR0RvY3Vt
ZW50UmVzb3VyY2UsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNv
ZGVyOjpjcmVhdGUoImFwcGxpY2F0aW9uL3htbCIpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAppbmRleCBiMzU2NmZlMzg3ZS4uNzJlNWQ3
MzhkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdE
b2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1
bWVudC5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2Fj
aGVkU1ZHRG9jdW1lbnQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgot
ICAgIGV4cGxpY2l0IENhY2hlZFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBT
ZXNzaW9uSUQpOworICAgIGV4cGxpY2l0IENhY2hlZFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNl
UmVxdWVzdCYmLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkU1ZHRG9jdW1l
bnQoKTsKIAogICAgIFNWR0RvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9j
dW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTVkdGb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdG
b250LmNwcAppbmRleCBhNTQ3NjFmNmI5NC4uYTBjYTg2ZWI4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRTVkdGb250OjpDYWNoZWRTVkdGb250KENhY2hl
ZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRT
VkdGb250OjpDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENhY2hlZEZvbnQoV1RGTW92ZShyZXF1ZXN0
KSwgc2Vzc2lvbklELCBTVkdGb250UmVzb3VyY2UpCiAgICAgLCBtX2V4dGVybmFsU1ZHRm9udEVs
ZW1lbnQobnVsbHB0cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
Rm9udC5oCmluZGV4IGU4ODA4YzZiZGY1Li5iMWIwZDU1OGQyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFNW
R0ZvbnRGYWNlRWxlbWVudDsKIAogY2xhc3MgQ2FjaGVkU1ZHRm9udCBmaW5hbCA6IHB1YmxpYyBD
YWNoZWRGb250IHsKIHB1YmxpYzoKLSAgICBDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNlUmVx
dWVzdCYmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZFNWR0ZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEo
Y29uc3QgQXRvbWljU3RyaW5nJiByZW1vdGVVUkkpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCmluZGV4IGIyYmZjYzExZTc4Li41MWQ2
MGZmMWY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNj
cmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5j
cHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRTY3Jp
cHQ6OkNhY2hlZFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9u
SUQgc2Vzc2lvbklEKQorQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVk
UmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgU2NyaXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2Rl
Y29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRp
b24vamF2YXNjcmlwdCIpLCByZXF1ZXN0LmNoYXJzZXQoKSkpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKaW5kZXggNmJiMGYzMTJmM2MuLmMwODE2YWVjZWMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiAKIGNsYXNzIENhY2hlZFNjcmlw
dCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkU2Ny
aXB0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZFNjcmlw
dChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwg
fkNhY2hlZFNjcmlwdCgpOwogCiAgICAgU3RyaW5nVmlldyBzY3JpcHQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKaW5kZXggMWQ4MmJkNzFi
NDIuLmZkM2QwYjhkN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkVGV4dFRyYWNrLmNwcApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUNhY2hlZFRleHRUcmFjazo6Q2FjaGVkVGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRUZXh0VHJhY2s6OkNhY2hl
ZFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBUZXh0
VHJhY2tSZXNvdXJjZSwgc2Vzc2lvbklEKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4IDhkNGEwZTFmYWY3Li4yMWViYzNmNjNjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaApAQCAt
MzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFRleHRUcmFj
ayBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkVGV4
dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZFRl
eHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogCiBwcml2
YXRlOgogICAgIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFhTTFN0eWxlU2hlZXQuY3BwCmluZGV4IGM5ZjBkYzg3YWZjLi45NGYxZDEwNmQ2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0
LmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUo
WFNMVCkKIAotQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkWFNM
U3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNvdXJjZShX
VEZNb3ZlKHJlcXVlc3QpLCBYU0xTdHlsZVNoZWV0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29k
ZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJ0ZXh0L3hzbCIpKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgKaW5kZXggM2Vm
MGY2MDBlNDQuLjJkMTdhMDI0ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgVGV4dFJl
c291cmNlRGVjb2RlcjsKIAogY2xhc3MgQ2FjaGVkWFNMU3R5bGVTaGVldCBmaW5hbCA6IHB1Ymxp
YyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkWFNMU3R5bGVTaGVldChDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRYU0xTdHlsZVNoZWV0
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+
Q2FjaGVkWFNMU3R5bGVTaGVldCgpOwogCiAgICAgY29uc3QgU3RyaW5nJiBzaGVldCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2hlZXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5
Q2FjaGUuY3BwCmluZGV4IDUxODZhMWJiZWQyLi4yYTA5YjYwZTA5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC03MiwxMyArNzIsMTMgQEAgTWVt
b3J5Q2FjaGU6Ok1lbW9yeUNhY2hlKCkKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihsb25nIGxv
bmcpID4gc2l6ZW9mKHVuc2lnbmVkKSwgIk51bWVyaWNhbCBvdmVyZmxvdyBjYW4gaGFwcGVuIHdo
ZW4gYWRqdXN0aW5nIHRoZSBzaXplIG9mIHRoZSBjYWNoZWQgbWVtb3J5LiIpOwogfQogCi1hdXRv
IE1lbW9yeUNhY2hlOjpzZXNzaW9uUmVzb3VyY2VNYXAoU2Vzc2lvbklEIHNlc3Npb25JRCkgY29u
c3QgLT4gQ2FjaGVkUmVzb3VyY2VNYXAqCithdXRvIE1lbW9yeUNhY2hlOjpzZXNzaW9uUmVzb3Vy
Y2VNYXAoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCAtPiBDYWNoZWRSZXNvdXJjZU1h
cCoKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7CiAgICAgcmV0dXJuIG1fc2Vz
c2lvblJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKIH0KIAotYXV0byBNZW1vcnlDYWNoZTo6ZW5z
dXJlU2Vzc2lvblJlc291cmNlTWFwKFNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IENhY2hlZFJlc291
cmNlTWFwJgorYXV0byBNZW1vcnlDYWNoZTo6ZW5zdXJlU2Vzc2lvblJlc291cmNlTWFwKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gQ2FjaGVkUmVzb3VyY2VNYXAmCiB7CiAgICAgQVNTRVJU
KHNlc3Npb25JRC5pc1ZhbGlkKCkpOwogICAgIGF1dG8mIG1hcCA9IG1fc2Vzc2lvblJlc291cmNl
cy5hZGQoc2Vzc2lvbklELCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CkBAIC0xNjcsNyArMTY3
LDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmV2YWxpZGF0aW9uRmFpbGVkKENhY2hlZFJlc291cmNl
JiByZXZhbGlkYXRpbmdSZXNvdXJjZSkKICAgICByZXZhbGlkYXRpbmdSZXNvdXJjZS5jbGVhclJl
c291cmNlVG9SZXZhbGlkYXRlKCk7CiB9CiAKLUNhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6
cmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKK0NhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JS
ZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewogICAgIC8vIEZJWE1FOiBDaGFuZ2UgYWxsIGNsaWVudHMgdG8gbWFrZSBzdXJl
IEhUVFAocykgVVJMcyBoYXZlIG5vIGZyYWdtZW50IGlkZW50aWZpZXJzIGJlZm9yZSBjYWxsaW5n
IGhlcmUuCiAgICAgLy8gQ2FjaGVkUmVzb3VyY2VMb2FkZXIgaXMgbm93IGRvaW5nIHRoaXMuIEFk
ZCBhbiBhc3NlcnRpb24gb25jZSBhbGwgb3RoZXIgY2xpZW50cyBhcmUgZG9pbmcgaXQgdG9vLgpA
QCAtMjEwLDcgKzIxMCw3IEBAIHN0YXRpYyBDYWNoZWRJbWFnZUNsaWVudCYgZHVtbXlDYWNoZWRJ
bWFnZUNsaWVudCgpCiBib29sIE1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUoTmF0aXZlSW1h
Z2VQdHImJiBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2Fj
aGVQYXJ0aXRpb24pCiB7CiAgICAgQVNTRVJUKGltYWdlKTsKLSAgICBTZXNzaW9uSUQgc2Vzc2lv
bklEID0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEID0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICByZW1v
dmVJbWFnZUZyb21DYWNoZSh1cmwsIGRvbWFpbkZvckNhY2hlUGFydGl0aW9uKTsgLy8gUmVtb3Zl
IGNhY2hlIGVudHJ5IGlmIGl0IGFscmVhZHkgZXhpc3RzLgogCiAgICAgUmVmUHRyPEJpdG1hcElt
YWdlPiBiaXRtYXBJbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoV1RGTW92ZShpbWFnZSksIG51
bGxwdHIpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9D
YWNoZShOYXRpdmVJbWFnZVB0ciYmIGltYWdlLCBjb25zdCBVUkwmIHVybCwgY29uc3QKIAogdm9p
ZCBNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pCiB7Ci0gICAgYXV0byogcmVzb3VyY2Vz
ID0gc2Vzc2lvblJlc291cmNlTWFwKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAg
ICBhdXRvKiByZXNvdXJjZXMgPSBzZXNzaW9uUmVzb3VyY2VNYXAoUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgaWYgKCFyZXNvdXJjZXMpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmZvckVhY2hSZXNvdXJjZShj
b25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FjaGVkUmVzb3VyY2UmKT4mIGZ1CiAgICAgfQogfQog
Ci12b2lkIE1lbW9yeUNhY2hlOjpmb3JFYWNoU2Vzc2lvblJlc291cmNlKFNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZCAoQ2FjaGVkUmVzb3VyY2UmKT4mIGZ1bmN0
aW9uKQordm9pZCBNZW1vcnlDYWNoZTo6Zm9yRWFjaFNlc3Npb25SZXNvdXJjZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZCAoQ2FjaGVkUmVzb3VyY2Um
KT4mIGZ1bmN0aW9uKQogewogICAgIGF1dG8gaXQgPSBtX3Nlc3Npb25SZXNvdXJjZXMuZmluZChz
ZXNzaW9uSUQpOwogICAgIGlmIChpdCA9PSBtX3Nlc3Npb25SZXNvdXJjZXMuZW5kKCkpCkBAIC01
MzEsNyArNTMxLDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdp
bihTZWN1cml0eU9yaWdpbiYgb3JpZ2luKQogICAgICAgICByZW1vdmUoKnJlc291cmNlKTsKIH0K
IAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbnMoU2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lu
cykKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiYg
b3JpZ2lucykKIHsKICAgICBhdXRvKiByZXNvdXJjZU1hcCA9IHNlc3Npb25SZXNvdXJjZU1hcChz
ZXNzaW9uSUQpOwogICAgIGlmICghcmVzb3VyY2VNYXApCkBAIC01NzIsNyArNTcyLDcgQEAgdm9p
ZCBNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3Jp
Z2lucykKICAgICB9CiB9CiAKLUhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gTWVtb3J5
Q2FjaGU6Om9yaWdpbnNXaXRoQ2FjaGUoU2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKK0hhc2hT
ZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gTWVtb3J5Q2FjaGU6Om9yaWdpbnNXaXRoQ2FjaGUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdAogewogICAgIEhhc2hTZXQ8UmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPj4gb3JpZ2luczsKIApAQCAtNzA3LDcgKzcwNyw3IEBAIHZvaWQgTWVtb3J5
Q2FjaGU6OmV2aWN0UmVzb3VyY2VzKCkKICAgICBzZXREaXNhYmxlZChmYWxzZSk7CiB9CiAKLXZv
aWQgTWVtb3J5Q2FjaGU6OmV2aWN0UmVzb3VyY2VzKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lk
IE1lbW9yeUNhY2hlOjpldmljdFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
CiAgICAgaWYgKGRpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKaW5kZXggMmM0ZGQxMDlmNTcuLmY2N2M4MWM0MjlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtMjYsOCArMjYs
OCBAQAogCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bkhhc2guaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2lu
Y2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
QEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE1l
bW9yeUNhY2hlJiBzaW5nbGV0b24oKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZUZvclJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklE
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIGJvb2wgYWRk
KENhY2hlZFJlc291cmNlJik7CiAgICAgdm9pZCByZW1vdmUoQ2FjaGVkUmVzb3VyY2UmKTsKQEAg
LTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXZhbGlkYXRpb25GYWlsZWQoQ2Fj
aGVkUmVzb3VyY2UmIHJldmFsaWRhdGluZ1Jlc291cmNlKTsKIAogICAgIHZvaWQgZm9yRWFjaFJl
c291cmNlKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChDYWNoZWRSZXNvdXJjZSYpPiYpOwotICAg
IHZvaWQgZm9yRWFjaFNlc3Npb25SZXNvdXJjZShTZXNzaW9uSUQsIGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChDYWNoZWRSZXNvdXJjZSYpPiYpOworICAgIHZvaWQgZm9yRWFjaFNlc3Npb25SZXNv
dXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKENhY2hlZFJlc291
cmNlJik+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZXN0cm95RGVjb2RlZERhdGFGb3JB
bGxJbWFnZXMoKTsKIAogICAgIC8vIFNldHMgdGhlIGNhY2hlJ3MgbWVtb3J5IGNhcGFjaXRpZXMs
IGluIGJ5dGVzLiBUaGVzZSB3aWxsIGhvbGQgb25seSBhcHByb3hpbWF0ZWx5LApAQCAtMTIwLDcg
KzEyMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGRpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9k
aXNhYmxlZDsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmljdFJlc291cmNlcygpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXZpY3RSZXNvdXJjZXMoU2Vzc2lvbklEKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGV2aWN0UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEKTsKIAogICAg
IHZvaWQgcHJ1bmUoKTsKICAgICB2b2lkIHBydW5lU29vbigpOwpAQCAtMTUzLDkgKzE1Myw5IEBA
IHB1YmxpYzoKIAogICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBT
ZWN1cml0eU9yaWdpblNldDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVJlc291cmNl
c1dpdGhPcmlnaW4oU2VjdXJpdHlPcmlnaW4mKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
bW92ZVJlc291cmNlc1dpdGhPcmlnaW5zKFNlc3Npb25JRCwgY29uc3QgSGFzaFNldDxSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+PiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlUmVzb3Vy
Y2VzV2l0aE9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPj4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldE9yaWdpbnNXaXRoQ2Fj
aGUoU2VjdXJpdHlPcmlnaW5TZXQmIG9yaWdpbnMpOwotICAgIFdFQkNPUkVfRVhQT1JUIEhhc2hT
ZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luc1dpdGhDYWNoZShTZXNzaW9uSUQpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4g
b3JpZ2luc1dpdGhDYWNoZShQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGFkZEltYWdlVG9DYWNoZShOYXRpdmVJbWFnZVB0ciYmLCBjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIGRvbWFpbkZvckNhY2hlUGFydGl0aW9uKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgZG9t
YWluRm9yQ2FjaGVQYXJ0aXRpb24pOwpAQCAtMTg3LDggKzE4Nyw4IEBAIHByaXZhdGU6CiAKICAg
ICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBDYWNoZWRSZXNvdXJjZU1hcCYpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VNYXAmIGVu
c3VyZVNlc3Npb25SZXNvdXJjZU1hcChTZXNzaW9uSUQpOwotICAgIENhY2hlZFJlc291cmNlTWFw
KiBzZXNzaW9uUmVzb3VyY2VNYXAoU2Vzc2lvbklEKSBjb25zdDsKKyAgICBDYWNoZWRSZXNvdXJj
ZU1hcCYgZW5zdXJlU2Vzc2lvblJlc291cmNlTWFwKFBBTDo6U2Vzc2lvbklEKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZU1hcCogc2Vzc2lvblJlc291cmNlTWFwKFBBTDo6U2Vzc2lvbklEKSBjb25zdDsK
IAogICAgIGJvb2wgbV9kaXNhYmxlZDsgIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjYWNoZSBpcyBl
bmFibGVkLgogICAgIGJvb2wgbV9pblBydW5lUmVzb3VyY2VzOwpAQCAtMjExLDcgKzIxMSw3IEBA
IHByaXZhdGU6CiAgICAgCiAgICAgLy8gQSBVUkwtYmFzZWQgbWFwIG9mIGFsbCByZXNvdXJjZXMg
dGhhdCBhcmUgaW4gdGhlIGNhY2hlIChpbmNsdWRpbmcgdGhlIGZyZXNoZXN0IHZlcnNpb24gb2Yg
b2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgCiAgICAgLy8gcmVmZXJlbmNlZCBieSBh
IFdlYiBwYWdlKS4KLSAgICB0eXBlZGVmIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9w
dHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7CisgICAgdHlw
ZWRlZiBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3Vy
Y2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7CiAgICAgU2Vzc2lvbkNhY2hlZFJlc291
cmNlTWFwIG1fc2Vzc2lvblJlc291cmNlczsKIAogICAgIFRpbWVyIG1fcHJ1bmVUaW1lcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29j
b2EuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2Eu
aAppbmRleCA2MzA0ZjFmMDZlZC4uYmRiYTFjOTM1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLmgKQEAgLTI2LDcgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVk
ZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hlZFVSTFJlc3BvbnNlKiBDRkNhY2hlZFVSTFJl
c3BvbnNlUmVmOwogCkBAIC0zNiwxOSArMzYsMTkgQEAgY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBj
bGFzcyBEaXNrQ2FjaGVNb25pdG9yIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBtb25pdG9y
RmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25J
RCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CisgICAgc3RhdGljIHZvaWQgbW9uaXRvckZpbGVC
YWNraW5nU3RvcmVDcmVhdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6OlNlc3Npb25J
RCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IHRyeUdldEZpbGVCYWNrZWRTaGFyZWRCdWZmZXJGcm9tQ0ZVUkxDYWNoZWRSZXNwb25zZShD
RkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKIAogcHJpdmF0ZToKLSAgICBEaXNrQ2FjaGVNb25pdG9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJl
Zik7CisgICAgRGlza0NhY2hlTW9uaXRvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6OlNl
c3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAKICAgICB2b2lkIHJlc291cmNlQmVj
YW1lRmlsZUJhY2tlZChTaGFyZWRCdWZmZXImKTsKIAogICAgIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0K
LSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0K
KyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25J
RDsgfQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwotICAgIFNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
b2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0KaW5kZXggM2YxOGQyNjkyYjUuLmEwZmJiMWE5
YzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9u
aXRvckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVN
b25pdG9yQ29jb2EubW0KQEAgLTUxLDcgKzUxLDcgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRGlz
a0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENhY2gK
ICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSk7CiB9CiAKLXZvaWQgRGlza0Nh
Y2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9u
c2VSZWYgY2FjaGVkUmVzcG9uc2UpCit2b2lkIERpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxl
QmFja2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9u
c2UpCiB7CiAgICAgaWYgKCFjYWNoZWRSZXNwb25zZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjAs
NyArNjAsNyBAQCB2b2lkIERpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3Jl
Q3JlYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZQogICAgIG5ldyBEaXNrQ2FjaGVNb25p
dG9yKHJlcXVlc3QsIHNlc3Npb25JRCwgY2FjaGVkUmVzcG9uc2UpOyAvLyBCYWxhbmNlZCBieSBk
ZWxldGUgYW5kIHVuaXF1ZV9wdHIgaW4gdGhlIGJsb2NrcyBzZXQgdXAgaW4gdGhlIGNvbnN0cnVj
dG9yLCBvbmUgb2Ygd2hpY2ggaXMgZ3VhcmFudGVlZCB0byBydW4uCiB9CiAKLURpc2tDYWNoZU1v
bml0b3I6OkRpc2tDYWNoZU1vbml0b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
ZXNzaW9uSUQgc2Vzc2lvbklELCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNl
KQorRGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZiBjYWNoZWRSZXNwb25zZSkKICAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpCiAg
ICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQ
cm92aWRlci5oCmluZGV4IGE3NmM3OTFjODY4Li5mMDhlOTU5YTEyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKQEAgLTI3LDkgKzI3LDExIEBACiAKICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KK25hbWVzcGFjZSBQQUwg
ewogY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFj
ZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29ubmVjdGlvblRvU2VydmVyOwpAQCAtNDAsNyArNDIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGF0YWJhc2VQcm92aWRlcigpOwogCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgdmlydHVhbCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Ub1NlcnZlciYgaWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBTZXNzaW9u
SUQmKSA9IDA7CisgICAgdmlydHVhbCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYg
aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYpID0g
MDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggYzI2OTg3ZjhkY2IuLjU5Mjdk
OTc2MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCBQYWdlOjpQYWdl
KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3N0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlcigqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXIpKQogICAgICwgbV91c2VyQ29udGVudFByb3ZpZGVyKCpXVEZNb3ZlKHBhZ2VD
b25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVkTGlua1N0
b3JlKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQotICAgICwg
bV9zZXNzaW9uSUQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCisgICAgLCBtX3Nlc3Np
b25JRChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQogICAgICwgbV9pc1V0aWxp
dHlQYWdlKGlzVXRpbGl0eVBhZ2VDaHJvbWVDbGllbnQoY2hyb21lKCkuY2xpZW50KCkpKQogICAg
ICwgbV9wZXJmb3JtYW5jZU1vbml0b3IoaXNVdGlsaXR5UGFnZSgpID8gbnVsbHB0ciA6IHN0ZDo6
bWFrZV91bmlxdWU8UGVyZm9ybWFuY2VNb25pdG9yPigqdGhpcykpCiAgICAgLCBtX2xvd1Bvd2Vy
TW9kZU5vdGlmaWVyKHN0ZDo6bWFrZV91bmlxdWU8TG93UG93ZXJNb2RlTm90aWZpZXI+KFt0aGlz
XShib29sIGlzTG93UG93ZXJNb2RlRW5hYmxlZCkgeyBoYW5kbGVMb3dNb2RlUG93ZXJDaGFuZ2Uo
aXNMb3dQb3dlck1vZGVFbmFibGVkKTsgfSkpCkBAIC0xNDY1LDkgKzE0NjUsOSBAQCB2b2lkIFBh
Z2U6OnN0b3JhZ2VCbG9ja2luZ1N0YXRlQ2hhbmdlZCgpCiB2b2lkIFBhZ2U6OmVuYWJsZUxlZ2Fj
eVByaXZhdGVCcm93c2luZyhib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CiAgICAgLy8g
RG9uJ3QgYWxsb3cgY2hhbmdpbmcgdGhlIGxlZ2FjeSBwcml2YXRlIGJyb3dzaW5nIHN0YXRlIGlm
IHdlIGhhdmUgc2V0IGEgc2Vzc2lvbiBJRC4KLSAgICBBU1NFUlQobV9zZXNzaW9uSUQgPT0gU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkgfHwgbV9zZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgIEFTU0VSVChtX3Nlc3Npb25JRCA9PSBQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpIHx8IG1fc2Vzc2lvbklEID09IFBBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogCi0gICAgc2V0U2Vzc2lvbklEKHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQgPyBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICBzZXRTZXNzaW9uSUQocHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCA/IFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBQ
YWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSh1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCkBAIC0y
MTQyLDEyICsyMTQyLDEyIEBAIHZvaWQgUGFnZTo6c2V0VmlzaXRlZExpbmtTdG9yZShSZWY8Vmlz
aXRlZExpbmtTdG9yZT4mJiB2aXNpdGVkTGlua1N0b3JlKQogICAgIGludmFsaWRhdGVTdHlsZXNG
b3JBbGxMaW5rcygpOwogfQogCi1TZXNzaW9uSUQgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKK1BB
TDo6U2Vzc2lvbklEIFBhZ2U6OnNlc3Npb25JRCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Vz
c2lvbklEOwogfQogCi12b2lkIFBhZ2U6OnNldFNlc3Npb25JRChTZXNzaW9uSUQgc2Vzc2lvbklE
KQordm9pZCBQYWdlOjpzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA5MDlm
Mzc5MDJkMy4uNGE4YTBkODgwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0zMiwxMyArMzIsMTMgQEAK
ICNpbmNsdWRlICJSVENDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsVHlwZXMuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTdXBw
bGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5j
bHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1
ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAg
LTUyMyw4ICs1MjMsOCBAQCBwdWJsaWM6CiAgICAgVmlzaXRlZExpbmtTdG9yZSYgdmlzaXRlZExp
bmtTdG9yZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmlzaXRlZExpbmtTdG9yZShS
ZWY8VmlzaXRlZExpbmtTdG9yZT4mJik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXNzaW9uSUQg
c2Vzc2lvbklEKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZXNzaW9uSUQo
U2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQo
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlc3Npb25JRChQQUw6OlNlc3Np
b25JRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbmFibGVMZWdhY3lQcml2YXRlQnJvd3Np
bmcoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKICAgICBib29sIHVzZXNFcGhlbWVyYWxT
ZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsgfQogCkBA
IC03OTcsNyArNzk3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VV
c2FnZU92ZXJsYXk+IG1fcmVzb3VyY2VVc2FnZU92ZXJsYXk7CiAjZW5kaWYKIAotICAgIFNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIAogICAg
IGJvb2wgbV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BsdWdJbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QbHVnSW5DbGllbnQu
aAppbmRleCAyNWE2OTYyY2JkMS4uYjhlOTFmYmM2MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGx1Z0luQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QbHVnSW5D
bGllbnQuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNl
c3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0LDcgKzM0LDcg
QEAgY2xhc3MgUGx1Z0luQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFnZURl
c3Ryb3llZCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXV0b1N0YXJ0RnJvbU9yaWdp
bihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0RnJv
bU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBTZXNzaW9uSUQpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lv
bklEKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5QbHVnSW5DbGllbnQoKSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKaW5kZXggYTc2NWQ0ZDY5NWIuLjA3
OGMyN2Q1ZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmNwcApAQCAtMzAs
NyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi1SZWY8U29ja2V0U3RyZWFt
SGFuZGxlPiBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVS
TCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgU2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKQorUmVmPFNvY2tldFN0cmVh
bUhhbmRsZT4gU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBV
UkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKQogewogICAgIHJl
dHVybiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUodXJsLCBjbGllbnQsIHNlc3Npb25J
RCwgY3JlZGVudGlhbFBhcnRpdGlvbiwgeyB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJv
dmlkZXIuaAppbmRleCA1NTljYWQwMjdhMS4uNzVjMDJlNjI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NvY2tldFByb3ZpZGVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBVUkw7CiBjbGFzcyBX
RUJDT1JFX0VYUE9SVCBTb2NrZXRQcm92aWRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxTb2NrZXRQcm92aWRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U29ja2V0UHJvdmlk
ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0UHJvdmlkZXIpOyB9Ci0g
ICAgdmlydHVhbCBSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5k
bGUoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgU2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pOworICAgIHZpcnR1YWwgUmVmPFNvY2tldFN0
cmVhbUhhbmRsZT4gY3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0
cmVhbUhhbmRsZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRp
YWxQYXJ0aXRpb24pOwogICAgIHZpcnR1YWwgflNvY2tldFByb3ZpZGVyKCkgeyB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaAppbmRleCBlMDQ5YmUzNTA1
NC4uNWRjNzUyZTcxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tp
ZXNTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZXNTdHJhdGVn
eS5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIENvb2tpZXNTdHJhdGVneV9oCiAjZGVmaW5l
IENvb2tpZXNTdHJhdGVneV9oCiAKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDxw
YWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
Y29va2llU3RyaW5nKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJM
JikgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgVVJMJikgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKFNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmKSA9IDA7
CisgICAgdmlydHVhbCBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAKaW5k
ZXggMTIxYTg2Y2IxMzYuLjQwMzY3NmE5OGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTMxLDEyICszMSwxMiBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNvcmVDcm9zc1RocmVhZENvcGll
ci5oIgogCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiVGhyZWFkU2FmZURhdGFC
dWZmZXIuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNw
YWNlIFdURiB7CiAKLUNyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6
OlNlc3Npb25JRD46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgV2Vi
Q29yZTo6U2Vzc2lvbklEPjo6Y29weShjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNlc3Npb25J
RCkKK0Nyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFBBTDo6U2Vzc2lvbklEPjo6
VHlwZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBQQUw6OlNlc3Npb25JRD46
OmNvcHkoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkKIHsKICAgICByZXR1cm4gc2Vz
c2lvbklEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNy
b3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJDb3JlQ3Jvc3NU
aHJlYWRDb3BpZXIuaAppbmRleCA3ZTNiOWJjMTE4Mi4uYjRjOTIzOTFjMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5oCkBAIC0z
MywxNiArMzMsMTkgQEAKIAogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogCi1u
YW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgUEFMIHsKIGNsYXNzIFNlc3Npb25JRDsKK30K
KworbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiB9CiAK
IG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJh
c2U8ZmFsc2UsIGZhbHNlLCBXZWJDb3JlOjpTZXNzaW9uSUQ+IHsKLSAgICB0eXBlZGVmIFdlYkNv
cmU6OlNlc3Npb25JRCBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgV2ViQ29yZTo6
U2Vzc2lvbklEJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIGZhbHNlLCBQQUw6OlNlc3Npb25JRD4geworICAgIHR5cGVkZWYgUEFMOjpTZXNzaW9uSUQg
VHlwZTsKKyAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7CiB9Owog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBX
ZWJDb3JlOjpUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCmluZGV4IGM1MjZjNDE3ZmUzLi4y
MmI4MzMzMzFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9D
YWNoZVZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Q2FjaGVWYWxpZGF0aW9uLmNwcApAQCAtMzM5LDcgKzMzOSw3IEBAIENhY2hlQ29udHJvbERpcmVj
dGl2ZXMgcGFyc2VDYWNoZUNvbnRyb2xEaXJlY3RpdmVzKGNvbnN0IEhUVFBIZWFkZXJNYXAmIGhl
YWRlcnMpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFN0cmluZyBoZWFkZXJWYWx1
ZUZvclZhcnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGhl
YWRlck5hbWUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitzdGF0aWMgU3RyaW5nIGhlYWRlclZhbHVl
Rm9yVmFyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgaGVh
ZGVyTmFtZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIEV4cGxpY2l0IGhh
bmRsaW5nIGZvciBjb29raWVzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZXkgYXJlIGFkZGVkIG1hZ2lj
YWxseSBieSB0aGUgbmV0d29ya2luZyBsYXllci4KICAgICAvLyBGSVhNRTogVGhlIHZhbHVlIG1p
Z2h0IGhhdmUgY2hhbmdlZCBiZXR3ZWVuIG1ha2luZyB0aGUgcmVxdWVzdCBhbmQgcmV0cmlldmlu
ZyB0aGUgY29va2llIGhlcmUuCkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RhdGljIFN0cmluZyBoZWFk
ZXJWYWx1ZUZvclZhcnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIGgKICAgICBpZiAoaGVhZGVyTmFtZSA9PSBodHRwSGVhZGVyTmFtZVN0cmluZyhIVFRQSGVh
ZGVyTmFtZTo6Q29va2llKSkgewogICAgICAgICBhdXRvKiBjb29raWVTdHJhdGVneSA9IHBsYXRm
b3JtU3RyYXRlZ2llcygpID8gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgp
IDogbnVsbHB0cjsKICAgICAgICAgaWYgKCFjb29raWVTdHJhdGVneSkgewotICAgICAgICAgICAg
QVNTRVJUKHNlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAg
ICAgICAgICBBU1NFUlQoc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCkpOwogICAgICAgICAgICAgcmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCksIHJlcXVlc3Qu
Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSk7CiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIGNvb2tpZVN0cmF0ZWd5LT5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShz
ZXNzaW9uSUQsIHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSk7
CkBAIC0zNTYsNyArMzU2LDcgQEAgc3RhdGljIFN0cmluZyBoZWFkZXJWYWx1ZUZvclZhcnkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGgKICAgICByZXR1cm4g
cmVxdWVzdC5odHRwSGVhZGVyRmllbGQoaGVhZGVyTmFtZSk7CiB9CiAKLVZlY3RvcjxzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgU3RyaW5nPj4gY29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgU3RyaW5n
IHZhcnlWYWx1ZSA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChXZWJDb3JlOjpIVFRQSGVhZGVy
TmFtZTo6VmFyeSk7CiAgICAgaWYgKHZhcnlWYWx1ZS5pc0VtcHR5KCkpCkBAIC0zNzMsNyArMzcz
LDcgQEAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNvbGxlY3RWYXJ5aW5nUmVx
dWVzdEhlYWRlcnMoY29uc3QgV2ViQ29yZTo6UmUKICAgICByZXR1cm4gdmFyeWluZ1JlcXVlc3RI
ZWFkZXJzOwogfQogCi1ib29sIHZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBWZWN0
b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHZhcnlpbmdSZXF1ZXN0SGVhZGVycywgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklE
KQorYm9vbCB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgVmVjdG9yPHN0ZDo6cGFp
cjxTdHJpbmcsIFN0cmluZz4+JiB2YXJ5aW5nUmVxdWVzdEhlYWRlcnMsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIGZvciAoYXV0byYgdmFyeWluZ1JlcXVlc3RIZWFkZXIgOiB2YXJ5aW5nUmVxdWVzdEhlYWRl
cnMpIHsKICAgICAgICAgLy8gRklYTUU6IFZhcnk6ICogaW4gcmVzcG9uc2Ugd291bGQgaWRlYWxs
eSB0cmlnZ2VyIGEgY2FjaGUgZGVsZXRlIGluc3RlYWQgb2YgYSBzdG9yZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5oCmluZGV4IDQ0M2Iy
MzFlOGQ2Li5lZmU1MGVhYmJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5oCkBAIC0yNiw4ICsyNiw4IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIlBsYXRmb3JtRXhwb3J0TWFjcm9zLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklE
LmgiCiAjaW5jbHVkZSA8Y2hyb25vPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTcwLDggKzcwLDggQEAgc3RydWN0
IENhY2hlQ29udHJvbERpcmVjdGl2ZXMgewogfTsKIFdFQkNPUkVfRVhQT1JUIENhY2hlQ29udHJv
bERpcmVjdGl2ZXMgcGFyc2VDYWNoZUNvbnRyb2xEaXJlY3RpdmVzKGNvbnN0IEhUVFBIZWFkZXJN
YXAmKTsKIAotV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+
IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIFNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKTsKLVdFQkNPUkVfRVhQT1JUIGJvb2wgdmVyaWZ5VmFyeWluZ1JlcXVlc3RIZWFkZXJz
KGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdmFyeWluZ1JlcXVlc3RI
ZWFkZXJzLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8c3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPj4gY29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUEFMOjpTZXNzaW9uSUQgPSBQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wgdmVyaWZ5
VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJp
bmc+PiYgdmFyeWluZ1JlcXVlc3RIZWFkZXJzLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6
OlNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogCiBXRUJD
T1JFX0VYUE9SVCBib29sIGlzU3RhdHVzQ29kZUNhY2hlYWJsZUJ5RGVmYXVsdChpbnQgc3RhdHVz
Q29kZSk7CiBXRUJDT1JFX0VYUE9SVCBib29sIGlzU3RhdHVzQ29kZVBvdGVudGlhbGx5Q2FjaGVh
YmxlKGludCBzdGF0dXNDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAppbmRleCA5OGRhMDgyYWVlNi4u
NDE2ODhjMDVmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKQEAgLTI2LDI3ICsyNiwyNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogCi0j
aW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNl
c3Npb24+PiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnbG9iYWxTZXNzaW9uTWFwKCkKK0hhc2hN
YXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+
PiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnbG9iYWxTZXNzaW9uTWFwKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrU3RvcmFnZVNlc3Npb24+Pj4gbWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNo
TWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9u
Pj4+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCi1OZXR3b3JrU3RvcmFnZVNlc3Npb24qIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkK
K05ldHdvcmtTdG9yYWdlU2Vzc2lvbiogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKKyAgICBpZiAoc2Vzc2lvbklEID09IFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgICAgIHJldHVybiAmZGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKCk7CiAgICAgcmV0dXJuIGdsb2JhbFNlc3Npb25NYXAoKS5nZXQoc2Vzc2lv
bklEKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlc3Ryb3lTZXNzaW9uKFNl
c3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJveVNl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQg
IT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIEFTU0VSVChzZXNzaW9uSUQg
IT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgZ2xvYmFsU2Vzc2lv
bk1hcCgpLnJlbW92ZShzZXNzaW9uSUQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCBkZWQyNmNh
ZjRjMS4uYjQ1OWZjMzNlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtMjYsNyArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgotI2luY2x1ZGUgIlNl
c3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC02MiwxNSArNjIsMTUgQEAgY2xhc3MgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOZXR3b3JrU3RvcmFnZVNl
c3Npb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBkZWZhdWx0U3RvcmFnZVNlc3Npb24o
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBzdG9y
YWdlU2Vzc2lvbihTZXNzaW9uSUQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXJCYXNlID0gU3RyaW5nKCkpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVu
c3VyZVNlc3Npb24oU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlID0gU3Ry
aW5nKCkpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRlc3Ryb3lTZXNzaW9uKFNl
c3Npb25JRCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biogc3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UgPSBTdHJpbmcoKSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyQmFzZSA9IFN0cmluZygpKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCBkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgZm9yRWFjaChjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJik+Jik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CiAKLSAgICBTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIENyZWRlbnRp
YWxTdG9yYWdlJiBjcmVkZW50aWFsU3RvcmFnZSgpIHsgcmV0dXJuIG1fY3JlZGVudGlhbFN0b3Jh
Z2U7IH0KIAogI2lmZGVmIF9fT0JKQ19fCkBAIC03OCw4ICs3OCw4IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllckJhc2UsIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiYm
KTsKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklELCBSZXRhaW5QdHI8Q0ZVUkxT
dG9yYWdlU2Vzc2lvblJlZj4mJiwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVuc3VyZVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UsIFJldGFpblB0cjxDRkhUVFBDb29r
aWVTdG9yYWdlUmVmPiYmKTsKKyAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9u
SUQsIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiYmLCBSZXRhaW5QdHI8Q0ZIVFRQ
Q29va2llU3RvcmFnZVJlZj4mJik7CiAKICAgICAvLyBNYXkgYmUgbnVsbCwgaW4gd2hpY2ggY2Fz
ZSBhIEZvdW5kYXRpb24gZGVmYXVsdCBzaG91bGQgYmUgdXNlZC4KICAgICBDRlVSTFN0b3JhZ2VT
ZXNzaW9uUmVmIHBsYXRmb3JtU2Vzc2lvbigpIHsgcmV0dXJuIG1fcGxhdGZvcm1TZXNzaW9uLmdl
dCgpOyB9CkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNob3VsZFBhcnRpdGlvbkNvb2tpZXNGb3JIb3N0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZG9tYWluc1RvUmVtb3ZlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQWRkLCBib29s
IGNsZWFyRmlyc3QpOwogI2VuZGlmCiAjZWxpZiBVU0UoU09VUCkKLSAgICBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24oU2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPiYm
KTsKKyAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVl
X3B0cjxTb3VwTmV0d29ya1Nlc3Npb24+JiYpOwogICAgIH5OZXR3b3JrU3RvcmFnZVNlc3Npb24o
KTsKIAogICAgIFNvdXBOZXR3b3JrU2Vzc2lvbiogc291cE5ldHdvcmtTZXNzaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uLmdldCgpOyB9OwpAQCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGdldENyZWRlbnRpYWxGcm9tUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgUHJvdGVj
dGlvblNwYWNlJiwgRnVuY3Rpb248dm9pZCAoQ3JlZGVudGlhbCYmKT4gY29tcGxldGlvbkhhbmRs
ZXIpOwogICAgIHZvaWQgc2F2ZUNyZWRlbnRpYWxUb1BlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFBy
b3RlY3Rpb25TcGFjZSYsIGNvbnN0IENyZWRlbnRpYWwmKTsKICNlbHNlCi0gICAgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCwgTmV0d29ya2luZ0NvbnRleHQqKTsKKyAgICBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIE5ldHdvcmtpbmdDb250ZXh0Kik7CiAgICAg
fk5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpOwogCiAgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQoKSBjb25zdDsKQEAgLTExNyw4ICsxMTcsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBmbHVzaENvb2tpZVN0b3JlKCk7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEhhc2hN
YXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIGds
b2JhbFNlc3Npb25NYXAoKTsKLSAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgc3RhdGlj
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNl
c3Npb24+PiYgZ2xvYmFsU2Vzc2lvbk1hcCgpOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lv
bklEOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAg
UmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IG1fcGxhdGZvcm1TZXNzaW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb25TdHViLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKaW5kZXggNGUxZTMzZTZiZGMuLmIyYTY1N2YyYmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblN0dWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1OZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihT
ZXNzaW9uSUQgc2Vzc2lvbklELCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK05ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKIHsKQEAgLTQ5LDEyICs0OSwxMiBAQCBO
ZXR3b3JraW5nQ29udGV4dCogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb250ZXh0KCkgY29uc3QK
ICAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJikKIHsKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24o
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVu
c3VyZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiYgZGVmYXVsdFNlc3Npb24oKQogTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigp
CiB7CiAgICAgaWYgKCFkZWZhdWx0U2Vzc2lvbigpKQotICAgICAgICBkZWZhdWx0U2Vzc2lvbigp
ID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBudWxscHRyKTsKKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKSA9IHN0
ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBudWxscHRyKTsKICAgICByZXR1cm4gKmRlZmF1bHRTZXNzaW9uKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKaW5kZXggM2UwODU0ZjRmNzku
LjdlOTAzMmMzNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApAQCAtNjks
NyArNjksNyBAQCBzdGF0aWMgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IGNyZWF0
ZUNGU3RvcmFnZVNlc3Npb25Gb3JJZGVudGlmaWVyKENGUwogICAgIHJldHVybiBzdG9yYWdlU2Vz
c2lvbjsKIH0KIAotTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24o
U2Vzc2lvbklEIHNlc3Npb25JRCwgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+JiYg
cGxhdGZvcm1TZXNzaW9uLCBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4mJiBwbGF0
Zm9ybUNvb2tpZVN0b3JhZ2UpCitOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VT
ZXNzaW9uUmVmPiYmIHBsYXRmb3JtU2Vzc2lvbiwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWY+JiYgcGxhdGZvcm1Db29raWVTdG9yYWdlKQogICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lv
bklEKQogICAgICwgbV9wbGF0Zm9ybVNlc3Npb24oV1RGTW92ZShwbGF0Zm9ybVNlc3Npb24pKQog
ewpAQCAtOTksMjMgKzk5LDIzIEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hU
b05ld1Rlc3RpbmdTZXNzaW9uKCkKICAgICBpZiAoc2Vzc2lvbikKICAgICAgICAgY29va2llU3Rv
cmFnZSA9IGFkb3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBzZXNzaW9uLmdldCgpKSk7CiAKLSAgICBkZWZhdWx0TmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4o
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdURk1vdmUoc2Vzc2lvbiksIFdURk1vdmUo
Y29va2llU3RvcmFnZSkpOworICAgIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSA9IHN0
ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBXVEZNb3ZlKHNlc3Npb24pLCBXVEZNb3ZlKGNvb2tpZVN0b3JhZ2Up
KTsKIH0KIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRl
ZmF1bHRTdG9yYWdlU2Vzc2lvbigpCiB7CiAgICAgaWYgKCFkZWZhdWx0TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCkpCi0gICAgICAgIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSA9IHN0ZDo6
bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgICAgIGRlZmF1bHROZXR3b3JrU3RvcmFn
ZVNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBudWxscHRyLCBudWxscHRyKTsKICAgICBy
ZXR1cm4gKmRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKIH0KIAotdm9pZCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSkKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSkKIHsKICAgICBBU1NFUlQoc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCkpOwogICAgIGVuc3VyZVNlc3Npb24oc2Vzc2lvbklELCBpZGVu
dGlmaWVyQmFzZSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNz
aW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UsIFJl
dGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiYmIGNvb2tpZVN0b3JhZ2UpCit2b2lkIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UsIFJldGFpblB0cjxDRkhUVFBDb29raWVT
dG9yYWdlUmVmPiYmIGNvb2tpZVN0b3JhZ2UpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBnbG9i
YWxTZXNzaW9uTWFwKCkuYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CiAgICAgaWYgKCFhZGRSZXN1
bHQuaXNOZXdFbnRyeSkKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6ZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlk
ZQogICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbj4oc2Vzc2lvbklELCBXVEZNb3ZlKHN0b3JhZ2VTZXNzaW9uKSwgV1RG
TW92ZShjb29raWVTdG9yYWdlKSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpl
bnN1cmVTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmll
ckJhc2UpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UpCiB7CiAgICAg
ZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIGlkZW50aWZpZXJCYXNlLCBudWxscHRyKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmgKaW5kZXggMDlkMmE4NzFiNjAuLjVkNmYyM2Y4NTc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0
cmVhbUhhbmRsZUltcGwuaApAQCAtMzEsOCArMzEsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZS5oIgorI2lu
Y2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvU3RyZWFtQnVmZmVyLmg+CiAKQEAgLTQ2LDcgKzQ2LDcgQEAg
Y2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50OwogCiBjbGFzcyBTb2NrZXRTdHJlYW1IYW5k
bGVJbXBsIDogcHVibGljIFNvY2tldFN0cmVhbUhhbmRsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNvY2tl
dFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYm
IGF1ZGl0RGF0YSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBs
KHVybCwgY2xpZW50LCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFdURk1vdmUoYXVk
aXREYXRhKSkpOyB9CisgICAgc3RhdGljIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBjcmVh
dGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwg
U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFNvY2tldFN0cmVhbUhhbmRsZUltcGwodXJsLCBjbGllbnQsIHNlc3Npb25JRCwgY3Jl
ZGVudGlhbFBhcnRpdGlvbiwgV1RGTW92ZShhdWRpdERhdGEpKSk7IH0KIAogICAgIHZpcnR1YWwg
flNvY2tldFN0cmVhbUhhbmRsZUltcGwoKTsKIApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgog
ICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBwbGF0Zm9ybVNlbmRJbnRlcm5hbChjb25zdCBjaGFy
Kiwgc2l6ZV90KTsKICAgICBib29sIHNlbmRQZW5kaW5nRGF0YSgpOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbChjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQmLCBTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwg
U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNvY2tl
dFN0cmVhbUhhbmRsZUltcGwoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Jiwg
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgU291cmNl
QXBwbGljYXRpb25BdWRpdFRva2VuJiYpOwogICAgIHZvaWQgY3JlYXRlU3RyZWFtcygpOwogICAg
IHZvaWQgc2NoZWR1bGVTdHJlYW1zKCk7CiAgICAgdm9pZCBjaG9vc2VQcm94eSgpOwpAQCAtOTks
NyArOTksNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDRldyaXRlU3RyZWFtUmVmPiBtX3dy
aXRlU3RyZWFtOwogCiAgICAgUmV0YWluUHRyPENGVVJMUmVmPiBtX2h0dHBzVVJMOyAvLyB3cyhz
KTogcmVwbGFjZWQgd2l0aCBodHRwczoKLSAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAg
UEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgU3RyaW5nIG1fY3JlZGVudGlhbFBhcnRp
dGlvbjsKICAgICBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4gbV9hdWRpdERhdGE7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
U29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAppbmRleCAzMzY2YWE2MDZkYS4uMDk5OGEx
ZTg1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29j
a2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKQEAgLTY0LDcgKzY0
LDcgQEAgZXh0ZXJuICJDIiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3RyZWFtU29ja2V0U2V0Tm9E
ZWxheTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpT
b2NrZXRTdHJlYW1IYW5kbGVJbXBsKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVD
bGllbnQmIGNsaWVudCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50
aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEpCitT
b2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsKGNvbnN0IFVSTCYg
dXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxpY2F0
aW9uQXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSkKICAgICA6IFNvY2tldFN0cmVhbUhhbmRsZSh1cmws
IGNsaWVudCkKICAgICAsIG1fY29ubmVjdGluZ1N1YnN0YXRlKE5ldykKICAgICAsIG1fY29ubmVj
dGlvblR5cGUoVW5rbm93bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCmluZGV4IGRiMzA5MGU4
OGE2Li44MGI5ODBiZGFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCkBAIC0zNyw4ICsz
Nyw4IEBACiAjaW5jbHVkZSA8d2luc29jazIuaD4KICNlbmRpZgogCi0jaW5jbHVkZSAiU2Vzc2lv
bklELmgiCiAjaW5jbHVkZSA8Y3VybC9jdXJsLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIv
U2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBT
b2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ7CiAKIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUltcGwg
OiBwdWJsaWMgU29ja2V0U3RyZWFtSGFuZGxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNv
Y2tldFN0cmVhbUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFt
SGFuZGxlQ2xpZW50JiBjbGllbnQsIFNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBw
bGljYXRpb25BdWRpdFRva2VuJiYpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0U3RyZWFt
SGFuZGxlSW1wbCh1cmwsIGNsaWVudCkpOyB9CisgICAgc3RhdGljIFJlZjxTb2NrZXRTdHJlYW1I
YW5kbGVJbXBsPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVu
dCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwbGljYXRp
b25BdWRpdFRva2VuJiYpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0U3RyZWFtSGFuZGxl
SW1wbCh1cmwsIGNsaWVudCkpOyB9CiAKICAgICB2aXJ0dWFsIH5Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCA1YzVmZDc1
NDEzZC4uMGRmYzY2NTQwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAK
QEAgLTQ5LDcgKzQ5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1OZXR3b3JrU3RvcmFn
ZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6
OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPiYmIHNlc3Npb24pCitOZXR3b3JrU3RvcmFn
ZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHN0ZDo6dW5pcXVlX3B0cjxTb3VwTmV0d29ya1Nlc3Npb24+JiYgc2Vzc2lvbikKICAgICA6IG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fc2Vzc2lvbihXVEZNb3ZlKHNlc3Npb24pKQog
ewpAQCAtNzUsMjUgKzc1LDI1IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uPiYgZGVmYXVsdFNlc3Npb24oKQogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpCiB7CiAgICAgaWYgKCFk
ZWZhdWx0U2Vzc2lvbigpKQotICAgICAgICBkZWZhdWx0U2Vzc2lvbigpID0gc3RkOjptYWtlX3Vu
aXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCBudWxscHRyKTsKKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8
TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCBudWxscHRyKTsKICAgICByZXR1cm4gKmRlZmF1bHRTZXNzaW9uKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSk7CisgICAgQVNTRVJUKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICBBU1NFUlQoIWdsb2JhbFNlc3Npb25NYXAoKS5jb250
YWlucyhzZXNzaW9uSUQpKTsKICAgICBnbG9iYWxTZXNzaW9uTWFwKCkuYWRkKHNlc3Npb25JRCwg
c3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KHNlc3Npb25JRCwgc3RkOjpt
YWtlX3VuaXF1ZTxTb3VwTmV0d29ya1Nlc3Npb24+KCkpKTsKIH0KIAotdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24oU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQordm9p
ZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudAogfQogCiB2b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpCiB7Ci0gICAgZGVm
YXVsdFNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgc3RkOjptYWtlX3VuaXF1ZTxTb3VwTmV0d29y
a1Nlc3Npb24+KCkpOworICAgIGRlZmF1bHRTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbj4oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwg
c3RkOjptYWtlX3VuaXF1ZTxTb3VwTmV0d29ya1Nlc3Npb24+KCkpOwogfQogCiBTb3VwTmV0d29y
a1Nlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0T3JDcmVhdGVTb3VwTmV0d29ya1Nl
c3Npb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgKaW5kZXggOTM3ODk5NTBhMGYu
LmZlMDI0MjNlYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgKQEAgLTM2LDcgKzM2LDcg
QEAKIAogI2lmIFVTRShTT1VQKQogCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1N0cmVhbUJ1ZmZlci5o
PgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIApAQCAtNDcsNyArNDcsNyBAQCBjbGFz
cyBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ7CiAKIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUlt
cGwgZmluYWwgOiBwdWJsaWMgU29ja2V0U3RyZWFtSGFuZGxlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFNvY2tldFN0cmVhbUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmLCBTb2NrZXRT
dHJlYW1IYW5kbGVDbGllbnQmLCBTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGxp
Y2F0aW9uQXVkaXRUb2tlbiYmKTsKKyAgICBzdGF0aWMgUmVmPFNvY2tldFN0cmVhbUhhbmRsZUlt
cGw+IGNyZWF0ZShjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBQQUw6OlNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYpOwog
ICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGUoR1NvY2tldENvbm5lY3Rp
b24qLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmKTsKIAogICAgIHZpcnR1YWwgflNvY2tldFN0
cmVhbUhhbmRsZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbFNvdXAuY3BwCmlu
ZGV4IGU4NTk0ZTk0M2MxLi44ZTUwYmQ2YzM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbFNvdXAuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyB2b2lkIHdzc1NvY2tldENsaWVu
dEV2ZW50Q2FsbGJhY2soR1NvY2tldENsaWVudCosIEdTb2NrZXRDbGllbnRFdmVudCBldmVuCiAg
ICAgZ19zaWduYWxfY29ubmVjdChjb25uZWN0aW9uLCAiYWNjZXB0LWNlcnRpZmljYXRlIiwgR19D
QUxMQkFDSyh3c3NDb25uZWN0aW9uQWNjZXB0Q2VydGlmaWNhdGVDYWxsYmFjayksIG51bGxwdHIp
OwogfQogCi1SZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gU29ja2V0U3RyZWFtSGFuZGxlSW1w
bDo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVu
dCwgU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4m
JikKK1JlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpj
cmVhdGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2Vu
JiYpCiB7CiAgICAgUmVmPFNvY2tldFN0cmVhbUhhbmRsZUltcGw+IHNvY2tldCA9IGFkb3B0UmVm
KCpuZXcgU29ja2V0U3RyZWFtSGFuZGxlSW1wbCh1cmwsIGNsaWVudCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCmlu
ZGV4IDdiNzNmNTkzM2RhLi4xMjEwNTg1MzM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTQxLDcgKzQxLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRl
ZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJD
b25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFBy
b3ZpZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlPiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmln
aW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQ
cm92aWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0UmVmKCpuZXcgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUodXJsLCBpZGVudGlmaWVy
LCB1c2VyQWdlbnQsIHRocmVhZCwgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBXVEZNb3ZlKHRvcE9yaWdpbiksIHRpbWVPcmlnaW4sIGNvbm5lY3Rpb25Qcm94eSwg
c29ja2V0UHJvdmlkZXIsIHNlc3Npb25JRCkpOwogICAgIGlmICghc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5KQpAQCAtNDksNyArNDksNyBAQCBSZWY8RGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29u
c3QgVVJMJiB1cgogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1EZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdv
cmtlclRocmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGlt
ZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblBy
b3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIFNlc3Npb25JRCBzZXNzaW9uSUQp
CitEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUo
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRv
cE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIs
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IFdvcmtlckdsb2JhbFNjb3BlKHVybCwg
aWRlbnRpZmllciwgdXNlckFnZW50LCB0aHJlYWQsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgV1RGTW92ZSh0b3BPcmlnaW4pLCB0aW1lT3JpZ2luLCBjb25uZWN0
aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBzZXNzaW9uSUQpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggMmQ1
MDhmMWE4OTMuLjM0ZWRlYzA2ZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAogY2xhc3MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUg
ZmluYWwgOiBwdWJsaWMgV29ya2VyR2xvYmFsU2NvcGUgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQmLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBi
b29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgU2Vzc2lvbklEKTsKKyAg
ICBzdGF0aWMgUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVk
aWNhdGVkV29ya2VyVGhyZWFkJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIFBBTDo6
U2Vzc2lvbklEKTsKICAgICB2aXJ0dWFsIH5EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpOwog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6
OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmKTsK
QEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBCYXNlID0gV29y
a2VyR2xvYmFsU2NvcGU7CiAKLSAgICBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3Rvbmlj
VGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFBy
b3ZpZGVyKiwgU2Vzc2lvbklEKTsKKyAgICBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3Rv
bmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tl
dFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgYm9vbCBpc0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IGltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3Bw
CmluZGV4IGE0ODM4YjQ3MGIzLi41MDkyYmM5Y2I2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApAQCAtMzgsNyArMzgsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLURlZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29y
a2VyVGhyZWFkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRl
clByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVj
dFByb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0
UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3Ms
IFNlc3Npb25JRCBzZXNzaW9uSUQpCitEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdv
cmtlclRocmVhZChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmpl
Y3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJveHksIFNvY2tl
dFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdz
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBXb3JrZXJUaHJlYWQodXJsLCBpZGVu
dGlmaWVyLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJP
YmplY3RQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdG9wT3JpZ2lu
LCB0aW1lT3JpZ2luLCBjb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxh
Z3MsIHNlc3Npb25JRCkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkod29ya2VyT2JqZWN0UHJv
eHkpCiB7CkBAIC00OCw3ICs0OCw3IEBAIERlZGljYXRlZFdvcmtlclRocmVhZDo6fkRlZGljYXRl
ZFdvcmtlclRocmVhZCgpCiB7CiB9CiAKLVJlZjxXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVk
V29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIFNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8V29ya2VyR2xvYmFsU2NvcGU+IERl
ZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3Rvbmlj
VGltZSB0aW1lT3JpZ2luLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgcmV0dXJu
IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUodXJsLCBpZGVudGlmaWVyLCB1c2Vy
QWdlbnQsICp0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgV1RGTW92ZSh0b3BPcmlnaW4p
LCB0aW1lT3JpZ2luLCBpZGJDb25uZWN0aW9uUHJveHkoKSwgc29ja2V0UHJvdmlkZXIoKSwgc2Vz
c2lvbklEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVk
V29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRo
cmVhZC5oCmluZGV4IGVjMDEyZjViZmEwLi43NzViMGMwOWI2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCkBAIC00OSwxMSArNDksMTEgQEAg
cHVibGljOgogICAgIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSgpIGNvbnN0
IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0UHJveHk7IH0KIAogcHJvdGVjdGVkOgotICAgIFJlZjxX
b3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmln
aW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgU2Vzc2lvbklEKSBvdmVycmlkZTsKKyAgICBS
ZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
T3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIERl
ZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtl
ckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUs
IGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdp
biYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29u
bmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vzc2lv
bklEKTsKKyAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29ya2VyVGhy
ZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMm
LCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgSlNDOjpSdW50aW1l
RmxhZ3MsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIFdvcmtlck9iamVjdFByb3h5JiBtX3dvcmtl
ck9iamVjdFByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCA0MzYxMmQy
MzNkZC4uODI5MDMxNDA1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTE2Nyw3
ICsxNjcsNyBAQCB2b2lkIFdvcmtlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZQogdm9pZCBXb3JrZXI6Om5vdGlmeUZp
bmlzaGVkKCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBjb250ZXh0ID8gY29udGV4dC0+c2Vzc2lvbklE
KCkgOiBTZXNzaW9uSUQoKTsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBjb250ZXh0
ID8gY29udGV4dC0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRCgpOwogCiAgICAgaWYgKG1f
c2NyaXB0TG9hZGVyLT5mYWlsZWQoKSB8fCAhc2Vzc2lvbklELmlzVmFsaWQoKSkKICAgICAgICAg
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBmYWxz
ZSwgdHJ1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cAppbmRleCAxODBmODhlNjk1OC4uNzYyYjQxMTZjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01Miw3ICs1Miw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV29ya2VyR2xvYmFsU2Nv
cGU6Oldvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmIHRocmVhZCwgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50
OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNv
Y2tldFByb3ZpZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorV29ya2VyR2xvYmFsU2NvcGU6Oldv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmIHRocmVhZCwgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJD
b25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFBy
b3ZpZGVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3VybCh1cmwpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBjNWIwZDUy
YWI0Yy4uNjcwNzM0NDc3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmgKQEAgLTI5LDEzICsyOSwxMyBAQAogI2luY2x1ZGUgIkJhc2U2NFV0aWxpdGllcy5o
IgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRRdWV1ZS5oIgogI2lu
Y2x1ZGUgIldvcmtlclNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZp
ZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTA4LDcgKzEwOCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgZmluYWw7CiAK
IHByb3RlY3RlZDoKLSAgICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmLCBi
b29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgU2Vzc2lvbklEKTsKKyAg
ICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRv
cE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBh
cHBseUNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmKTsKIApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZh
dGU6CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uc3RfY2FzdDxXb3JrZXJHbG9iYWxTY29wZSo+KHRo
aXMpOyB9CiAgICAgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwot
ICAgIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25J
RDsgfQorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc2Vzc2lvbklEOyB9CiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBm
aW5hbDsKICAgICB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBm
aW5hbDsKICAgICB2b2lkIGRpc2FibGVXZWJBc3NlbWJseShjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSkgZmluYWw7CkBAIC0xODIsNyArMTgyLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UGVy
Zm9ybWFuY2U+IG1fcGVyZm9ybWFuY2U7CiAgICAgbXV0YWJsZSBSZWZQdHI8Q3J5cHRvPiBtX2Ny
eXB0bzsKIAotICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNjdhZGY3MDE0Nzcu
LmMxZGY0OWM2ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlUHJveHkuaApAQCAtMzUsMTAgKzM1LDEzIEBACiAjaW5jbHVkZSA8cnVudGltZS9SdW50
aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogCituYW1lc3BhY2Ug
UEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM7Ci1jbGFzcyBTZXNzaW9uSUQ7
CiBjbGFzcyBVUkw7CiBjbGFzcyBXb3JrZXI7CiAKQEAgLTQ3LDcgKzUwLDcgQEAgY2xhc3MgV29y
a2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNj
b3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vz
c2lvbklEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29u
c3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9u
aWNUaW1lIHRpbWVPcmlnaW4sIEpTQzo6UnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKFJlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxB
cnJheT4pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cAppbmRleCAxOTY1M2Q4YzJiNS4uNGIyYWMxMzBiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFdvcmtl
ck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8
V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGN1cnJlbnRU
aHJlYWQoKSA9PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkudGhyZWFkKCkudGhyZWFkSUQoKSkpOwogfQogCi12b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQ
b2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGlt
ZUZsYWdzLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6
c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBN
b25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncywg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8g
YmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBB
U1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCA3OTNhNGM1MDY1MS4uYzEyM2UzZjkyNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRhdGlvbnMg
b2YgV29ya2VyR2xvYmFsU2NvcGVQcm94eS4KICAgICAvLyAoT25seSB1c2UgdGhlc2UgZnVuY3Rp
b25zIGluIHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4pCi0gICAgdm9pZCBzdGFydFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vzc2lv
bklEKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBz
Y3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIEpTQzo6UnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCkgZmluYWw7CiAgICAg
dm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1l
c3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYs
IHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4pIGZpbmFsOwogICAgIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAKaW5kZXggZjZhYjllNGVmZTEuLmE2YjcxMTIyNDllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHVuc2ln
bmVkIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkQ291bnQoKQogc3RydWN0IFdvcmtlclRocmVh
ZFN0YXJ0dXBEYXRhIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJUaHJlYWRTdGFy
dHVwRGF0YSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdvcmtlclRo
cmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUs
IFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgU2Vzc2lvbklEKTsKKyAgICBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwm
IHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKTsKIAog
ICAgIFVSTCBtX3NjcmlwdFVSTDsKICAgICBTdHJpbmcgbV9pZGVudGlmaWVyOwpAQCAtODMsMTAg
KzgzLDEwIEBAIHB1YmxpYzoKICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5OwogICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gbV90b3BPcmlnaW47CiAg
ICAgTW9ub3RvbmljVGltZSBtX3RpbWVPcmlnaW47Ci0gICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklE
OworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAotV29ya2VyVGhyZWFkU3Rh
cnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGlt
ZSB0aW1lT3JpZ2luLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorV29ya2VyVGhyZWFkU3RhcnR1cERh
dGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1l
T3JpZ2luLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3NjcmlwdFVSTChzY3Jp
cHRVUkwuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllci5pc29s
YXRlZENvcHkoKSkKICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudC5pc29sYXRlZENvcHkoKSkK
QEAgLTEwMCw3ICsxMDAsNyBAQCBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6V29ya2VyVGhyZWFk
U3RhcnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cgogewogfQogCi1Xb3Jr
ZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9y
dGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0
YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2lu
LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgSlNDOjpS
dW50aW1lRmxhZ3MgcnVudGltZUZsYWdzLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorV29ya2VyVGhy
ZWFkOjpXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29k
ZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQ
cm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1v
ZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9u
b3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29u
bmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGlt
ZUZsYWdzIHJ1bnRpbWVGbGFncywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV93
b3JrZXJMb2FkZXJQcm94eSh3b3JrZXJMb2FkZXJQcm94eSkKICAgICAsIG1fd29ya2VyUmVwb3J0
aW5nUHJveHkod29ya2VyUmVwb3J0aW5nUHJveHkpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50
aW1lRmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCBjNTkzMjI5
NjdmZC4uY2ZlMzQzZWVmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApA
QCAtMzEsMTMgKzMxLDE2IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30K
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnM7CiBjbGFzcyBVUkw7CiBjbGFzcyBOb3RpZmljYXRpb25DbGllbnQ7CiBjbGFz
cyBTZWN1cml0eU9yaWdpbjsKLWNsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFNvY2tldFByb3ZpZGVy
OwogY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CiBjbGFzcyBXb3JrZXJMb2FkZXJQcm94eTsKQEAg
LTgxLDEwICs4NCwxMCBAQCBwdWJsaWM6CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZs
YWdzKCkgY29uc3QgeyByZXR1cm4gbV9ydW50aW1lRmxhZ3M7IH0KIAogcHJvdGVjdGVkOgotICAg
IFdvcmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRl
clByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVj
dGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vzc2lvbklE
KTsKKyAgICBXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3Jr
ZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRN
b2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgSlNDOjpSdW50aW1lRmxhZ3MsIFBB
TDo6U2Vzc2lvbklEKTsKIAogICAgIC8vIEZhY3RvcnkgbWV0aG9kIGZvciBjcmVhdGluZyBhIG5l
dyB3b3JrZXIgY29udGV4dCBmb3IgdGhlIHRocmVhZC4KLSAgICB2aXJ0dWFsIFJlZjxXb3JrZXJH
bG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1v
bm90b25pY1RpbWUgdGltZU9yaWdpbiwgU2Vzc2lvbklEKSA9IDA7CisgICAgdmlydHVhbCBSZWY8
V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3Jp
Z2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKSA9IDA7CiAKICAg
ICAvLyBFeGVjdXRlcyB0aGUgZXZlbnQgbG9vcCBmb3IgdGhlIHdvcmtlciB0aHJlYWQuIERlcml2
ZWQgY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gcGVyZm9ybSBhY3Rpb25zIGJlZm9yZS9hZnRlciBl
bnRlcmluZyB0aGUgZXZlbnQgbG9vcC4KICAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250YWluZXIuaAppbmRleCAxMDJjMmZjZmZjMy4uMGU0MmJjNGNmODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuaApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JDbGllbnQu
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIK
KyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggYmE3NDM0YTBlNTIuLjFmOTJhN2ZkMjNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvblBhcmFtZXRlcnMuaApAQCAtMjksMTMgKzI5LDEzIEBACiAKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uT3B0aW9ucy5oIgotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlVS
TC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycyB7
Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7
CiAgICAgVVJMIHNjcmlwdFVSTDsKICAgICBVUkwgY2xpZW50Q3JlYXRpb25VUkw7CiAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDc1ZDhkOTI3NGQuLjE4NDlj
YWY4ZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3NiBAQAorMjAxNy0wOC0xNCAgRG9uIE9sbXN0
ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgU2Vzc2lv
bklEIGludG8gUEFMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzQxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZCk6CisgICAg
ICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6cmVzdW1lRG93bmxvYWQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRTdHJlYW0pOgor
ICAgICAgICAoV2ViS2l0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2Fk
VG9Eb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmdldFJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25s
b2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5j
cHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktp
dDo6ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmRvd25sb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpy
ZXN1bWVEb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpO
ZXR3b3JrU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnNlc3Npb25JRCBjb25zdCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTb2NrZXRTdHJlYW06Ok5ldHdvcmtTb2NrZXRTdHJlYW0pOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkOjpTcGVjdWxhdGl2ZUxvYWQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0Ojpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Np
b25Db2NvYTo6ZGVmYXVsdFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uU291cDo6TmV0d29ya1Nlc3Npb25Tb3VwKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtTZXNzaW9uU291cC5oOgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6OmluaXRpYWxpemUpOgorICAgICAg
ICAqIFNoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OnN0YXRpY1Nl
c3Npb25NYXApOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Np
b24pOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbik6CisgICAgICAgICog
U2hhcmVkL1Nlc3Npb25UcmFja2VyLmg6CisgICAgICAgICogU2hhcmVkL1N0b3JhZ2UvU3RvcmFn
ZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNo
YXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMv
Q29va2llU3RvcmFnZVNoaW0ubW06CisgICAgICAgIChXZWJLaXQ6OndlYktpdENvb2tpZVN0b3Jh
Z2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTCk6CisgICAgICAgICogU3RvcmFnZVByb2Nl
c3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQpOgorICAg
ICAgICAqIFN0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQu
aDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjppZGJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3Jh
Z2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQ
cm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAqIFN0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFn
ZVByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKToKKyAgICAg
ICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3Bw
OgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6c2V0V2Vic2l0ZURhdGFTdG9yZSk6
CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpzZXNzaW9uSUQpOgorICAgICAgICAo
QVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElXZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6
ZGVmYXVsdERhdGFTdG9yZSk6CisgICAgICAgIChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0
ZUxlZ2FjeSk6CisgICAgICAgIChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3Rv
cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tD
b29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV0tDb29raWVN
YW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdl
ckRlbGV0ZUFsbENvb2tpZXMpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29v
a2llc01vZGlmaWVkQWZ0ZXJEYXRlKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5t
bToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBfc2V0Q29va2llQWNjZXB0UG9saWN5Ol0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAg
ICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6CisgICAg
ICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3kpOgorICAgICAgICAo
d2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2dldF9hY2NlcHRfcG9saWN5KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXIpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YWRkQXV0b1N0
YXJ0T3JpZ2luSGFzaCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVy
OjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bh
c3NpbmdUZXN0KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmRp
ZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdJbkF1dG9TdGFydFByb3ZpZGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3Rv
cmFnZVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzUHJv
eHk6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzc1By
b3h5OjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNz
UHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgICogVUlQcm9jZXNz
L1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJD
b29raWVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29v
a2llTWFuYWdlclByb3h5OjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2lu
Y2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0QWxsQ29va2llcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0Q29va2llcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c3RhcnRPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzdG9wT2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6c2V0Q29va2llT2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
b2tpZU1hbmFnZXJQcm94eTo6cmVnaXN0ZXJPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXJQcm94eTo6dW5yZWdpc3Rlck9ic2VydmVyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29va2llTWFuYWdlclByb3h5Ojpjb29raWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFn
ZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6cGFnZUFkZGVkVG9Qcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2w6OnBhZ2VSZW1vdmVkRnJvbVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6ZG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVz
dW1lRG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWRkUGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpw
bHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JUb3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluc0luQWxsUGVyc2lzdGVudERhdGFTdG9yZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zV2l0
aFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdl
YnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJz
aXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlcjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29raWVNYW5hZ2VyOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29v
a2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb29raWVNYW5hZ2VyOjpnZXRBbGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29va2llTWFuYWdlcjo6Z2V0Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tp
ZU1hbmFnZXI6OnNldENvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6
OnNldENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpub3RpZnlD
b29raWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6c3Rh
cnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFu
YWdlcjo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVBy
b3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29u
bmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvV2ViRGF0YWJhc2VQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdIYW5kbGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJTb2NrZXRTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFN0
cmVhbTo6V2ViU29ja2V0U3RyZWFtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0U3RyZWFtLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFn
ZVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG9TdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5S
ZXNvdXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z0luQ2xpZW50OjpkaWRTdGFydEZyb21PcmlnaW4pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6c3RhcnRE
b3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjb252ZXJ0TWFpblJlc291cmNl
TG9hZFRvRG93bmxvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV93ZWJTUUxp
dGVEYXRhYmFzZVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVz
dHJveVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppc1BsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbHVnSW5EaWRT
dGFydEZyb21PcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRBZGRQbHVn
SW5BdXRvU3RhcnRPcmlnaW5IYXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVz
ZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5EZWZhdWx0SGFzaGVzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW46CisKIDIwMTctMDgtMTQgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFtBcHBsZSBQYXldIEFkZCBzdXBwb3J0IGZvciBwaG9uZXRpYyBjb250YWN0IG5h
bWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5jcHAKaW5kZXggYmY4NDQzYjU3MTguLmNkOTIxOTUyMWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCkBAIC00NSw3
ICs0NSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
ICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFu
YWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIE5ldHdvcmtEYXRh
VGFzayYgZG93bmxvYWQsIGNvbnN0IFNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IHN1Z2dlc3RlZE5hbWUpCitEb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3du
bG9hZE1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgTmV0d29ya0RhdGFUYXNrJiBkb3du
bG9hZCwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWROYW1lKQogICAgIDogbV9kb3dubG9hZE1hbmFnZXIoZG93bmxvYWRNYW5hZ2VyKQogICAg
ICwgbV9kb3dubG9hZElEKGRvd25sb2FkSUQpCiAgICAgLCBtX2Rvd25sb2FkKCZkb3dubG9hZCkK
QEAgLTU3LDcgKzU3LDcgQEAgRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93
bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIE5ldHcKICAgICBtX2Rvd25sb2Fk
TWFuYWdlci5kaWRDcmVhdGVEb3dubG9hZCgpOwogfQogI2lmIFBMQVRGT1JNKENPQ09BKQotRG93
bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9h
ZElEIGRvd25sb2FkSUQsIE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayogZG93bmxvYWQsIGNvbnN0
IFNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCitEb3du
bG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2Fk
SUQgZG93bmxvYWRJRCwgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrKiBkb3dubG9hZCwgY29uc3Qg
UEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQog
ICAgIDogbV9kb3dubG9hZE1hbmFnZXIoZG93bmxvYWRNYW5hZ2VyKQogICAgICwgbV9kb3dubG9h
ZElEKGRvd25sb2FkSUQpCiAgICAgLCBtX2Rvd25sb2FkVGFzayhkb3dubG9hZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCmluZGV4IGFl
NGQ3Y2ZmNmNmLi5iYzllYTRmNTIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5k
bGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHBh
bC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNzYsOSArNzYsOSBAQCBjbGFzcyBEb3du
bG9hZCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKERvd25sb2FkKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAjaWYgVVNF
KE5FVFdPUktfU0VTU0lPTikKLSAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9h
ZElELCBOZXR3b3JrRGF0YVRhc2smLCBjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7CisgICAgRG93bmxvYWQo
RG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgTmV0d29ya0RhdGFUYXNrJiwgY29uc3QgUEFM
OjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9
IHsgfSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2Vy
JiwgRG93bmxvYWRJRCwgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrKiwgY29uc3QgV2ViQ29yZTo6
U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUgPSB7
IH0pOworICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIE5TVVJMU2Vz
c2lvbkRvd25sb2FkVGFzayosIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0
IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUgPSB7IH0pOwogI2VuZGlmCiAjZWxzZQogICAgIERv
d25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUgPSB7IH0pOwpAQCAt
MTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWlu
UHRyPE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzaz4gbV9kb3dubG9hZFRhc2s7CiAjZW5kaWYKLSAg
ICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9z
ZXNzaW9uSUQ7CiAjZWxzZSAvLyBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiAgICAgU3RyaW5nIG1fcmVzcG9uc2VNSU1FVHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuY3BwCmluZGV4IGI3NmJhNDdiZDEwLi5lZjE1MzAxOWEzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZE1hbmFnZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiUGVuZGluZ0Rvd25s
b2FkLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRl
IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDUsNyArNDUsNyBAQCBEb3dubG9h
ZE1hbmFnZXI6OkRvd25sb2FkTWFuYWdlcihDbGllbnQmIGNsaWVudCkKIHsKIH0KIAotdm9pZCBE
b3dubG9hZE1hbmFnZXI6OnN0YXJ0RG93bmxvYWQoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MqIGNvbm5lY3Rpb24sIFNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJ
RCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3Rl
ZE5hbWUpCit2b2lkIERvd25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZChOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyogY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBE
b3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQogewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAg
ICAgYXV0byogbmV0d29ya1Nlc3Npb24gPSBTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKTsKQEAgLTE2Miw3ICsxNjIsNyBAQCB2b2lkIERvd25sb2FkTWFuYWdlcjo6Y29u
dGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihEb3dubG9hZElEIGRvd25sbwog
I2VuZGlmCiB9CiAKLXZvaWQgRG93bmxvYWRNYW5hZ2VyOjpyZXN1bWVEb3dubG9hZChTZXNzaW9u
SUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1
bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKK3ZvaWQgRG93bmxvYWRNYW5hZ2VyOjpyZXN1bWVE
b3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogewogI2lmIFVT
RShORVRXT1JLX1NFU1NJT04pCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgK
aW5kZXggYjRkNTI1YjcyZDQuLjE2M2MwMGE1YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaApAQCAtMzUs
MTIgKzM1LDE1IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTsKIGNsYXNzIFJl
c291cmNlSGFuZGxlOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKLWNsYXNzIFNlc3Npb25JRDsKIH0KIAogbmFtZXNwYWNlIElQQyB7CkBAIC03NSw3ICs3
OCw3IEBAIHB1YmxpYzoKIAogICAgIGV4cGxpY2l0IERvd25sb2FkTWFuYWdlcihDbGllbnQmKTsK
IAotICAgIHZvaWQgc3RhcnREb3dubG9hZChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyos
IFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKKyAgICB2b2lkIHN0
YXJ0RG93bmxvYWQoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqLCBQQUw6OlNlc3Npb25J
RCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Ry
aW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAg
IHZvaWQgZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCwgc3RkOjp1bmlxdWVf
cHRyPERvd25sb2FkPiYmKTsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQpAQCAtODcsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb252ZXJ0TmV0d29ya0xvYWRU
b0Rvd25sb2FkKERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrTG9hZD4mJiwgVmVj
dG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiYmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
CiAgICAgdm9pZCBjb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25s
b2FkSUQsIFN0cmluZyBkZXN0aW5hdGlvbiwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CiAKLSAgICB2b2lkIHJlc3VtZURvd25sb2FkKFdlYkNv
cmU6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1
bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYpOworICAgIHZvaWQgcmVzdW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQs
IGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRo
LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKIAogICAgIHZvaWQgY2FuY2VsRG93
bmxvYWQoRG93bmxvYWRJRCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAppbmRleCA2NTIyZDk4
MjY4NC4uYWU5NDc0YTUxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaApAQCAtMzEsNyArMzEsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGVUeXBlcy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3Bv
bnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRl
bnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgc3RydWN0IFBhcmFt
ZXRlcnMgewogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0
OwogICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNvdXJjZU9yaWdpbjsKLSAg
ICAgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICAgICAgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEOwogICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBhbGxvd1N0
b3JlZENyZWRlbnRpYWxzOwogICAgIH07CiAgICAgZW51bSBjbGFzcyBSZXN1bHQgeyBTdWNjZXNz
LCBGYWlsdXJlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDczYmE2MGMyN2Uz
Li5kMjQxYzBkNzM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTUxLDcgKzUx
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQog
I2luY2x1ZGUgIlBpbmdMb2FkLmgiCkBAIC0xNzMsNyArMTczLDcgQEAgdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIEkKIHsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3Jl
YXRlU29ja2V0U3RyZWFtKFVSTCYmIHVybCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGNh
Y2hlUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlmaWVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0U3RyZWFtKFVSTCYmIHVybCwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBTdHJpbmcgY2FjaGVQYXJ0aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIp
CiB7CiAgICAgQVNTRVJUKCFtX25ldHdvcmtTb2NrZXRTdHJlYW1zLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKICAgICBXZWJDb3JlOjpTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4gdG9rZW4gPSB7
IH07CkBAIC0yNjMsMTAgKzI2MywxMCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogICAgIE5ldHdvcmtQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wcmVmZXRjaEROUyhob3N0bmFtZSk7CiB9CiAKLXN0YXRpYyBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCitz
dGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlm
IChzZXNzaW9uSUQgIT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKKyAgICBpZiAo
c2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKICAgICAg
ICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICAgICAgcmV0dXJuICpzdG9yYWdlU2Vzc2lv
bjsKIApAQCAtMjc3LDEyICsyNzcsMTIgQEAgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICByZXR1cm4gTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKIH0KIAotdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RhcnREb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lvbklE
LCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6c3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2Fk
SUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIHN1Z2dlc3RlZE5hbWUpCiB7CiAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmRv
d25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQodGhpcywgc2Vzc2lvbklELCBkb3dubG9hZElE
LCByZXF1ZXN0LCBzdWdnZXN0ZWROYW1lKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFNlc3Npb25JRCBz
ZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElE
IGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCBkb3du
bG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQogewogICAgIGF1dG8mIG5ldHdvcmtQcm9jZXNzID0gTmV0d29ya1By
b2Nlc3M6OnNpbmdsZXRvbigpOwogICAgIGlmICghbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIp
IHsKQEAgLTI5OSwzMiArMjk5LDMyIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChTZXNzaW9uSUQKICAgICBsb2Fk
ZXItPmNvbnZlcnRUb0Rvd25sb2FkKGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKIH0K
IAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBT
dHJpbmcmIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tp
ZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBXZWJDb3Jl
Ojpjb29raWVzRm9yRE9NKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVy
bCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNG
cm9tRE9NKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQordm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IGNvb2tpZVN0cmluZykKIHsKICAgICBXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTShzdG9yYWdl
U2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwsIGNvb2tpZVN0cmluZyk7CiB9CiAK
LXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJv
b2wmIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNF
bmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBVUkwmIHVybCwgYm9vbCYgcmVzdWx0KQogewogICAgIHJlc3VsdCA9IFdlYkNvcmU6OmNv
b2tpZXNFbmFibGVkKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCk7
CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgVVJMJiB1cmwsIFN0cmluZyYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJp
bmcmIHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOwog
fQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmws
IFZlY3RvcjxDb29raWU+JiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIHJlc3VsdCkKIHsKICAg
ICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0
UGFydHksIHVybCwgcmVzdWx0KTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGVsZXRlQ29va2llKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQogewogICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tp
ZShzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCB1cmwsIGNvb2tpZU5hbWUpOwogfQpAQCAtNDIw
LDcgKzQyMCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENhcHR1
cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vCiAKIHZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQog
ewotICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKHtTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgeyB9LCB7IH0sIHsg
fX0pOworICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKHtQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCB7IH0s
IHsgfSwgeyB9fSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDM4NGNjZTc0YzQyLi4yNjdhMWE2YWFmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaApAQCAtODgsMTUgKzg4LDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVMb2Fk
SWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNldERlZmVyc0xv
YWRpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBjcm9zc09yaWdp
blJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
VVJMJiByZWRpcmVjdFVSTCk7Ci0gICAgdm9pZCBzdGFydERvd25sb2FkKFdlYkNvcmU6OlNlc3Np
b25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKLSAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJj
ZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBzdGFydERv
d25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOworICAgIHZvaWQg
Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklELCB1aW50NjRf
dCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0g
ICAgdm9pZCBjb29raWVzRm9yRE9NKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7Ci0g
ICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7
Ci0gICAgdm9pZCBjb29raWVzRW5hYmxlZChXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCYgcmVzdWx0KTsK
LSAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25J
RCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBT
dHJpbmcmIHJlc3VsdCk7Ci0gICAgdm9pZCBnZXRSYXdDb29raWVzKFdlYkNvcmU6OlNlc3Npb25J
RCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBW
ZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2llKFdlYkNvcmU6
OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1l
KTsKKyAgICB2b2lkIGNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1bHQpOwor
ICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sJiByZXN1bHQpOworICAgIHZv
aWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1
bHQpOworICAgIHZvaWQgZ2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6
Q29va2llPiYpOworICAgIHZvaWQgZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklELCBjb25zdCBX
ZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwogCiAgICAgdm9pZCByZWdp
c3RlckZpbGVCbG9iVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgcGF0aCwg
Y29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9y
PFdlYkNvcmU6OkJsb2JQYXJ0PiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAgLTEx
Miw3ICsxMTIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3Jr
TG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpOwogCi0gICAgdm9pZCBjcmVhdGVTb2NrZXRTdHJlYW0o
V2ViQ29yZTo6VVJMJiYsIFdlYkNvcmU6OlNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9u
LCB1aW50NjRfdCk7CisgICAgdm9pZCBjcmVhdGVTb2NrZXRTdHJlYW0oV2ViQ29yZTo6VVJMJiYs
IFBBTDo6U2Vzc2lvbklELCBTdHJpbmcgY2FjaGVQYXJ0aXRpb24sIHVpbnQ2NF90KTsKICAgICB2
b2lkIGRlc3Ryb3lTb2NrZXRTdHJlYW0odWludDY0X3QpOwogICAgIAogICAgIHZvaWQgZW5zdXJl
TGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZWUyNTg0YmMzYmMuLjNmMDkzOGI2ZmZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI5LDE1ICsyOSwxNSBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgU2V0RGVmZXJzTG9hZGluZyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCBib29sIGRlZmVycykKICAgICBQcmVmZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCiAKLSAgICBT
dGFydERvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxv
YWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5n
IHN1Z2dlc3RlZE5hbWUpCi0gICAgQ29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVu
dGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCisgICAg
U3RhcnREb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93
bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBzdWdnZXN0
ZWROYW1lKQorICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChTZXNzaW9uSUQg
c2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgV2ViS2l0OjpE
b3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29va2llc0ZvckRPTShX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2Vi
Q29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCi0gICAgU2V0Q29va2llc0Zyb21ET00o
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdl
YkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVTdHJpbmcpCi0gICAgQ29va2llc0VuYWJsZWQo
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdl
YkNvcmU6OlVSTCB1cmwpIC0+IChib29sIGVuYWJsZWQpCi0gICAgQ29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZp
cnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJpbmcgcmVzdWx0KQotICAgIEdldFJh
d0Nvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0
UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29r
aWVzKQotICAgIERlbGV0ZUNvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKKyAgICBDb29raWVzRm9yRE9NKFNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJs
KSAtPiAoU3RyaW5nIHJlc3VsdCkKKyAgICBTZXRDb29raWVzRnJvbURPTShTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5n
IGNvb2tpZVN0cmluZykKKyAgICBDb29raWVzRW5hYmxlZChTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKGJvb2wgZW5hYmxl
ZCkKKyAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyBy
ZXN1bHQpCisgICAgR2V0UmF3Q29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpV
UkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29r
aWU+IGNvb2tpZXMpCisgICAgRGVsZXRlQ29va2llKFNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVnaXN0ZXJGaWxlQmxvYlVS
TChXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgcGF0aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgZXh0ZW5zaW9uSGFuZGxlLCBTdHJpbmcgY29udGVudFR5cGUpCiAgICAgUmVnaXN0
ZXJCbG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFZlY3RvcjxXZWJDb3JlOjpCbG9iUGFydD4gYmxv
YlBhcnRzLCBTdHJpbmcgY29udGVudFR5cGUpCkBAIC01Myw3ICs1Myw3IEBAIG1lc3NhZ2VzIC0+
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFNl
dENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCi0g
ICAgQ3JlYXRlU29ja2V0U3RyZWFtKFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFN0cmluZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllcikK
KyAgICBDcmVhdGVTb2NrZXRTdHJlYW0oV2ViQ29yZTo6VVJMIHVybCwgU2Vzc2lvbklEIHNlc3Np
b25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlmaWVyKQogCiAgICAg
RW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4IDA0NzQ3YzQwYTAyLi44NWE1YjEy
ZTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAK
QEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29u
ZHMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRQYXJhbWV0ZXJzLmgKaW5kZXggZDA2NGJlYmVjZWEuLjE0YTVlOTNiNWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JEYXRhRmlsZVJlZmVyZW5j
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZFBhcmFtZXRlcnMg
ewogcHVibGljOgogICAgIHVpbnQ2NF90IHdlYlBhZ2VJRCB7IDAgfTsKICAgICB1aW50NjRfdCB3
ZWJGcmFtZUlEIHsgMCB9OwotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQgeyBXZWJD
b3JlOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkgfTsKKyAgICBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQgeyBQQUw6OlNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKSB9OwogICAgIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmlu
Z1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3JlOjpTbmlmZkNvbnRlbnQgfTsK
ICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzIHsg
V2ViQ29yZTo6RG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDFiZTM4YTI3MjE4Li5l
MWVmMTUxYmJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKQEAgLTYxLDkgKzYxLDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRh
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1VSTFBhcnNlci5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTIzNyw3ICsyMzcsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmJgogCiAgICAgLy8gRklYTUU6IGluc3RlYWQgb2YgaGFuZGxp
bmcgdGhpcyBoZXJlLCBhIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgbGF0ZXIgKHNjYWxlcyB0byBt
dWx0aXBsZSBzZXNzaW9ucykKICAgICBpZiAocGFyYW1ldGVycy5wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKQotICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbih7U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCksIHsgfSwgeyB9
LCB7IH19KTsKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oe1BBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCks
IHsgfSwgeyB9LCB7IH19KTsKIAogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdO
ZXR3b3JrU2Vzc2lvbikKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05l
d1Rlc3RpbmdTZXNzaW9uKCk7CkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMKICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9y
ZVNlc3Npb24oV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6
OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgU2Vzc2lv
blRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCk7CiB9CkBAIC0zMjUsNyArMzI1LDcg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dXBkYXRlQ29va2llUGFydGl0aW9uaW5nRm9yVG9wUHJp
dmF0ZWx5T3duZWREb21haW5zKGNvbnN0IFYKIH0KICNlbmRpZgogCi1zdGF0aWMgdm9pZCBmZXRj
aERpc2tDYWNoZUVudHJpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgRnVuY3Rpb248dm9pZCAoVmVjdG9yPFdlYnNp
dGVEYXRhOjpFbnRyeT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorc3RhdGljIHZvaWQgZmV0Y2hE
aXNrQ2FjaGVFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgRnVuY3Rpb248dm9pZCAoVmVjdG9yPFdl
YnNpdGVEYXRhOjpFbnRyeT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShO
RVRXT1JLX0NBQ0hFKQogICAgIGlmIChhdXRvKiBjYWNoZSA9IE5ldHdvcmtQcm9jZXNzOjpzaW5n
bGV0b24oKS5jYWNoZSgpKSB7CkBAIC0zNjAsNyArMzYwLDcgQEAgc3RhdGljIHZvaWQgZmV0Y2hE
aXNrQ2FjaGVFbnRyaWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YUZldGMKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0
YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25z
LCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRl
RGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
IHdlYnNpdGVEYXRhVHlwZXMsIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRj
aE9wdGlvbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgc3RydWN0IENhbGxiYWNrQWdn
cmVnYXRvciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPENhbGxiYWNrQWdncmVnYXRvcj4gewog
ICAgICAgICBleHBsaWNpdCBDYWxsYmFja0FnZ3JlZ2F0b3IoRnVuY3Rpb248dm9pZCAoV2Vic2l0
ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNDAyLDcgKzQwMiw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVX
ZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50
IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJz
aXRlRGF0YVR5cGU6OkhTVFNDYWNoZSkpIHsKQEAgLTQ2MCw3ICs0NjAsNyBAQCBzdGF0aWMgdm9p
ZCBjbGVhckRpc2tDYWNoZUVudHJpZXMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4m
IG9yaWdpbnMsIEZ1bgogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYg
b3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmln
aW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxs
YmFja0lEKQogewogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRh
VHlwZTo6Q29va2llcykpIHsKICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lv
biA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAg
LTQ3OSwxMiArNDc5LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8CiAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRSZXF1ZXN0KFNl
c3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQordm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRSZXF1ZXN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
RG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCiB7CiAgICAgZG93bmxvYWRNYW5hZ2VyKCku
c3RhcnREb3dubG9hZChudWxscHRyLCBzZXNzaW9uSUQsIGRvd25sb2FkSUQsIHJlcXVlc3QsIHN1
Z2dlc3RlZEZpbGVuYW1lKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVzdW1lRG93bmxv
YWQoU2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgV2Vi
S2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXN1bWVEb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1
bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFdlYktpdDo6U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogewogICAgIGRvd25sb2FkTWFuYWdl
cigpLnJlc3VtZURvd25sb2FkKHNlc3Npb25JRCwgZG93bmxvYWRJRCwgcmVzdW1lRGF0YSwgcGF0
aCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZGRmMWZhMjI0OTUuLmVkZTJiZjNlOTYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0z
MCw4ICszMCw4IEBACiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8bWVtb3J5
PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9y
eVByZXNzdXJlSGFuZGxlci5oPgpAQCAtNDIsMTMgKzQyLDE2IEBACiAjaW5jbHVkZSAiV2ViU1FM
aXRlRGF0YWJhc2VUcmFja2VyLmgiCiAjZW5kaWYKIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBT
ZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvd25sb2FkSUQ7CiBj
bGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CiBjbGFz
cyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKLWNsYXNzIFNlc3Npb25J
RDsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1Y3QgU291cE5ldHdvcmtQcm94eVNl
dHRpbmdzOwogfQpAQCAtMTcxLDE5ICsxNzQsMTkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluaXRp
YWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmKTsK
ICAgICB2b2lkIGNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CiAgICAgdm9p
ZCBhZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYpOwotICAg
IHZvaWQgZGVzdHJveVNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRlc3Ry
b3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShX
ZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNp
bmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgdWludDY0X3QgY2FsbGJhY2tJRCk7Cisg
ICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGlt
ZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRl
bGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBv
cmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKIAogICAgIHZvaWQgY2xlYXJDYWNoZWRDcmVkZW50aWFscygpOwogCiAgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSBzZXNzaW9uIElEIHNvIHdlIGNhbiBpZGVudGlm
eSB3aGljaCBkaXNrIGNhY2hlIHRvIGRlbGV0ZS4KICAgICB2b2lkIGNsZWFyRGlza0NhY2hlKHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rp
b248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAKLSAgICB2b2lkIGRvd25sb2FkUmVx
dWVzdChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpOwotICAgIHZvaWQg
cmVzdW1lRG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CisgICAgdm9pZCBkb3dubG9hZFJlcXVlc3QoUEFMOjpT
ZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpOworICAgIHZvaWQgcmVzdW1lRG93bmxvYWQo
UEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVz
dW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmKTsKICAgICB2b2lkIGNhbmNlbERvd25sb2FkKERvd25sb2FkSUQpOwogI2lmIFVTRShQUk9U
RUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRp
Y2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgYm9vbCBjYW5BdXRoZW50aWNhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMzZlNDc3Nzg5ZjIu
LjhkOWQyZjY4OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM3LDE0ICszNywxNCBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBFbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKQogICAgIEFkZFdlYnNpdGVEYXRhU3RvcmUoc3Ry
dWN0IFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgd2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMpOwotICAgIERlc3Ryb3lTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCisgICAgRGVzdHJveVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKIAotICAgIEZldGNo
V2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2ViS2l0OjpX
ZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
Ci0gICAgRGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCi0gICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0
ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucywg
VmVjdG9yPFN0cmluZz4gY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAg
IEZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJz
aXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisg
ICAgRGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisg
ICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucywgVmVjdG9yPFN0cmluZz4gY29va2ll
SG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogCi0gICAgRG93bmxvYWRSZXF1ZXN0KFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZEZpbGVu
YW1lKQotICAgIFJlc3VtZURvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdW1lRGF0
YSwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hF
eHRlbnNpb25IYW5kbGUpCisgICAgRG93bmxvYWRSZXF1ZXN0KFNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKQorICAgIFJlc3VtZURvd25sb2FkKFNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBJUEM6OkRh
dGFSZWZlcmVuY2UgcmVzdW1lRGF0YSwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgQ2FuY2VsRG93bmxvYWQo
V2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQpCiAKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFD
RV9BVVRIX0NBTExCQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4IDFjZmU3YThiZTNm
Li44YWY0MjFhMTEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAtMzQsNyArMzQsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRl
bnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCmluZGV4IDZlZDVmN2ZmMjE0Li5kYmU1MTljNDI3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
CkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2U7IH0KIAogICAgIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkgeyBy
ZXR1cm4gbV9jb25uZWN0aW9uOyB9Ci0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuc2Vzc2lvbklEOyB9
CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXI7IH0KICAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQ7IH0KICAgICB1aW50NjRfdCBwYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViUGFnZUlEOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDQ5ODAwNWVkMWM5
Li42Nzk0ZDAwZGZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNz
aW9uOjpjcmVhdGUoU2Vzc2lvbklEIHNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyKiBjdXN0b21Qcm90b2NvbE1hbmFnZXIpCitSZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtT
ZXNzaW9uOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXIqIGN1c3RvbVByb3RvY29sTWFuYWdlcikKIHsKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICByZXR1cm4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKHNlc3Npb25JRCwgY3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyKTsKQEAgLTYyLDcgKzYyLDcgQEAgTmV0d29ya1Nlc3Npb24mIE5l
dHdvcmtTZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbigpCiAgICAgcmV0dXJuIE5ldHdvcmtTZXNzaW9u
Q29jb2E6OmRlZmF1bHRTZXNzaW9uKCk7CiAjZWxzZQogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0gICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uID0gJk5ldHdvcmtTZXNz
aW9uOjpjcmVhdGUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpLmxlYWtSZWYoKTsKKyAg
ICBzdGF0aWMgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24gPSAmTmV0d29ya1Nlc3Npb246OmNyZWF0
ZShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKS5sZWFrUmVmKCk7CiAgICAgcmV0
dXJuICpzZXNzaW9uOwogI2VuZGlmCiB9CkBAIC03NCw3ICs3NCw3IEBAIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiAg
ICAgcmV0dXJuICpzdG9yYWdlU2Vzc2lvbjsKIH0KIAotTmV0d29ya1Nlc3Npb246Ok5ldHdvcmtT
ZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCitOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Np
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5o
CmluZGV4IGFjMjMwOTE0M2I3Li41YTNmZTZjZTMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgVVNF
KE5FVFdPUktfU0VTU0lPTikKIAotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAg
LTQzLDIzICs0MywyMyBAQCBjbGFzcyBOZXR3b3JrRGF0YVRhc2s7CiAKIGNsYXNzIE5ldHdvcmtT
ZXNzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Nlc3Npb24+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklELCBM
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIqID0gbnVsbHB0cik7CisgICAgc3RhdGljIFJlZjxO
ZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKFBBTDo6U2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXIqID0gbnVsbHB0cik7CiAgICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uJiBkZWZhdWx0
U2Vzc2lvbigpOwogICAgIHZpcnR1YWwgfk5ldHdvcmtTZXNzaW9uKCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckNyZWRl
bnRpYWxzKCkgeyB9OwogCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0OwogCiAgICAgdm9pZCByZWdp
c3Rlck5ldHdvcmtEYXRhVGFzayhOZXR3b3JrRGF0YVRhc2smIHRhc2spIHsgbV9kYXRhVGFza1Nl
dC5hZGQoJnRhc2spOyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKE5ldHdv
cmtEYXRhVGFzayYgdGFzaykgeyBtX2RhdGFUYXNrU2V0LnJlbW92ZSgmdGFzayk7IH0KIAogcHJv
dGVjdGVkOgotICAgIE5ldHdvcmtTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgTmV0
d29ya1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogCiAgICAgSGFzaFNl
dDxOZXR3b3JrRGF0YVRhc2sqPiBtX2RhdGFUYXNrU2V0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uY3BwCmluZGV4IDMzMTcw
ZGE4M2YyLi5jMTE2MDgzMWMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uY3BwCkBAIC0zNSwxMiArMzUsMTIgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8TmV0d29ya1Nv
Y2tldFN0cmVhbT4gTmV0d29ya1NvY2tldFN0cmVhbTo6Y3JlYXRlKFdlYkNvcmU6OlVSTCYmIHVy
bCwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFs
UGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSkKK1JlZjxOZXR3b3Jr
U29ja2V0U3RyZWFtPiBOZXR3b3JrU29ja2V0U3RyZWFtOjpjcmVhdGUoV2ViQ29yZTo6VVJMJiYg
dXJsLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBh
cnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEpCiB7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTmV0d29ya1NvY2tldFN0cmVhbShXVEZNb3ZlKHVybCksIHNlc3Npb25J
RCwgY3JlZGVudGlhbFBhcnRpdGlvbiwgaWRlbnRpZmllciwgY29ubmVjdGlvbiwgV1RGTW92ZShh
dWRpdERhdGEpKSk7CiB9CiAKLU5ldHdvcmtTb2NrZXRTdHJlYW06Ok5ldHdvcmtTb2NrZXRTdHJl
YW0oVVJMJiYgdXJsLCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRp
YWxQYXJ0aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhKQorTmV0d29ya1Nv
Y2tldFN0cmVhbTo6TmV0d29ya1NvY2tldFN0cmVhbShVUkwmJiB1cmwsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCB1aW50NjRfdCBp
ZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNvdXJjZUFwcGxpY2F0aW9u
QXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSkKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQog
ICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX2ltcGwoU29ja2V0U3RyZWFt
SGFuZGxlSW1wbDo6Y3JlYXRlKHVybCwgKnRoaXMsIHNlc3Npb25JRCwgY3JlZGVudGlhbFBhcnRp
dGlvbiwgV1RGTW92ZShhdWRpdERhdGEpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmgKaW5kZXggN2RjM2QwY2UzZTkuLmU0NjUwNzNi
YzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2Nr
ZXRTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2Nr
ZXRTdHJlYW0uaApAQCAtMjcsOSArMjcsOSBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaD4KKyNpbmNsdWRlIDxwYWwv
aWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0
aW9uOwpAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29y
a1NvY2tldFN0cmVhbSA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtTb2NrZXRTdHJlYW0+LCBw
dWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1
YmxpYyBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8TmV0d29ya1NvY2tldFN0cmVhbT4gY3JlYXRlKFdlYkNvcmU6OlVSTCYmLCBXZWJD
b3JlOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgdWludDY0
X3QsIElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tl
biYmKTsKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtTb2NrZXRTdHJlYW0+IGNyZWF0ZShXZWJDb3Jl
OjpVUkwmJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlv
biwgdWludDY0X3QsIElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNvdXJjZUFwcGxpY2F0aW9u
QXVkaXRUb2tlbiYmKTsKICAgICB+TmV0d29ya1NvY2tldFN0cmVhbSgpOwogCiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKQEAgLTY2
LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkgZmluYWw7CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQoKSBmaW5hbDsKIAotICAgIE5ldHdvcmtTb2NrZXRTdHJlYW0oV2ViQ29yZTo6VVJMJiYsIFdl
YkNvcmU6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCB1aW50
NjRfdCwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U291cmNlQXBwbGljYXRpb25BdWRpdFRv
a2VuJiYpOworICAgIE5ldHdvcmtTb2NrZXRTdHJlYW0oV2ViQ29yZTo6VVJMJiYsIFBBTDo6U2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90LCBJUEM6
OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CiAK
ICAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CiAgICAgSVBDOjpDb25uZWN0aW9uJiBtX2Nvbm5l
Y3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1JlbW90ZU5l
dHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1JlbW90ZU5l
dHdvcmtpbmdDb250ZXh0LmgKaW5kZXggYWIzZWZiYjQyMTcuLjJlNGU3Yzk1MjEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29u
dGV4dC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjZGVmaW5lIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzYsNyArMzYsNyBAQCBzdHJ1Y3QgV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKIGNsYXNzIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0IGZp
bmFsIDogcHVibGljIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KQorICAgIHN0YXRpYyBSZWY8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0KHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCkpOwogICAgIH0KQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsgfQog
CiBwcml2YXRlOgotICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCkKKyAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICAgICAg
OiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgICAgICwgbV9zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QpCiAgICAgewpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
IGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgYm9vbCBtX3Nob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAppbmRleCBlMzc1N2M5MTkxMC4u
OGQ2ZWQwNGYxMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTMy
LDcgKzMyLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3Jr
TG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9T
ZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCkBAIC01
Miw3ICs1Miw3IEBAIFNwZWN1bGF0aXZlTG9hZDo6U3BlY3VsYXRpdmVMb2FkKENhY2hlJiBjYWNo
ZSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgY29uCiAgICAgQVNTRVJUKCFtX2NhY2hl
RW50cnkgfHwgbV9jYWNoZUVudHJ5LT5uZWVkc1ZhbGlkYXRpb24oKSk7CiAKICAgICBOZXR3b3Jr
TG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IFNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0g
UEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBwYXJhbWV0ZXJzLmFsbG93
U3RvcmVkQ3JlZGVudGlhbHMgPSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwogICAgIHBhcmFtZXRl
cnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gRG9Ob3RTbmlmZkNvbnRlbnQ7CiAgICAgcGFyYW1l
dGVycy5yZXF1ZXN0ID0gbV9vcmlnaW5hbFJlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCmluZGV4IDM1
MTY0MTJjMDQ4Li40OTAwMWU2MDVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hIGZpbmFsIDog
cHVibGljIE5ldHdvcmtTZXNzaW9uIHsKICAgICBmcmllbmQgY2xhc3MgTmV0d29ya0RhdGFUYXNr
Q29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKFdl
YkNvcmU6OlNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKik7CisgICAgc3Rh
dGljIFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKFBBTDo6U2Vzc2lvbklELCBMZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXIqKTsKICAgICBzdGF0aWMgTmV0d29ya1Nlc3Npb24mIGRlZmF1bHRT
ZXNzaW9uKCk7CiAgICAgfk5ldHdvcmtTZXNzaW9uQ29jb2EoKTsKIApAQCAtNjQsNyArNjQsNyBA
QCBwdWJsaWM6CiAgICAgRG93bmxvYWRJRCB0YWtlRG93bmxvYWRJRChOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6VGFza0lkZW50aWZpZXIpOwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtTZXNzaW9uQ29j
b2EoV2ViQ29yZTo6U2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIqKTsKKyAg
ICBOZXR3b3JrU2Vzc2lvbkNvY29hKFBBTDo6U2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXIqKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIG92ZXJyaWRlOwog
ICAgIHZvaWQgY2xlYXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmlu
ZGV4IDBmODVkMDcwYWVjLi44NzU0ODIxNzM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNDU1
LDcgKzQ1NSw3IEBAIHN0YXRpYyBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIqIGxlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlcjsKIHN0YXRpYyBib29sIHNlc3Npb25zQ3JlYXRlZCA9IGZhbHNl
OwogI2VuZGlmCiAKLXN0YXRpYyBOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1cmF0
aW9uRm9yU2Vzc2lvbklEKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgc2Vzc2lvbikKK3N0YXRp
YyBOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKGNv
bnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uKQogewogICAgIGlmIChzZXNzaW9uLmlzRXBoZW1l
cmFsKCkpIHsKICAgICAgICAgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlv
biA9IFtOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uIGVwaGVtZXJhbFNlc3Npb25Db25maWd1cmF0
aW9uXTsKQEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnNldENU
RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB9CiAjZW5kaWYK
IAotUmVmPE5ldHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBjdXN0
b21Qcm90b2NvbE1hbmFnZXIpCitSZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9uQ29j
b2E6OmNyZWF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlciogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5ldHdvcmtTZXNzaW9uQ29jb2Eoc2Vzc2lvbklELCBjdXN0b21Qcm90b2NvbE1hbmFnZXIp
KTsKIH0KQEAgLTU0MSwxMSArNTQxLDExIEBAIFJlZjxOZXR3b3JrU2Vzc2lvbj4gTmV0d29ya1Nl
c3Npb25Db2NvYTo6Y3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIExlCiBOZXR3
b3JrU2Vzc2lvbiYgTmV0d29ya1Nlc3Npb25Db2NvYTo6ZGVmYXVsdFNlc3Npb24oKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uKiBz
ZXNzaW9uID0gJk5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSwgbGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKS5sZWFrUmVm
KCk7CisgICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uID0gJk5ldHdvcmtTZXNzaW9u
Q29jb2E6OmNyZWF0ZShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBsZWdhY3lD
dXN0b21Qcm90b2NvbE1hbmFnZXIpLmxlYWtSZWYoKTsKICAgICByZXR1cm4gKnNlc3Npb247CiB9
CiAKLU5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBjdXN0b21Qcm90
b2NvbE1hbmFnZXIpCitOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBjdXN0
b21Qcm90b2NvbE1hbmFnZXIpCiAgICAgOiBOZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpCiB7CiAg
ICAgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCmluZGV4IGY2YmFl
ZGFjMTcyLi5kYzY5Y2M2ZGYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1OZXR3b3Jr
U2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNzaW9uU291cChTZXNzaW9uSUQgc2Vzc2lvbklEKQorTmV0
d29ya1Nlc3Npb25Tb3VwOjpOZXR3b3JrU2Vzc2lvblNvdXAoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogICAgIDogTmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKQogewogICAgIG5ldHdvcmtTdG9y
YWdlU2Vzc2lvbigpLnNldENvb2tpZU9ic2VydmVySGFuZGxlcihbdGhpc10gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5o
CmluZGV4IGUwMTk2MDI5YTFhLi5mNThjZDgxMmUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaApAQCAtMzMsNyAr
MzMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Nlc3Npb25Tb3VwIGZp
bmFsIDogcHVibGljIE5ldHdvcmtTZXNzaW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5l
dHdvcmtTZXNzaW9uPiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBz
dGF0aWMgUmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Nlc3Npb25Tb3Vw
KHNlc3Npb25JRCkpOwogICAgIH0KQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIFNvdXBT
ZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtTZXNz
aW9uU291cChXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIE5ldHdvcmtTZXNzaW9uU291cChQQUw6
OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIGNsZWFyQ3JlZGVudGlhbHMoKSBvdmVycmlkZTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCBhNmE4NjM0N2Q4Ny4uYzgx
MDJhMDlmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAtMjgsNyAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNhbmRib3hJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2lu
Y2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTczLDggKzczLDggQEAgdm9pZCBDaGlsZFByb2Nlc3M6
OmluaXRpYWxpemUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWUKICAgICBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzIHNhbmRib3hQYXJhbWV0
ZXJzOwogICAgIGluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJz
KTsKIAotICAgIC8vIEluIFdlYktpdDIsIG9ubHkgdGhlIFVJIHByb2Nlc3Mgc2hvdWxkIGV2ZXIg
YmUgZ2VuZXJhdGluZyBub24tZGVmYXVsdCBTZXNzaW9uSURzLgotICAgIFdlYkNvcmU6OlNlc3Np
b25JRDo6ZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24oKTsKKyAgICAvLyBJbiBXZWJLaXQyLCBv
bmx5IHRoZSBVSSBwcm9jZXNzIHNob3VsZCBldmVyIGJlIGdlbmVyYXRpbmcgbm9uLWRlZmF1bHQg
UEFMOjpTZXNzaW9uSURzLgorICAgIFBBTDo6U2Vzc2lvbklEOjplbmFibGVHZW5lcmF0aW9uUHJv
dGVjdGlvbigpOwogCiAgICAgbV9jb25uZWN0aW9uID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVD
bGllbnRDb25uZWN0aW9uKHBhcmFtZXRlcnMuY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsK
ICAgICBtX2Nvbm5lY3Rpb24tPnNldERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJh
Y2soZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vz
c2lvblRyYWNrZXIuY3BwCmluZGV4IDQ4YWU4YTU2YWRkLi5kNzM4MzU3ZDdmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcApAQCAtNTYsMjkgKzU2LDI5IEBAIHZvaWQg
U2Vzc2lvblRyYWNrZXI6OnNldElkZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmll
cikKIH0KIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi1zdGF0aWMgSGFzaE1hcDxTZXNzaW9u
SUQsIFJlZlB0cjxOZXR3b3JrU2Vzc2lvbj4+JiBzdGF0aWNTZXNzaW9uTWFwKCkKK3N0YXRpYyBI
YXNoTWFwPFBBTDo6U2Vzc2lvbklELCBSZWZQdHI8TmV0d29ya1Nlc3Npb24+PiYgc3RhdGljU2Vz
c2lvbk1hcCgpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFNlc3Npb25JRCwgUmVmUHRyPE5ldHdvcmtTZXNzaW9u
Pj4+IG1hcDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxQQUw6OlNlc3Npb25J
RCwgUmVmUHRyPE5ldHdvcmtTZXNzaW9uPj4+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCi1O
ZXR3b3JrU2Vzc2lvbiogU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCitOZXR3b3JrU2Vzc2lvbiogU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBpZiAoc2Vzc2lvbklEID09IFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgIGlmIChzZXNzaW9uSUQgPT0gUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKICAgICAgICAgcmV0dXJuICZOZXR3b3JrU2Vzc2lv
bjo6ZGVmYXVsdFNlc3Npb24oKTsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1hcCgpLmdldChz
ZXNzaW9uSUQpOwogfQogCi12b2lkIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lvbj4mJiBzZXNzaW9uKQordm9pZCBTZXNzaW9u
VHJhY2tlcjo6c2V0U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFJlZjxOZXR3b3Jr
U2Vzc2lvbj4mJiBzZXNzaW9uKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gU2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChz
ZXNzaW9uSUQsIFdURk1vdmUoc2Vzc2lvbikpOwogfQogI2VuZGlmCiAKLXZvaWQgU2Vzc2lvblRy
YWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFNlc3Npb25U
cmFja2VyOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKaW5kZXggOWY3YTZjMDcwMDEuLmJmZTE1MDk3
YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKQEAgLTMwLDcgKzMwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOwogfQog
Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDYsMTAg
KzQ2LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRJZGVudGlmaWVyQmFzZShjb25z
dCBTdHJpbmcmKTsKICAgICAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIHN0YXRpYyB2
b2lkIHNldFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Npb24+JiYp
OwotICAgIHN0YXRpYyBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6U2Vz
c2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBSZWY8
TmV0d29ya1Nlc3Npb24+JiYpOworICAgIHN0YXRpYyBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nl
c3Npb24oUEFMOjpTZXNzaW9uSUQpOwogI2VuZGlmCi0gICAgc3RhdGljIHZvaWQgZGVzdHJveVNl
c3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95U2Vzc2lv
bihQQUw6OlNlc3Npb25JRCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBlMGYzNTM2NDExOS4uNDYxNzM3OGQ1N2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TdG9yYWdlL1N0b3JhZ2VQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNDMsNyArNDMs
NyBAQCBzdHJ1Y3QgU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6
OkRlY29kZXImLCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCi0gICAgV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7
CiAgICAgCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgU3RyaW5nIGluZGV4ZWRE
YXRhYmFzZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCmluZGV4IDk5YzM5NTRkYzk1Li4xNGE4MjNjYmIwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC02MSw3ICs2MSw2
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb25zdHJhaW50cy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJj
aFBvcHVwTWVudS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGlj
YXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltaW5nRnVuY3Rpb24uaD4KQEAgLTcwLDYgKzY5
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVy
ZXMuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAppbmRleCA5MjNhYjc5ZmJlZi4uMGMzOTAxYjI5MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00NCw2ICs0NCwxMCBAQCBj
bGFzcyBNb25vdG9uaWNUaW1lOwogY2xhc3MgU2Vjb25kczsKIH0KIAorbmFtZXNwYWNlIFBBTCB7
CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFmZmlu
ZVRyYW5zZm9ybTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwpAQCAtNzgsNyArODIs
NiBAQCBjbGFzcyBSZWdpb247CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFNlc3Npb25JRDsKIGNsYXNz
IFNwcmluZ1RpbWluZ0Z1bmN0aW9uOwogY2xhc3MgU3RlcHNUaW1pbmdGdW5jdGlvbjsKIGNsYXNz
IFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzNzYzYzg3NTg1Mi4uYzll
NTlhODRiNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTQxLDggKzQxLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUHJv
ZHVjZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2luYXRpb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFR5cGVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxw
YWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC04OCw3ICs4OCw3IEBAIHN0cnVjdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgdXNlckFnZW50OwogCiAgICAg
VmVjdG9yPEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlczsKLSAgICBXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAg
ICB1aW50NjRfdCBoaWdoZXN0VXNlZEJhY2tGb3J3YXJkSXRlbUlEOwogCiAgICAgdWludDY0X3Qg
dXNlckNvbnRlbnRDb250cm9sbGVySUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggOWMxMThmZDNiMWUuLmNmMjAyM2Qz
YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lv
bi5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZp
ZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0xNTMsNyAr
MTUzLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIEhhc2hN
YXA8U3RyaW5nLCBib29sPiBub3RpZmljYXRpb25QZXJtaXNzaW9uczsKICNlbmRpZgogCi0gICAg
SGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+IHBs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBI
YXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAg
ICAgVmVjdG9yPFN0cmluZz4gcGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKIAogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzLmgKaW5kZXggZTkyYzA3ZjJjMjcuLmU0MDFhOTYzYmFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgK
QEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+Cisj
aW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00Niw3ICs0Niw3IEBA
IHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyB7CiAgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYs
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJik7CiAKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBWZWN0b3I8dWlu
dDhfdD4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7CiAgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIGNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlOwogICAgIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCmluZGV4IDUyOTEyZmFkMzQ4Li4zNDI3NDhkZThj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGlt
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQpA
QCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJM
Lmg+CiAjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNTcsNyArNTcs
NyBAQCBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHdlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVz
dEhlYWRlckZpZWxkc0ZvclVSTChDRkhUVFBDbwogewogICAgIFN0cmluZyBjb29raWVzOwogICAg
IFVSTCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTDsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIGZpcnN0UGFydHlGb3JDb29raWVz
VVJMLCBpblJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OkNvb2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICBpZiAoIVdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5j
KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgZmlyc3RQ
YXJ0eUZvckNvb2tpZXNVUkwsIGluUmVxdWVzdFVSTCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTTo6UmVwbHkoY29va2llcyksIDApKQogICAg
ICAgICByZXR1cm4gMDsKIAogICAgIGlmIChjb29raWVzLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggMWZmN2JlODFhZTkuLmJkMDQ1MDEwNWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTQ1LDEyICs0NSwxMiBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRl
KFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1Jl
ZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3Jl
YXRlKFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudChjb25uZWN0
aW9uLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2Vzc2lvbklEKSk7CiB9CiAKLVdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KFN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KFN0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rp
b24pCiAgICAgLCBtX2lkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAg
LCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5o
CmluZGV4IGYzNDNlMTNkMWUwLi44ODMzODFkNWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIElEQkN1cnNvckluZm87CkBAIC01Miw3ICs1Miw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQgZmluYWwgOiBw
dWJsaWMgV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZSwg
cHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ+IGNyZWF0ZShTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHN0
YXRpYyBSZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiBjcmVhdGUoU3RvcmFnZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFM
OjpTZXNzaW9uSUQpOwogCiAgICAgdmlydHVhbCB+V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KCk7
CiAKQEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogcHJpdmF0ZToKLSAgICBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQoU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mLCB1aW50
NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAg
ICBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24m
LCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwog
CiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFsOwog
CkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8U3RvcmFnZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsK
LSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQg
bV9zZXNzaW9uSUQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlv
blRvQ2xpZW50PiBtX2Nvbm5lY3Rpb25Ub0NsaWVudDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKaW5kZXggMWNjN2E2YmQ0MGUuLjk5
NDZhNjhlZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQ
cm9jZXNzLmNwcApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCS2V5RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Tm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVGV4dEVuY29kaW5nLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXIKIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotSURCU2VydmVyOjpJREJTZXJ2
ZXImIFN0b3JhZ2VQcm9jZXNzOjppZGJTZXJ2ZXIoU2Vzc2lvbklEIHNlc3Npb25JRCkKK0lEQlNl
cnZlcjo6SURCU2VydmVyJiBTdG9yYWdlUHJvY2Vzczo6aWRiU2VydmVyKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1faWRiU2VydmVycy5hZGQoc2Vz
c2lvbklELCBudWxscHRyKTsKICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KSB7CkBAIC05
OCw4ICs5OCw4IEBAIElEQlNlcnZlcjo6SURCU2VydmVyJiBTdG9yYWdlUHJvY2Vzczo6aWRiU2Vy
dmVyKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgfQogCiAgICAgYXV0byBwYXRoID0gbV9pZGJE
YXRhYmFzZVBhdGhzLmdldChzZXNzaW9uSUQpOwotICAgIC8vIFRoZXJlIHNob3VsZCBhbHJlYWR5
IGJlIGEgcmVnaXN0ZXJlZCBwYXRoIGZvciB0aGlzIFNlc3Npb25JRC4KLSAgICAvLyBJZiB0aGVy
ZSdzIG5vdCwgdGhlbiB3aGVyZSBkaWQgdGhpcyBTZXNzaW9uSUQgY29tZSBmcm9tPworICAgIC8v
IFRoZXJlIHNob3VsZCBhbHJlYWR5IGJlIGEgcmVnaXN0ZXJlZCBwYXRoIGZvciB0aGlzIFBBTDo6
U2Vzc2lvbklELgorICAgIC8vIElmIHRoZXJlJ3Mgbm90LCB0aGVuIHdoZXJlIGRpZCB0aGlzIFBB
TDo6U2Vzc2lvbklEIGNvbWUgZnJvbT8KICAgICBBU1NFUlQoIXBhdGguaXNFbXB0eSgpKTsKIAog
ICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y3Jl
YXRlKHBhdGgsIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKSk7CkBAIC0xODEsNyArMTgxLDcg
QEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6Y3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24oKQogI2VuZGlmCiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEo
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmZldGNo
V2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhp
cywgY2FsbGJhY2tJRF0oY29uc3QgV2Vic2l0ZURhdGEmIHdlYnNpdGVEYXRhKSB7CkBAIC0yMDks
NyArMjA5LDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9u
SUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGEKICNlbmRpZgogfQogCi12b2lkIFN0
b3JhZ2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5j
ZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
ICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIGNhbGxiYWNrSURdKCkgewpAQCAt
MjI1LDcgKzIyNSw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXCiAjZW5kaWYKIH0KIAotdm9p
ZCBTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbkRh
dGFzLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3Jp
Z2luRGF0YT4mIHNlY3VyaXR5T3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9
IFt0aGlzLCBjYWxsYmFja0lEXSgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U3RvcmFnZVByb2Nlc3MuaAppbmRleCAzYmM3MmUyMDZhMi4uYjhjN2Y3NzY0NWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKQEAgLTI5LDggKzI5
LDggQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9J
REJCYWNraW5nU3RvcmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQlNlcnZlci5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VbmlxdWVJREJEYXRh
YmFzZS5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIApAQCAt
NTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgflN0b3JhZ2VQcm9jZXNzKCk7CiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlciYg
aWRiU2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXImIGlkYlNlcnZlcihQQUw6OlNlc3Npb25JRCk7CiAjZW5kaWYKIAogICAgIFdvcmtR
dWV1ZSYgcXVldWUoKSB7IHJldHVybiBtX3F1ZXVlLmdldCgpOyB9CkBAIC05Miw5ICs5Miw5IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShjb25zdCBTdG9y
YWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgY3JlYXRlU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJD
b3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlw
ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2Us
IHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0
ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9y
aWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQ
QUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6
OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
c3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQ
QUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAg
dm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYnMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBhdGhzLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYpOwogICAgIHZvaWQg
ZGlkR2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmKTsKQEAgLTExMyw4ICsxMTMsOCBAQCBwcml2
YXRlOgogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgU3RyaW5nPiBtX2lkYkRh
dGFiYXNlUGF0aHM7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIFJlZlB0cjxXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcj4+IG1faWRiU2VydmVyczsKKyAgICBIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBTdHJpbmc+IG1faWRiRGF0YWJhc2VQYXRoczsKKyAgICBIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBSZWZQdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI+PiBtX2lk
YlNlcnZlcnM7CiAjZW5kaWYKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFNhbmRib3hFeHRl
bnNpb24+PiBtX2Jsb2JUZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnM7CiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkIChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVB
cnJheSYmKT4+IG1fc2FuZGJveEV4dGVuc2lvbkZvckJsb2JzQ29tcGxldGlvbkhhbmRsZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3Mu
bWVzc2FnZXMuaW4KaW5kZXggNGJkZWM3M2U2NGYuLmI2Mjg2ZDRhNjc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMu
aW4KQEAgLTI3LDkgKzI3LDkgQEAgbWVzc2FnZXMgLT4gU3RvcmFnZVByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0
aCBhIFdlYlByb2Nlc3MKICAgICBDcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigp
CiAKLSAgICBGZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0
X3QgY2FsbGJhY2tJRCkKLSAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5j
ZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMo
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhPiBvcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIEZldGNoV2Vic2l0ZURhdGEo
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3
ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIERlbGV0ZVdlYnNpdGVE
YXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlw
ZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2lu
dCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIERlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJz
aXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGE+IG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAjaWYgRU5BQkxFKFNBTkRC
T1hfRVhURU5TSU9OUykKICAgICBHcmFudFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYnMoVmVjdG9y
PFN0cmluZz4gcGF0aHMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgZXh0
ZW5zaW9ucykKICAgICBEaWRHZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyh1aW50NjRf
dCByZXF1ZXN0SUQsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgZXh0ZW5z
aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNGFjYzI2NDA0NGYuLmRlOTE5
MTFlZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBA
IHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKQog
ICAgIHJldHVybiArK2lkZW50aWZpZXI7CiB9CiAKLXZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcihXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCit2b2lk
IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpCiB7CiAgICAgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0
ZUNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKTsKICAgICBMT0coSW5kZXhlZERCLCAiU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZl
ciAtICUiIFBSSXU2NCwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5oCmluZGV4IDEyZmZlOTVkODIyLi41YmU5ODMyY2YwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTksNyArNTksNyBAQCBwcml2YXRl
OgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgLy8gTWVzc2FnZXMgaGFuZGxl
cnMgKE1vZGVybiBJREIpCi0gICAgdm9pZCBlc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIo
V2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIp
OworICAgIHZvaWQgZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklE
LCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3Zl
SURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ+PiBtX3dlYklEQkNvbm5lY3Rpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KaW5kZXggNTg3NjEyMDIwNWUuLjZlODRkZGMyY2M0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3Nh
Z2VzIC0+IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAjIENyZWF0ZXMgYSBjb25uZWN0aW9uIGZv
ciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCi0gICAgRXN0YWJsaXNoSURCQ29ubmVj
dGlvblRvU2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICBFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIoU2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKQogICAgIFJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcih1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZjAzYTRlOWZh
NDAuLjJmZTNmYTZmYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTE1MCwxNyArMTUwLDE3IEBAIHZvaWQgUGFn
ZUNvbmZpZ3VyYXRpb246OnNldFdlYnNpdGVEYXRhU3RvcmUoQVBJOjpXZWJzaXRlRGF0YVN0b3Jl
KiB3ZWJzaXRlRGF0YVN0CiAgICAgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkKICAgICAgICAgbV9z
ZXNzaW9uSUQgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9u
SUQoKTsKICAgICBlbHNlCi0gICAgICAgIG1fc2Vzc2lvbklEID0gV2ViQ29yZTo6U2Vzc2lvbklE
KCk7CisgICAgICAgIG1fc2Vzc2lvbklEID0gUEFMOjpTZXNzaW9uSUQoKTsKIH0KIAotV2ViQ29y
ZTo6U2Vzc2lvbklEIFBhZ2VDb25maWd1cmF0aW9uOjpzZXNzaW9uSUQoKQorUEFMOjpTZXNzaW9u
SUQgUGFnZUNvbmZpZ3VyYXRpb246OnNlc3Npb25JRCgpCiB7Ci0gICAgQVNTRVJUKCFtX3dlYnNp
dGVEYXRhU3RvcmUgfHwgbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vz
c2lvbklEKCkgPT0gbV9zZXNzaW9uSUQgfHwgbV9zZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgIEFTU0VSVCghbV93ZWJzaXRlRGF0YVN0b3JlIHx8
IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpID09IG1f
c2Vzc2lvbklEIHx8IG1fc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKCkpOwogCiAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOwogfQogCi12b2lkIFBhZ2VD
b25maWd1cmF0aW9uOjpzZXRTZXNzaW9uSUQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
K3ZvaWQgUGFnZUNvbmZpZ3VyYXRpb246OnNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiB7CiAgICAgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGIyYWUy
NDcyZGUzLi4yM2MwMTFlNDRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgog
CkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdlYnNpdGVEYXRhU3RvcmUo
V2Vic2l0ZURhdGFTdG9yZSopOwogCiAgICAgLy8gRklYTUU6IE9uY2UgUGFnZUNvbmZpZ3VyYXRp
b25zICphbHdheXMqIGhhdmUgYSBkYXRhIHN0b3JlLCBnZXQgcmlkIG9mIHRoZSBzZXBhcmF0ZSBz
ZXNzaW9uSUQuCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpOwotICAgIHZvaWQg
c2V0U2Vzc2lvbklEKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCk7CisgICAgdm9pZCBzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQpOwogCiAgICAg
Ym9vbCB0cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZSgpIHsgcmV0dXJuIG1f
dHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmU7IH0KICAgICB2b2lkIHNldFRy
ZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlKGJvb2wgdHJlYXRzU0hBMVNpZ25l
ZENlcnRpZmljYXRlc0FzSW5zZWN1cmUpIHsgbV90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVz
QXNJbnNlY3VyZSA9IHRyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlOyB9IApA
QCAtMTE5LDcgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+
IG1fd2Vic2l0ZURhdGFTdG9yZTsKICAgICAvLyBGSVhNRTogV2UgY3VycmVudGx5IGhhdmUgdG8g
cGFzcyB0aGUgc2Vzc2lvbiBJRCBzZXBhcmF0ZWx5IGhlcmUgdG8gc3VwcG9ydCB0aGUgbGVnYWN5
IHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbi4KICAgICAvLyBPbmNlIHdlIGdldCByaWQgb2YgaXQg
d2Ugc2hvdWxkIGdldCByaWQgb2YgdGhpcyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBhcyB3ZWxs
LgotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKIAogICAgIGJvb2wgbV90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVz
QXNJbnNlY3VyZSA9IHRydWU7CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDBkYjVkZDky
YzU0Li41MGZhNjBiZWYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzUsNyArMzUsNyBAQCBSZWY8V2Vic2l0ZURh
dGFTdG9yZT4gV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpCiB7CiAgICAgV2Vi
S2l0OjpJbml0aWFsaXplV2ViS2l0MigpOwogCi0gICAgc3RhdGljIFdlYnNpdGVEYXRhU3RvcmUq
IGRlZmF1bHREYXRhU3RvcmUgPSBhZG9wdFJlZihuZXcgV2Vic2l0ZURhdGFTdG9yZShkZWZhdWx0
RGF0YVN0b3JlQ29uZmlndXJhdGlvbigpLCBXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSkpLmxlYWtSZWYoKTsKKyAgICBzdGF0aWMgV2Vic2l0ZURhdGFTdG9yZSogZGVmYXVs
dERhdGFTdG9yZSA9IGFkb3B0UmVmKG5ldyBXZWJzaXRlRGF0YVN0b3JlKGRlZmF1bHREYXRhU3Rv
cmVDb25maWd1cmF0aW9uKCksIFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpKS5s
ZWFrUmVmKCk7CiAKICAgICByZXR1cm4gKmRlZmF1bHREYXRhU3RvcmU7CiB9CkBAIC00Nyw3ICs0
Nyw3IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25Q
ZXJzaXN0ZW50RGF0YVN0b3JlKCkKIAogUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRh
U3RvcmU6OmNyZWF0ZUxlZ2FjeShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0
YVN0b3JlKFdURk1vdmUoY29uZmlndXJhdGlvbiksIFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vic2l0ZURhdGFTdG9y
ZShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKSk7CiB9CiAKIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoKQpAQCAtNTUs
NyArNTUsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKCkKIHsKIH0KIAot
V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKK1dlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICA6IG1fd2Vic2l0ZURhdGFTdG9yZShXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OmNyZWF0ZShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBzZXNzaW9uSUQpKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmgKaW5k
ZXggMjM4YzZjNGQ3YjQuLjQ0YjFkM2RlOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkFQSUhUVFBDb29raWVTdG9yZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlm
aWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgQVBJIHsKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vi
c2l0ZURhdGFTdG9yZT4gY3JlYXRlTm9uUGVyc2lzdGVudERhdGFTdG9yZSgpOwogICAgIHN0YXRp
YyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlTGVnYWN5KFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6Q29uZmlndXJhdGlvbik7CiAKLSAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklE
KTsKKyAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6Q29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfldlYnNpdGVE
YXRhU3RvcmUoKTsKIAogICAgIGJvb2wgaXNQZXJzaXN0ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAppbmRleCAxOTBmNTUxYzlh
YS4uYWE2MmYyNmM3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tDb29raWVNYW5hZ2VyLmNwcApAQCAtNDQsMTcgKzQ0LDE3IEBAIHZvaWQgV0tDb29raWVNYW5h
Z2VyU2V0Q2xpZW50KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBjb25zdCBX
S0Nvb2tpCiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIHZvaWQqIGNvbnRleHQsIFdLQ29va2ll
TWFuYWdlckdldENvb2tpZUhvc3RuYW1lc0Z1bmN0aW9uIGNhbGxiYWNrKQogewotICAgIHRvSW1w
bChjb29raWVNYW5hZ2VyUmVmKS0+Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV2ViQ29yZTo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29u
dGV4dCwgY2FsbGJhY2spKTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvR2Vu
ZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2spKTsKIH0KIAogdm9pZCBXS0Nv
b2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUoV0tDb29raWVNYW5hZ2VyUmVmIGNv
b2tpZU1hbmFnZXJSZWYsIFdLU3RyaW5nUmVmIGhvc3RuYW1lKQogewotICAgIHRvSW1wbChjb29r
aWVNYW5hZ2VyUmVmKS0+ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdlYkNvcmU6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0ltcGwoaG9zdG5hbWUpLT5zdHJpbmcoKSk7CisgICAg
dG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVDb29raWVzRm9ySG9zdG5hbWUoUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9JbXBsKGhvc3RuYW1lKS0+c3RyaW5nKCkp
OwogfQogCiB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDb29raWVNYW5h
Z2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYp
LT5kZWxldGVBbGxDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
KTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENvb2tpZXMoUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2Vy
RGVsZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyUmVmLCBkb3VibGUgZGF0ZSkKQEAgLTYyLDE3ICs2MiwxNyBAQCB2b2lkIFdLQ29v
a2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFn
ZXJSZWYgY29va2llTQogICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ6OmNocm9ubzsKIAogICAgIGF1
dG8gdGltZSA9IHN5c3RlbV9jbG9jazo6dGltZV9wb2ludChkdXJhdGlvbl9jYXN0PHN5c3RlbV9j
bG9jazo6ZHVyYXRpb24+KGR1cmF0aW9uPGRvdWJsZT4oZGF0ZSkpKTsKLSAgICB0b0ltcGwoY29v
a2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFdlYkNvcmU6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0aW1lLCBbXShDYWxsYmFja0Jhc2U6OkVycm9y
KXt9KTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENvb2tpZXNNb2Rp
ZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRpbWUsIFtdKENh
bGxiYWNrQmFzZTo6RXJyb3Ipe30pOwogfQogCiB2b2lkIFdLQ29va2llTWFuYWdlclNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLSFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIp
LT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW10oQ2FsbGJhY2tC
YXNlOjpFcnJvcil7fSk7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvSFRUUENv
b2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbXShDYWxsYmFja0Jhc2U6OkVycm9yKXt9KTsKIH0K
IAogdm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJH
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0gICAgdG9JbXBs
KGNvb2tpZU1hbmFnZXIpLT5nZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uPFdLSFRU
UENvb2tpZUFjY2VwdFBvbGljeSwgSFRUUENvb2tpZUFjY2VwdFBvbGljeT4oY29udGV4dCwgY2Fs
bGJhY2spKTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlciktPmdldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9HZW5lcmljQ2FsbGJh
Y2tGdW5jdGlvbjxXS0hUVFBDb29raWVBY2NlcHRQb2xpY3ksIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k+KGNvbnRleHQsIGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0Q29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIGJvb2wgZW5hYmxlZCkKQEAgLTgyLDEwICs4MiwxMCBAQCB2b2lkIFdLQ29va2llTWFu
YWdlclNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKFdLQ29va2llTWFuYWdlclJl
ZiBjb29raQogCiB2b2lkIFdLQ29va2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdl
cyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlcikKIHsKLSAgICB0b0ltcGwoY29va2ll
TWFuYWdlciktPnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdGFydE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7
CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFn
ZXIpLT5zdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSk7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdG9wT2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0K
aW5kZXggNGRkOGEwZDU1NGMuLjFmNTk3NGRmNTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtMjAwLDcgKzIwMCw3IEBA
IHN0YXRpYyBXZWJLaXQ6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0
UG9saWN5KE5TSFRUUENvb2tpZUFjY2VwCiAKIC0gKHZvaWQpX3NldENvb2tpZUFjY2VwdFBvbGlj
eTooTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeQogewotICAgIF9wcm9jZXNzUG9vbC0+
c3VwcGxlbWVudDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+c2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9I
VFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpF
cnJvcil7fSk7CisgICAgX3Byb2Nlc3NQb29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlclByb3h5PigpLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBb
XShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ipe30pOwogfQogCiAtIChpZClfb2JqZWN0Rm9y
QnVuZGxlUGFyYW1ldGVyOihOU1N0cmluZyAqKXBhcmFtZXRlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXgg
NDFiMThkMDYxMmMuLjhjMTIxMmJlNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTE5MCw3ICsxOTAs
NyBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURh
dGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgIGlmIChjb25maWd1cmF0aW9uLl9jb29r
aWVTdG9yYWdlRmlsZSkKICAgICAgICAgY29uZmlnLmNvb2tpZVN0b3JhZ2VGaWxlID0gY29uZmln
dXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUucGF0aDsKIAotICAgIEFQSTo6T2JqZWN0Ojpjb25z
dHJ1Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBjb25maWcsIFdlYkNv
cmU6OlNlc3Npb25JRDo6Z2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lvbklEKCkpOworICAgIEFQSTo6
T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBj
b25maWcsIFBBTDo6U2Vzc2lvbklEOjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKSk7CiAK
ICAgICByZXR1cm4gc2VsZjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggZDdlYWM4NGM3NTQuLjJl
ZjU0MmVkYTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUg
IldlYktpdFdlYnNpdGVEYXRhTWFuYWdlclByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJz
aXRlRGF0YVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVJlY29yZC5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nbGli
L1dURkdUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMTgwLDcgKzE4
MCw3IEBAIHZvaWQgd2Via2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9hY2NlcHRfcG9saWN5KFdlYktp
dENvb2tpZU1hbmFnZXIqIG1hbmFnZXIsIFdlYktpCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfQ09PS0lFX01BTkFHRVIobWFuYWdlcikpOwogCiAgICAgZm9yIChhdXRvKiBwcm9jZXNz
UG9vbCA6IHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlckdldFByb2Nlc3NQb29scyhtYW5hZ2VyLT5w
cml2LT5kYXRhTWFuYWdlcikpCi0gICAgICAgIHByb2Nlc3NQb29sLT5zdXBwbGVtZW50PFdlYkNv
b2tpZU1hbmFnZXJQcm94eT4oKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBv
bGljeSksIFtdKENhbGxiYWNrQmFzZTo6RXJyb3Ipe30pOworICAgICAgICBwcm9jZXNzUG9vbC0+
c3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPnNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9IVFRQQ29va2llQWNj
ZXB0UG9saWN5KHBvbGljeSksIFtdKENhbGxiYWNrQmFzZTo6RXJyb3Ipe30pOwogfQogCiAvKioK
QEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9nZXRfYWNjZXB0
X3BvbGljeShXZWJLaXRDb29raWVNYW5hZ2VyKiBtYW5hZ2VyLCBHQ2FuYwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgcHJvY2Vzc1Bvb2xzWzBdLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1h
bmFnZXJQcm94eT4oKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShIVFRQQ29va2ll
QWNjZXB0UG9saWN5IHBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcikgeworICAgIHByb2Nlc3NQ
b29sc1swXS0+c3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgW3Rhc2sg
PSBXVEZNb3ZlKHRhc2spXShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgQ2FsbGJhY2tC
YXNlOjpFcnJvcikgewogICAgICAgICBnX3Rhc2tfcmV0dXJuX2ludCh0YXNrLmdldCgpLCB0b1dl
YktpdENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IGNmMzk2ZjRiMTBmLi45MWJhOWEwNjYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMjIs
NyArMTIyLDcgQEAgRG93bmxvYWRQcm94eSogTmV0d29ya1Byb2Nlc3NQcm94eTo6Y3JlYXRlRG93
bmxvYWRQcm94eShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHIKICAgICByZXR1cm4gbV9kb3dubG9h
ZFByb3h5TWFwLT5jcmVhdGVEb3dubG9hZFByb3h5KG1fcHJvY2Vzc1Bvb2wsIHJlc291cmNlUmVx
dWVzdCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMs
IE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFdURjo6RnVu
Y3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFdlYnNp
dGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3Nh
Z2UoKSk7CiAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZl
dGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAogICAg
IHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGZXRjaFdlYnNpdGVEYXRhKHNlc3Npb25J
RCwgZGF0YVR5cGVzLCBmZXRjaE9wdGlvbnMsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hy
b25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlv
bjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGlt
ZV9wb2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7
CiAgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyB0YWtpbmcg
YSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZGVs
ZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb24KICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVsZXRl
V2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVkU2luY2UsIGNhbGxiYWNr
SUQpLCAwKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0
YUZvck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYg
b3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBj
b29raWVIb3N0TmFtZXMsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA5MjNk
ZDJhOTA4Ny4uNDBlZDZiMDhjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0zNSw2ICszNSwxMCBAQAogI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAorbmFtZXNwYWNlIFBBTCB7
CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwpAQCAtNDIsNyArNDYs
NiBAQCBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBlbnVtIGNsYXNzIFNob3VsZFNhbXBsZTsKIGNs
YXNzIFNlY3VyaXR5T3JpZ2luOwogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKLWNsYXNzIFNl
c3Npb25JRDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02NCw5ICs2Nyw5IEBAIHB1Ymxp
YzoKIAogICAgIERvd25sb2FkUHJveHkqIGNyZWF0ZURvd25sb2FkUHJveHkoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKLSAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29y
ZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhRmV0Y2hPcHRpb24+LCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiwg
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFG
ZXRjaE9wdGlvbj4sIFdURjo6RnVuY3Rpb248dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlv
bkhhbmRsZXIpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1l
X3BvaW50IG1vZGlmaWVkU2luY2UsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBjb29raWVIb3N0TmFtZXMsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgc2V0UHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAKaW5kZXggM2MwY2EyZDcyOWIu
LjIyMjVlMzMyNTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcApAQCAtNDIsOCArNDIsOCBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpQbHVnSW5BdXRvU3Rh
cnRQcm92aWRlcihXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgOiBtX3Byb2Nlc3NQ
b29sKHByb2Nlc3NQb29sKQogewotICAgIG1faGFzaFRvT3JpZ2luTWFwLmFkZChTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPigpKTsKLSAgICBt
X2F1dG9TdGFydFRhYmxlLmFkZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgQXV0b1N0
YXJ0VGFibGUoKSk7CisgICAgbV9oYXNoVG9PcmlnaW5NYXAuYWRkKFBBTDo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz4oKSk7CisgICAgbV9h
dXRvU3RhcnRUYWJsZS5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgQXV0
b1N0YXJ0VGFibGUoKSk7CiB9CiAKIHN0YXRpYyBkb3VibGUgZXhwaXJhdGlvblRpbWVGcm9tTm93
KCkKQEAgLTUxLDE0ICs1MSwxNCBAQCBzdGF0aWMgZG91YmxlIGV4cGlyYXRpb25UaW1lRnJvbU5v
dygpCiAgICAgcmV0dXJuIGN1cnJlbnRUaW1lKCkgKyBwbHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9u
VGltZVRocmVzaG9sZDsKIH0KIAotdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YWRkQXV0
b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJ
bk9yaWdpbkhhc2gsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFBsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyOjphZGRBdXRvU3RhcnRPcmlnaW5IYXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwg
dW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIGF1dG8gc2Vzc2lvbkl0ZXJhdG9yID0gbV9oYXNoVG9PcmlnaW5NYXAuZmluZChzZXNzaW9u
SUQpOwogICAgIGlmIChzZXNzaW9uSXRlcmF0b3IgPT0gbV9oYXNoVG9PcmlnaW5NYXAuZW5kKCkp
IHsKLSAgICAgICAgaWYgKG1faGFzaFRvT3JpZ2luTWFwLmdldChTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSkuY29udGFpbnMocGx1Z0luT3JpZ2luSGFzaCkpCisgICAgICAgIGlmIChtX2hh
c2hUb09yaWdpbk1hcC5nZXQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkuY29u
dGFpbnMocGx1Z0luT3JpZ2luSGFzaCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHNl
c3Npb25JdGVyYXRvciA9IG1faGFzaFRvT3JpZ2luTWFwLnNldChzZXNzaW9uSUQsIEhhc2hNYXA8
dW5zaWduZWQsIFN0cmluZz4oKSkuaXRlcmF0b3I7Ci0gICAgfSBlbHNlIGlmIChzZXNzaW9uSXRl
cmF0b3ItPnZhbHVlLmNvbnRhaW5zKHBsdWdJbk9yaWdpbkhhc2gpIHx8IG1faGFzaFRvT3JpZ2lu
TWFwLmdldChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkuY29udGFpbnMocGx1Z0luT3Jp
Z2luSGFzaCkpCisgICAgfSBlbHNlIGlmIChzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmNvbnRhaW5z
KHBsdWdJbk9yaWdpbkhhc2gpIHx8IG1faGFzaFRvT3JpZ2luTWFwLmdldChQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKS5jb250YWlucyhwbHVnSW5PcmlnaW5IYXNoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgQXV0b1N0YXJ0VGFibGU6Oml0ZXJhdG9yIGl0ID0gbV9hdXRvU3Rh
cnRUYWJsZS5hZGQoc2Vzc2lvbklELCBBdXRvU3RhcnRUYWJsZSgpKS5pdGVyYXRvci0+dmFsdWUu
YWRkKHBhZ2VPcmlnaW4sIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcCgpKS5pdGVyYXRvcjsKQEAg
LTkyLDcgKzkyLDcgQEAgUmVmPEFQSTo6RGljdGlvbmFyeT4gUGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXI6OmF1dG9TdGFydE9yaWdpbnNUYWJsZUNvcHkoKSBjb25zdAogICAgIEFQSTo6RGljdGlvbmFy
eTo6TWFwVHlwZSBtYXA7CiAKICAgICBkb3VibGUgbm93ID0gY3VycmVudFRpbWUoKTsKLSAgICBm
b3IgKGNvbnN0IGF1dG8mIHN0cmluZ09yaWdpbkhhc2ggOiBtX2F1dG9TdGFydFRhYmxlLmdldChT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHN0
cmluZ09yaWdpbkhhc2ggOiBtX2F1dG9TdGFydFRhYmxlLmdldChQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKSkgewogICAgICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgaGFz
aE1hcDsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBvcmlnaW5IYXNoIDogc3RyaW5nT3JpZ2lu
SGFzaC52YWx1ZSkgewogICAgICAgICAgICAgaWYgKG5vdyA8PSBvcmlnaW5IYXNoLnZhbHVlKQpA
QCAtMTI3LDggKzEyNyw4IEBAIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9T
dGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KEFQSTo6CiAgICAgbV9oYXNoVG9P
cmlnaW5NYXAuY2xlYXIoKTsKICAgICBtX2F1dG9TdGFydFRhYmxlLmNsZWFyKCk7CiAgICAgSGFz
aE1hcDx1bnNpZ25lZCwgZG91YmxlPiBoYXNoTWFwOwotICAgIEhhc2hNYXA8dW5zaWduZWQsIFN0
cmluZz4mIGhhc2hUb09yaWdpbk1hcCA9IG1faGFzaFRvT3JpZ2luTWFwLmFkZChTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPigpKS5pdGVyYXRv
ci0+dmFsdWU7Ci0gICAgQXV0b1N0YXJ0VGFibGUmIGFzdCA9IG1fYXV0b1N0YXJ0VGFibGUuYWRk
KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBBdXRvU3RhcnRUYWJsZSgpKS5pdGVyYXRv
ci0+dmFsdWU7CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPiYgaGFzaFRvT3JpZ2luTWFw
ID0gbV9oYXNoVG9PcmlnaW5NYXAuYWRkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCksIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz4oKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIEF1
dG9TdGFydFRhYmxlJiBhc3QgPSBtX2F1dG9TdGFydFRhYmxlLmFkZChQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpLCBBdXRvU3RhcnRUYWJsZSgpKS5pdGVyYXRvci0+dmFsdWU7CiAK
ICAgICBmb3IgKGF1dG8mIHN0ckRpY3QgOiB0YWJsZS5tYXAoKSkgewogICAgICAgICBQbHVnSW5B
dXRvU3RhcnRPcmlnaW5NYXAgaGFzaGVzOwpAQCAtMTY0LDkgKzE2NCw5IEBAIHZvaWQgUGx1Z0lu
QXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNBcnJheShBUEk6OkFycmF5JiBv
cmlnaW5MaXN0KQogICAgICAgICBtX2F1dG9TdGFydE9yaWdpbnMuYXBwZW5kKHN0cmluZy0+c3Ry
aW5nKCkpOwogfQogCi12b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNl
ckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFNlc3Npb25JRCBzZXNzaW9u
SUQpCit2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0
aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IHsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgU3Ry
aW5nPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25JdGVyYXRvciA9IG1faGFzaFRvT3JpZ2luTWFw
LmZpbmQoc2Vzc2lvbklEKTsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVu
c2lnbmVkLCBTdHJpbmc+Pjo6Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9oYXNo
VG9PcmlnaW5NYXAuZmluZChzZXNzaW9uSUQpOwogICAgIEhhc2hNYXA8dW5zaWduZWQsIFN0cmlu
Zz46OmNvbnN0X2l0ZXJhdG9yIGl0OwogICAgIGJvb2wgY29udGFpbnMgPSBmYWxzZTsKICAgICBp
ZiAoc2Vzc2lvbkl0ZXJhdG9yICE9IG1faGFzaFRvT3JpZ2luTWFwLmVuZCgpKSB7CkBAIC0xNzQs
NyArMTc0LDcgQEAgdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6ZGlkUmVjZWl2ZVVzZXJJ
bnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXMKICAgICAgICAgY29udGFpbnMgPSBp
dCAhPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmVuZCgpOwogICAgIH0KICAgICBpZiAoIWNvbnRh
aW5zKSB7Ci0gICAgICAgIHNlc3Npb25JdGVyYXRvciA9IG1faGFzaFRvT3JpZ2luTWFwLmZpbmQo
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgICAgICBzZXNzaW9uSXRlcmF0b3Ig
PSBtX2hhc2hUb09yaWdpbk1hcC5maW5kKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpOwogICAgICAgICBpdCA9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZmluZChwbHVnSW5Pcmln
aW5IYXNoKTsKICAgICAgICAgaWYgKGl0ID09IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCkp
IHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCmlu
ZGV4IGNhMWIwMDQwOTI3Li40NGI4NGY3ZjQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaApAQCAtMjYs
NyArMjYsNyBAQAogI2lmbmRlZiBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcl9oCiAjZGVmaW5lIFBs
dWdJbkF1dG9TdGFydFByb3ZpZGVyX2gKIAotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBy
b2Nlc3NQb29sOwogCiB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4gUGx1Z0luQXV0
b1N0YXJ0T3JpZ2luTWFwOwotdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgUGx1
Z0luQXV0b1N0YXJ0T3JpZ2luTWFwPiBTZXNzaW9uUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwOwor
dHlwZWRlZiBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA+
IFNlc3Npb25QbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA7CiB0eXBlZGVmIFZlY3RvcjxTdHJpbmc+
IFBsdWdJbkF1dG9TdGFydE9yaWdpbnM7CiAKIGNsYXNzIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVy
IHsKQEAgLTUyLDggKzUyLDggQEAgY2xhc3MgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyKFdlYlByb2Nlc3NQb29s
Kik7CiAKLSAgICB2b2lkIGFkZEF1dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdl
T3JpZ2luLCB1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQpOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5PcmlnaW5I
YXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgYWRkQXV0b1N0YXJ0T3JpZ2luSGFz
aChjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBB
TDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odW5zaWdu
ZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVmPEFQSTo6RGlj
dGlvbmFyeT4gYXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0OwogICAgIHZvaWQgc2V0
QXV0b1N0YXJ0T3JpZ2luc1RhYmxlKEFQSTo6RGljdGlvbmFyeSYpOwpAQCAtNjksMTAgKzY5LDEw
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQ
YXNzaW5nVGVzdChBUEk6OkRpY3Rpb25hcnkmLCBXVEY6OkZ1bmN0aW9uPGJvb2woZG91YmxlIGV4
cGlyYXRpb25UaW1lc3RhbXApPiYmKTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFBs
dWdJbkF1dG9TdGFydE9yaWdpbk1hcCwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBBdXRvU3Rh
cnRUYWJsZTsKLSAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBBdXRvU3Rh
cnRUYWJsZT4gU2Vzc2lvbkF1dG9TdGFydFRhYmxlOworICAgIHR5cGVkZWYgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgQXV0b1N0YXJ0VGFibGU+IFNlc3Npb25BdXRvU3RhcnRUYWJsZTsKICAgICBT
ZXNzaW9uQXV0b1N0YXJ0VGFibGUgbV9hdXRvU3RhcnRUYWJsZTsKIAotICAgIEhhc2hNYXA8V2Vi
Q29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+PiBtX2hhc2hUb09yaWdp
bk1hcDsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJp
bmc+PiBtX2hhc2hUb09yaWdpbk1hcDsKIAogICAgIFBsdWdJbkF1dG9TdGFydE9yaWdpbnMgbV9h
dXRvU3RhcnRPcmlnaW5zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwCmluZGV4IDIwZDIwZTBlZTNjLi5hNWFh
ODExOGMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9y
YWdlUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdl
L1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgU3RvcmFnZVBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlCiAgICAgfQogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmZldGNoV2Vi
c2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4g
ZGF0YVR5cGVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBl
cywgV1RGOjpGdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkpOwogCkBAIC05Myw3ICs5Myw3IEBAIHZv
aWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0CiAgICAgc2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6
OkZldGNoV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIGNhbGxiYWNrSUQpLCAwKTsK
IH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlw
ZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwg
V1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTdG9yYWdl
UHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gZ2VuZXJhdGVD
YWxsYmFja0lEKCk7CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJv
eHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
bgogICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEZWxldGVXZWJzaXRlRGF0YShz
ZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJhY2tJRCksIDApOwogfQog
Ci12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgU3RvcmFnZVByb2Nl
c3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NQcm94eS5oCmluZGV4IDVjMTEwNmQzNjhiLi5jMmQyZWJhNjA5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmgK
QEAgLTMxLDkgKzMxLDEyIEBACiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2Vzc2lvbklE
Owogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIH0KIApAQCAtNDgsOSArNTEsOSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxTdG9yYWdlUHJvY2Vzc1Byb3h5PiBjcmVhdGUoV2ViUHJvY2Vz
c1Bvb2wqKTsKICAgICB+U3RvcmFnZVByb2Nlc3NQcm94eSgpOwogCi0gICAgdm9pZCBmZXRjaFdl
YnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IFdURjo6RnVuY3Rpb248dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwot
ICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBt
b2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7
Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YT4mLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cik7CisgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgV1RGOjpGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4mJiBjb21w
bGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6
OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcik7CiAKICAgICB2b2lkIGdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHk+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5LmNwcAppbmRleCAzZjY3ODk2OGM2NS4uZTY1YzRmYzkzNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcApA
QCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZXJlZldlYkNv
bnRleHRTdXBwbGVtZW50KCkKICAgICBBUEk6Ok9iamVjdDo6ZGVyZWYoKTsKIH0KIAotdm9pZCBX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFNlc3Npb25JRCBz
ZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhv
c3RuYW1lc1dpdGhDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRnVuY3Rpb248dm9p
ZCAoQVBJOjpBcnJheSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24p
CiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJh
Y2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNz
UmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0SG9z
dG5hbWVzV2l0aENvb2tpZXMoc2Vzc2lvbklELCBjYWxsYmFja0lEKSk7CkBAIC0xMjQsNDcgKzEy
NCw0NyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkR2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGhvcwogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2Fs
bGJhY2tXaXRoUmV0dXJuVmFsdWUoQVBJOjpBcnJheTo6Y3JlYXRlU3RyaW5nQXJyYXkoaG9zdG5h
bWVzKS5wdHIoKSk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVDb29r
aWVzRm9ySG9zdG5hbWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBob3N0bmFt
ZSkKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogewogICAg
IHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vz
c2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
KHNlc3Npb25JRCwgaG9zdG5hbWUpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6
OmRlbGV0ZUFsbENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5OjpkZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsK
ICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZO
ZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXMoc2Vz
c2lvbklEKSk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVDb29raWUo
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIEZ1bmN0aW9uPHZvaWQg
KENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgQ29va2llJiBjb29raWUsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
IGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3Mu
cHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29sKCktPnNlbmRU
b05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29v
a2llTWFuYWdlcjo6RGVsZXRlQ29va2llKHNlc3Npb25JRCwgY29va2llLCBjYWxsYmFja0lEKSk7
CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVBbGxDb29raWVzTW9kaWZp
ZWRTaW5jZShTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IHRpbWUsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29v
a2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6
c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IHRpbWUsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0g
bV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQ
b29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNz
YWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2Uoc2Vz
c2lvbklELCB0aW1lLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclBy
b3h5OjpzZXRDb29raWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUs
IEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24p
Cit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0g
bV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQ
b29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNz
YWdlczo6V2ViQ29va2llTWFuYWdlcjo6U2V0Q29va2llKHNlc3Npb25JRCwgY29va2llLCBjYWxs
YmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWVzKFNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxDb29raWU+JiBjb29raWVzLCBjb25zdCBV
UkwmIHVybCwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwsIEZ1bmN0aW9uPHZvaWQgKENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6c2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3Rv
cjxDb29raWU+JiBjb29raWVzLCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBtYWluRG9jdW1l
bnRVUkwsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVu
Y3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUo
Y2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQ
cm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6
U2V0Q29va2llcyhzZXNzaW9uSUQsIGNvb2tpZXMsIHVybCwgbWFpbkRvY3VtZW50VVJMLCBjYWxs
YmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRBbGxDb29raWVz
KFNlc3Npb25JRCBzZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxDb29raWU+
JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPENvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJh
Y2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBwcm9jZXNzUG9vbCgpLT5z
ZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6Oldl
YkNvb2tpZU1hbmFnZXI6OkdldEFsbENvb2tpZXMoc2Vzc2lvbklELCBjYWxsYmFja0lEKSk7CiB9
CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRDb29raWVzKFNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8Q29va2ll
PiYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNv
b2tpZU1hbmFnZXJQcm94eTo6Z2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFVSTCYgdXJsLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8Q29va2llPiYsIENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFj
a0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHBy
b2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2Fy
eShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0Q29va2llcyhzZXNzaW9uSUQsIHVybCwg
Y2FsbGJhY2tJRCkpOwpAQCAtMTg1LDE4ICsxODUsMTggQEAgdm9pZCBXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OmRpZERlbGV0ZUNvb2tpZXMoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAg
ICAgbV9jYWxsYmFja3MudGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpLT5wZXJmb3JtQ2Fs
bGJhY2soKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiB7CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5j
aGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdGFydE9ic2Vydmlu
Z0Nvb2tpZUNoYW5nZXMoc2Vzc2lvbklEKSk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclBy
b3h5OjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9p
ZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3Jr
aW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFn
ZXI6OlN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKHNlc3Npb25JRCkpOwogfQogCiAKLXZvaWQg
V2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBjYWxsYmFjaykK
K3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIGNhbGxiYWNr
KQogewogICAgIGlmIChjYWxsYmFjaykKICAgICAgICAgbV9sZWdhY3lDb29raWVPYnNlcnZlcnMu
c2V0KHNlc3Npb25JRCwgV1RGTW92ZShjYWxsYmFjaykpOwpAQCAtMjA0LDcgKzIwNCw3IEBAIHZv
aWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uCiAgICAgICAgIG1fbGVnYWN5Q29va2llT2JzZXJ2ZXJzLnJl
bW92ZShzZXNzaW9uSUQpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6cmVnaXN0
ZXJPYnNlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnNlcnZlciYgb2JzZXJ2
ZXIpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6cmVnaXN0ZXJPYnNlcnZlcihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9ic2VydmVyJiBvYnNlcnZlcikKIHsKICAgICBhdXRvIHJlc3Vs
dCA9IG1fY29va2llT2JzZXJ2ZXJzLnNldChzZXNzaW9uSUQsIEhhc2hTZXQ8T2JzZXJ2ZXIqPigp
KTsKICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFkZCgmb2JzZXJ2ZXIpOwpAQCAtMjEzLDcg
KzIxMyw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpyZWdpc3Rlck9ic2VydmVyKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9ic2VyCiAgICAgICAgIHN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhzZXNzaW9uSUQpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6dW5yZWdpc3Rlck9ic2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9ic2Vy
dmVyJiBvYnNlcnZlcikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojp1bnJlZ2lzdGVyT2Jz
ZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CiAg
ICAgYXV0byBpdGVyYXRvciA9IG1fY29va2llT2JzZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKICAg
ICBpZiAoaXRlcmF0b3IgPT0gbV9jb29raWVPYnNlcnZlcnMuZW5kKCkpCkBAIC0yMjcsNyArMjI3
LDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnVucmVnaXN0ZXJPYnNlcnZlcihXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnMKICAgICBzdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyhzZXNzaW9uSUQpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Y29va2ll
c0RpZENoYW5nZShTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OmNvb2tpZXNEaWRDaGFuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIG1f
Y2xpZW50LmNvb2tpZXNEaWRDaGFuZ2UodGhpcyk7CiAgICAgYXV0byBsZWdhY3lJdGVyYXRvciA9
IG1fbGVnYWN5Q29va2llT2JzZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKQEAgLTI0Miw3ICsyNDIs
NyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Y29va2llc0RpZENoYW5nZShTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgICAgICBvYnNlcnZlci0+Y29va2llc0RpZENoYW5nZSgpOwogfQog
Ci12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShT
ZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBGdW5jdGlvbjx2b2lkIChD
YWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJDb29raWVN
YW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhU
VFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6
OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IGlmICghcHJvY2Vzc1Bvb2woKS0+aXNVc2luZ1Rlc3RpbmdOZXR3b3JrU2Vzc2lvbigpKQpAQCAt
MjYxLDcgKzI2MSw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwCiAgICAgcHJvY2Vzc1Bvb2wo
KS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5LCBPcHRpb25hbENhbGxiYWNrSUQoY2FsbGJh
Y2tJRCkpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3koU2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkIChIVFRQQ29va2llQWNjZXB0UG9s
aWN5LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9u
SUQsIEZ1bmN0aW9uPHZvaWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9j
YWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29s
KCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdl
czo6V2ViQ29va2llTWFuYWdlcjo6R2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjYWxsYmFja0lE
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
CmluZGV4IDM3ZjI2Mzc3ZGQ1Li43M2RjNGY0Nzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5o
IgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudC5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAt
NjQsMjcgKzY0LDI3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUNsaWVudChjb25z
dCBXS0Nvb2tpZU1hbmFnZXJDbGllbnRCYXNlKik7CiAgICAgCi0gICAgdm9pZCBnZXRIb3N0bmFt
ZXNXaXRoQ29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJy
YXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWUoV2Vi
Q29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBGdW5jdGlvbjx2b2lkIChD
YWxsYmFja0Jhc2U6OkVycm9yKT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5h
bWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKLSAgICB2b2lk
IGRlbGV0ZUFsbENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIGRlbGV0ZUFs
bENvb2tpZXNNb2RpZmllZFNpbmNlKFdlYkNvcmU6OlNlc3Npb25JRCwgc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6dGltZV9wb2ludCwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYpOworICAgIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUEFMOjpTZXNzaW9uSUQs
IEZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7Cisg
ICAgdm9pZCBkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tp
ZSYsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBob3N0
bmFtZSk7CisgICAgdm9pZCBkZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2
b2lkIGRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklELCBzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJik7CiAKLSAgICB2b2lkIHNldENvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJy
b3IpPiYmKTsKLSAgICB2b2lkIHNldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgbWFpbkRvY3VtZW50VVJMLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJik7CisgICAgdm9pZCBzZXRDb29raWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNv
cmU6OkNvb2tpZSYsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAg
ICB2b2lkIHNldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBtYWluRG9j
dW1lbnRVUkwsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKIAotICAg
IHZvaWQgZ2V0QWxsQ29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY29t
cGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZ2V0Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwor
ICAgIHZvaWQgZ2V0QWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjb21w
bGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29v
a2llPiYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKIAotICAg
IHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpTZXNzaW9uSUQsIEhUVFBD
b29raWVBY2NlcHRQb2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
KTsKLSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6U2Vzc2lvbklE
LCBGdW5jdGlvbjx2b2lkIChIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJik7CisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lv
bklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6
OkVycm9yKT4mJik7CisgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vz
c2lvbklELCBGdW5jdGlvbjx2b2lkIChIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJik7CiAKICAgICB2b2lkIHNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdF
bmFibGVkKGJvb2wpOwogCi0gICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV2Vi
Q29yZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdl
YkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
UEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFM
OjpTZXNzaW9uSUQpOwogCi0gICAgdm9pZCBzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKFdlYkNv
cmU6OlNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmKTsKKyAgICB2b2lkIHNldENv
b2tpZU9ic2VydmVyQ2FsbGJhY2soUEFMOjpTZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248dm9pZCAo
KT4mJik7CiAKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtOTMsOCArOTMs
OCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBtYW5hZ2VyRGVzdHJveWVkKCkgPSAw
OwogICAgIH07CiAKLSAgICB2b2lkIHJlZ2lzdGVyT2JzZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklE
LCBPYnNlcnZlciYpOwotICAgIHZvaWQgdW5yZWdpc3Rlck9ic2VydmVyKFdlYkNvcmU6OlNlc3Np
b25JRCwgT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9u
SUQsIE9ic2VydmVyJik7CisgICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9u
SUQsIE9ic2VydmVyJik7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldENvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlKGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIHVpbnQzMl90IHN0b3JhZ2VU
eXBlKTsKQEAgLTExNSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkR2V0Q29va2ll
cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAg
ICAgdm9pZCBkaWREZWxldGVDb29raWVzKFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAKLSAgICB2b2lk
IGNvb2tpZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGNvb2tpZXNE
aWRDaGFuZ2UoUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQK
ICAgICB2b2lkIHByb2Nlc3NQb29sRGVzdHJveWVkKCkgb3ZlcnJpZGU7CkBAIC0xMzMsOCArMTMz
LDggQEAgcHJpdmF0ZToKIAogICAgIENhbGxiYWNrTWFwIG1fY2FsbGJhY2tzOwogCi0gICAgSGFz
aE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4+IG1fbGVnYWN5
Q29va2llT2JzZXJ2ZXJzOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoU2V0
PE9ic2VydmVyKj4+IG1fY29va2llT2JzZXJ2ZXJzOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9u
SUQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4+IG1fbGVnYWN5Q29va2llT2JzZXJ2ZXJzOworICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hTZXQ8T2JzZXJ2ZXIqPj4gbV9jb29raWVPYnNl
cnZlcnM7CiAKICAgICBXZWJDb29raWVNYW5hZ2VyUHJveHlDbGllbnQgbV9jbGllbnQ7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgppbmRleCBhNWQ3N2I5NjI5OS4uNDIyNTU2ODI2NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTI5LDUgKzI5LDUgQEAgbWVzc2FnZXMgLT4gV2ViQ29va2llTWFuYWdlclBy
b3h5IHsKICAgICBEaWRTZXRDb29raWVzKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKTsK
ICAgICBEaWRHZXRDb29raWVzKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMsIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKTsKIAotICAgIENvb2tpZXNEaWRDaGFuZ2UoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBDb29raWVzRGlkQ2hhbmdlKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDY0
NGVkNzVjNDgzLi4wOWY0OTY4ZWRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTI5NSw3ICsyOTUsNyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgcGFnZUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KIAogICAgIC8vIEZJWE1FOiBEb24ndCBrZWVwIGEg
c2VwYXJhdGUgc2Vzc2lvbklEIC0gUmVseSBvbiB0aGUgV2Vic2l0ZURhdGFTdG9yZQotICAgIFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsg
fQorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lv
bklEOyB9CiAKICAgICBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X21haW5GcmFtZS5nZXQoKTsgfQogICAgIFdlYkZyYW1lUHJveHkqIGZvY3VzZWRGcmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1lLmdldCgpOyB9CkBAIC0xODQ3LDcgKzE4NDcsNyBA
QCBwcml2YXRlOgogICAgIGNvbnN0IHVpbnQ2NF90IG1fcGFnZUlEOwogCiAgICAgLy8gRklYTUU6
IERvbid0IGtlZXAgYSBzZXBhcmF0ZSBzZXNzaW9uSUQgLSBSZWx5IG9uIHRoZSBXZWJzaXRlRGF0
YVN0b3JlCi0gICAgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIGNv
bnN0IFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogCiAgICAgYm9vbCBtX2lzUGFnZVN1c3Bl
bmRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2FkZHNWaXNpdGVkTGlua3MgeyB0cnVlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggNDY1MWM5MjRi
MjcuLjEzNGMzNDg1MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCkBAIC03Niw4ICs3Niw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9VUkxQYXJzZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtNTg0LDE1ICs1
ODQsMTUgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGUKIHsKICAgICBpZiAobmV0d29ya1Byb2Nl
c3MoKSkgewogICAgICAgICBpZiAocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgICAg
IG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKHtTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSwgeyB9LCB7IH0sIHsgfX0pLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KHtQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCB7IH0sIHsgfSwgeyB9
fSksIDApOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSwgMCk7CiAgICAgfQogCiAgICAgaWYgKHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdl
czo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOworICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwogICAgIGVsc2UKLSAgICAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOworICAgICAgICBzZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKIH0KIAogdm9pZCAoKnNfaW52YWxpZE1lc3Nh
Z2VDYWxsYmFjaykoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUpOwpAQCAtNzc0LDcgKzc3NCw3IEBA
IFdlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vi
c2l0ZURhdGFTdG9yZSYgd2Vic2l0ZURhCiAjZW5kaWYKIAogICAgIGlmIChXZWJQcmVmZXJlbmNl
czo6YW55UGFnZXNBcmVVc2luZ1ByaXZhdGVCcm93c2luZygpKQotICAgICAgICBwcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNl
c3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSwgMCk7CisgICAgICAgIHByb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
UEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSksIDApOwogCiAgICAgaWYg
KG1fYXV0b21hdGlvblNlc3Npb24pCiAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkVuc3VyZUF1dG9tYXRpb25TZXNzaW9uUHJveHkobV9hdXRvbWF0aW9uU2Vzc2lv
bi0+c2Vzc2lvbklkZW50aWZpZXIoKSksIDApOwpAQCAtOTI2LDcgKzkyNiw3IEBAIFJlZjxXZWJQ
YWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VD
bGllbnQsIFJlZjxBUEk6CiAgICAgaWYgKCFwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFT
dG9yZSgpKSB7CiAgICAgICAgIEFTU0VSVCghcGFnZUNvbmZpZ3VyYXRpb24tPnNlc3Npb25JRCgp
LmlzVmFsaWQoKSk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRXZWJzaXRlRGF0YVN0
b3JlKG1fd2Vic2l0ZURhdGFTdG9yZS5wdHIoKSk7Ci0gICAgICAgIHBhZ2VDb25maWd1cmF0aW9u
LT5zZXRTZXNzaW9uSUQocGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnByaXZhdGVC
cm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIDog
bV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkpOworICAg
ICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0U2Vzc2lvbklEKHBhZ2VDb25maWd1cmF0aW9uLT5w
cmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgPyBQQUw6OlNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIDogbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0
YVN0b3JlKCkuc2Vzc2lvbklEKCkpOwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJv
eHk+IHByb2Nlc3M7CkBAIC05NTQsNyArOTU0LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGFn
ZUFkZGVkVG9Qcm9jZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSkKICAgICAgICAgQVNTRVJUKHBhZ2Uu
d2Vic2l0ZURhdGFTdG9yZSgpLnBhcmFtZXRlcnMoKS5zZXNzaW9uSUQgPT0gc2Vzc2lvbklEKTsK
ICAgICAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLnBh
cmFtZXRlcnMoKSkpOwogICAgICAgICBwYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHNlc3Npb25JRCksIDApOwotICAg
IH0gZWxzZSBpZiAoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7
CisgICAgfSBlbHNlIGlmIChzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSkgewogICAgICAgICBzZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUocGFnZS53ZWJzaXRlRGF0YVN0b3JlKCku
cGFyYW1ldGVycygpKSk7CiAgICAgICAgIHBhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUocGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkucGFy
YW1ldGVycygpKSwgMCk7CiAKQEAgLTk3OCwxMCArOTc4LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBhZ2VSZW1vdmVkRnJvbVByb2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdlKQogICAgIGlmIChp
dGVyYXRvci0+dmFsdWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fc2Vzc2lvblRvUGFnZXNNYXAu
cmVtb3ZlKGl0ZXJhdG9yKTsKIAotICAgICAgICBpZiAoc2Vzc2lvbklEID09IFNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgICAgICBpZiAoc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
Ly8gVGhlIGxhc3QgdXNlciBvZiB0aGlzIG5vbi1kZWZhdWx0IFNlc3Npb25JRCBpcyBnb25lLCBz
byBjbGVhbiBpdCB1cCBpbiB0aGUgY2hpbGQgcHJvY2Vzc2VzLgorICAgICAgICAvLyBUaGUgbGFz
dCB1c2VyIG9mIHRoaXMgbm9uLWRlZmF1bHQgUEFMOjpTZXNzaW9uSUQgaXMgZ29uZSwgc28gY2xl
YW4gaXQgdXAgaW4gdGhlIGNoaWxkIHByb2Nlc3Nlcy4KICAgICAgICAgaWYgKG5ldHdvcmtQcm9j
ZXNzKCkpCiAgICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oc2Vzc2lvbklEKSwgMCk7CiAgICAgICAgIHBhZ2Uu
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKHNlc3Np
b25JRCksIDApOwpAQCAtOTkxLDcgKzk5MSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBhZ2VS
ZW1vdmVkRnJvbVByb2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdlKQogRG93bmxvYWRQcm94eSogV2Vi
UHJvY2Vzc1Bvb2w6OmRvd25sb2FkKFdlYlBhZ2VQcm94eSogaW5pdGlhdGluZ1BhZ2UsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFt
ZSkKIHsKICAgICBEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5ID0gY3JlYXRlRG93bmxvYWRQ
cm94eShyZXF1ZXN0KTsKLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0gaW5pdGlhdGluZ1BhZ2Ug
PyBpbml0aWF0aW5nUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKTsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBpbml0aWF0aW5nUGFnZSA/IGlu
aXRpYXRpbmdQYWdlLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCk7CiAKICAgICBpZiAoaW5pdGlhdGluZ1BhZ2UpCiAgICAgICAgIGluaXRpYXRpbmdQYWdl
LT5oYW5kbGVEb3dubG9hZFJlcXVlc3QoZG93bmxvYWRQcm94eSk7CkBAIC0xMDIxLDcgKzEwMjEs
NyBAQCBEb3dubG9hZFByb3h5KiBXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQoY29uc3Qg
QVBJOjpEYXRhKiByZXN1bWVEYXRhLCBjb25zdAogCiAgICAgaWYgKG5ldHdvcmtQcm9jZXNzKCkp
IHsKICAgICAgICAgLy8gRklYTUU6IElmIHdlIHN0YXJ0ZWQgYSBkb3dubG9hZCBpbiBhbiBlcGhl
bWVyYWwgc2Vzc2lvbiBhbmQgdGhhdCBzZXNzaW9uIHN0aWxsIGV4aXN0cywgd2Ugc2hvdWxkIGZp
bmQgYSB3YXkgdG8gdXNlIHRoYXQgc2FtZSBzZXNzaW9uLgotICAgICAgICBuZXR3b3JrUHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzdW1lRG93bmxvYWQoU2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIGRvd25sb2FkUHJveHktPmRvd25sb2FkSUQoKSwgcmVz
dW1lRGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBwYXRoLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwg
MCk7CisgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpSZXN1bWVEb3dubG9hZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBk
b3dubG9hZFByb3h5LT5kb3dubG9hZElEKCksIHJlc3VtZURhdGEtPmRhdGFSZWZlcmVuY2UoKSwg
cGF0aCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIDApOwogICAgICAgICByZXR1cm4gZG93bmxv
YWRQcm94eTsKICAgICB9CiAKQEAgLTE1MzQsMTIgKzE1MzQsMTIgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6c2V0SmF2YVNjcmlwdEdhcmJhZ2VDb2xsZWN0b3JUaW1lckVuYWJsZWQoYm9vbCBmbGFn
KQogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0SmF2YVNj
cmlwdEdhcmJhZ2VDb2xsZWN0b3JUaW1lckVuYWJsZWQoZmxhZykpOwogfQogCi12b2lkIFdlYlBy
b2Nlc3NQb29sOjphZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKGNvbnN0IFN0cmluZyYgcGFn
ZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgU2Vzc2lvbklEIHNlc3Npb25JRCkK
K3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2goY29uc3Qg
U3RyaW5nJiBwYWdlT3JpZ2luLCB1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7CiAgICAgbV9wbHVnSW5BdXRvU3RhcnRQcm92aWRlci5hZGRBdXRv
U3RhcnRPcmlnaW5IYXNoKHBhZ2VPcmlnaW4sIHBsdWdJbk9yaWdpbkhhc2gsIHNlc3Npb25JRCk7
CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rp
b24odW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odW5zaWduZWQg
cGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIG1fcGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXIuZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihwbHVnSW5Pcmln
aW5IYXNoLCBzZXNzaW9uSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKaW5kZXggYzcwMDdkYTVkMGYuLmNjMDgyMmMzNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ1LDcgKzQ1LDcgQEAKICNpbmNsdWRlICJXZWJD
b250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgpAQCAtNDU3LDggKzQ1Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1bnJlZ2lzdGVy
Tm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgYWRkUGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJ
bk9yaWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBwbHVnSW5EaWRSZWNl
aXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdlYkNvcmU6OlNl
c3Npb25JRCk7CisgICAgdm9pZCBhZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKGNvbnN0IFN0
cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9u
SUQpOworICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNpZ25lZCBw
bHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHNldEFueVBhZ2VH
cm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCk7CiAKQEAgLTYxMCw3ICs2
MTAsNyBAQCBwcml2YXRlOgogICAgIH07CiAgICAgUGF0aHMgbV9yZXNvbHZlZFBhdGhzOwogCi0g
ICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hTZXQ8V2ViUGFnZVByb3h5Kj4+IG1f
c2Vzc2lvblRvUGFnZXNNYXA7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaFNldDxX
ZWJQYWdlUHJveHkqPj4gbV9zZXNzaW9uVG9QYWdlc01hcDsKIH07CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1l
c3NhZ2VzLmluCmluZGV4IGUwYmIyNjk0YWE1Li45NmI0NzhhMThhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KQEAgLTMyLDgg
KzMyLDggQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Bvb2wgewogI2VuZGlmCiAKICAgICAjIFBs
dWctaW4gbWVzc2FnZXMuCi0gICAgdm9pZCBBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKFN0
cmluZyBwYWdlT3JpZ2luLCB1aW50MzJfdCBoYXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQotICAgIHZvaWQgUGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1aW50MzJfdCBo
YXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIHZvaWQgQWRkUGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaChTdHJpbmcgcGFnZU9yaWdpbiwgdWludDMyX3QgaGFzaCwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKKyAgICB2b2lkIFBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24o
dWludDMyX3QgaGFzaCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgIFJlcG9ydFdlYkNvbnRl
bnRDUFVUaW1lKFNlY29uZHMgY3B1VGltZSwgdWludDY0X3QgYWN0aXZpdHlTdGF0ZSkKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDcwODVjZTky
NDA2Li43MmVhZTYyYjYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0
ZVdlYnNpdGVEYXRhRm9yVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNJbkFsbFBlcnMKICAg
ICAKICAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBh
ZG9wdFJlZihuZXcgQ2FsbGJhY2tBZ2dyZWdhdG9yKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KSk7CiAKLSAgICBIYXNoU2V0PFdlYkNvcmU6OlNlc3Npb25JRD4gdmlzaXRlZFNlc3Npb25JRHM7
CisgICAgSGFzaFNldDxQQUw6OlNlc3Npb25JRD4gdmlzaXRlZFNlc3Npb25JRHM7CiAgICAgZm9y
IChhdXRvJiBwYWdlIDogZ2xvYmFsUGFnZU1hcCgpKSB7CiAgICAgICAgIGF1dG8mIGRhdGFTdG9y
ZSA9IHBhZ2UudmFsdWUtPndlYnNpdGVEYXRhU3RvcmUoKTsKICAgICAgICAgaWYgKCFkYXRhU3Rv
cmUuaXNQZXJzaXN0ZW50KCkgfHwgdmlzaXRlZFNlc3Npb25JRHMuY29udGFpbnMoZGF0YVN0b3Jl
LnNlc3Npb25JRCgpKSkKQEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNXaXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdl
YgogICAgIAogICAgIFJlZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRv
ciA9IGFkb3B0UmVmKG5ldyBDYWxsYmFja0FnZ3JlZ2F0b3IoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpKTsKICAgICAKLSAgICBIYXNoU2V0PFdlYkNvcmU6OlNlc3Npb25JRD4gdmlzaXRlZFNl
c3Npb25JRHM7CisgICAgSGFzaFNldDxQQUw6OlNlc3Npb25JRD4gdmlzaXRlZFNlc3Npb25JRHM7
CiAgICAgZm9yIChhdXRvJiBwYWdlIDogZ2xvYmFsUGFnZU1hcCgpKSB7CiAgICAgICAgIGF1dG8m
IGRhdGFTdG9yZSA9IHBhZ2UudmFsdWUtPndlYnNpdGVEYXRhU3RvcmUoKTsKICAgICAgICAgaWYg
KCFkYXRhU3RvcmUuaXNQZXJzaXN0ZW50KCkgfHwgdmlzaXRlZFNlc3Npb25JRHMuY29udGFpbnMo
ZGF0YVN0b3JlLnNlc3Npb25JRCgpKSkKQEAgLTgzNCw3ICs4MzQsNyBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6d2luZG93U2VydmVyQ29ubmVjdGlvblN0YXRlQ2hhbmdlZCgpCiAgICAgICAgIHBh
Z2UtPmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUp
OwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIEZ1bmN0aW9u
PHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNz
UHJveHk6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIEZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsK
IApAQCAtODUyLDcgKzg1Miw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVE
YXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0CiAgICAgfSk7CiB9
CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4gZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlm
aWVkU2luY2UsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKQEAgLTg2NSw3ICs4NjUsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYQogICAgIH0pOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4mIG9yaWdpbnMsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGNhblNlbmRN
ZXNzYWdlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IDFlZTQ4ZjdjYjJkLi41NTkwZGFmMmM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM5LDggKzM5LDggQEAKICNpbmNsdWRlICJXZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0xMzgsOSArMTM4LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCk7CiAgICAgdm9pZCByZWxlYXNlUGFnZUNh
Y2hlKCk7CiAKLSAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgRnVuY3Rpb248dm9pZChXZWJzaXRlRGF0YSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdl
YkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4m
JiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6
OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKTsKICAgICBzdGF0aWMgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW5zSW5BbGxQZXJzaXN0ZW50RGF0YVN0b3JlcyhPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgVmVjdG9yPFN0cmluZz4mJiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWlucywgYm9vbCBzaG91bGROb3RpZnlQYWdlcywgRnVuY3Rpb248dm9pZCAoY29uc3QgSGFzaFNl
dDxTdHJpbmc+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHN0YXRpYyB2b2lkIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW5zV2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcywgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBGdW5jdGlvbjx2b2lk
KEhhc2hTZXQ8U3RyaW5nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgc3RhdGljIHZv
aWQgbm90aWZ5UGFnZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAppbmRleCA5NTg2NTY2MTMyNy4uMmMzOWE0Y2I5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CkBAIC02MywxNSArNjMsMTUgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSWRlbnRpZmllcigp
CiAKIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJz
aXN0ZW50KCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0b3JlKFdl
YkNvcmU6OlNlc3Npb25JRDo6Z2VuZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQoKSkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQ6OmdlbmVy
YXRlRXBoZW1lcmFsU2Vzc2lvbklEKCkpKTsKIH0KIAotUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdl
YnNpdGVEYXRhU3RvcmU6OmNyZWF0ZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24sIFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURh
dGFTdG9yZTo6Y3JlYXRlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3Rv
cmUoV1RGTW92ZShjb25maWd1cmF0aW9uKSwgc2Vzc2lvbklEKSk7CiB9CiAKLVdlYnNpdGVEYXRh
U3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFT
dG9yZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICA6IG1faWRlbnRpZmllcihnZW5lcmF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pKQpAQCAtODEsNyArODEsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0
b3JlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbgogICAgIHBs
YXRmb3JtSW5pdGlhbGl6ZSgpOwogfQogCi1XZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0
b3JlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitXZWJzaXRlRGF0YVN0b3JlOjpXZWJz
aXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1faWRlbnRpZmll
cihnZW5lcmF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAg
ICAsIG1fY29uZmlndXJhdGlvbigpCkBAIC05NCw3ICs5NCw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6
On5XZWJzaXRlRGF0YVN0b3JlKCkKIHsKICAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIAotICAgIGlm
IChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkgJiYgbV9zZXNzaW9uSUQgIT0gV2ViQ29yZTo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKKyAgICBpZiAobV9zZXNzaW9uSUQuaXNWYWxpZCgp
ICYmIG1fc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsK
ICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9j
ZXNzUG9vbHMoKSkKICAgICAgICAgICAgIHByb2Nlc3NQb29sLT5zZW5kVG9OZXR3b3JraW5nUHJv
Y2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vzc2lvbklE
KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDgwZThmMDdlMjUwLi4wMmYxMTMzNzkzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
U2V0Lmg+CkBAIC04MSwxMyArODEsMTMgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgY29va2ll
U3RvcmFnZUZpbGU7CiAgICAgfTsKICAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNy
ZWF0ZU5vblBlcnNpc3RlbnQoKTsKLSAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNy
ZWF0ZShDb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyBSZWY8
V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEKTsK
ICAgICB2aXJ0dWFsIH5XZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICB1aW50NjRfdCBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKICAgICBib29sIGlzUGVyc2lz
dGVudCgpIGNvbnN0IHsgcmV0dXJuICFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOyB9Ci0gICAg
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQ7IH0KIAogICAgIGJvb2wgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25z
dDsKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wpOwpAQCAt
MTMxLDggKzEzMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3NBbmRTZXRUZXN0aW5nQ2FsbGJhY2soRnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJik+
JiYgY2FsbGJhY2spOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmUo
V2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKENvbmZp
Z3VyYXRpb24sIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFT
dG9yZShQQUw6OlNlc3Npb25JRCk7CisgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZShDb25m
aWd1cmF0aW9uLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIGZldGNoRGF0YUFuZEFwcGx5
KE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9w
dGlvbj4sIFJlZlB0cjxXb3JrUXVldWU+JiYsIEZ1bmN0aW9uPHZvaWQoVmVjdG9yPFdlYnNpdGVE
YXRhUmVjb3JkPik+JiYgYXBwbHkpOwogCkBAIC0xNTksNyArMTU5LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgdm9pZCByZW1vdmVNZWRpYUtleXMoY29uc3QgU3RyaW5nJiBtZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5LCBjb25zdCBIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4m
KTsKIAogICAgIGNvbnN0IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKLSAgICBjb25zdCBXZWJDb3Jl
OjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgY29uc3QgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CiAKICAgICBjb25zdCBDb25maWd1cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKICAgICBD
b25maWd1cmF0aW9uIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAppbmRleCAxMjEz
ZDNhODczYi4uOWRjNTc3MDU3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFdlYkNv
b2tpZU1hbmFnZXI6OldlYkNvb2tpZU1hbmFnZXIoQ2hpbGRQcm9jZXNzKiBwcm9jZXNzKQogICAg
IG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2Vy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5h
Z2VyOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldEhvc3RuYW1lc1dpdGhD
b29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogICAgIEhhc2hTZXQ8U3RyaW5nPiBob3N0bmFtZXM7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VT
ZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
KQpAQCAtNjYsMjAgKzY2LDIwIEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SG9zdG5hbWVz
V2l0aENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjCiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldEhvc3RuYW1l
c1dpdGhDb29raWVzKGhvc3RuYW1lTGlzdCwgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxl
dGVDb29raWVzRm9ySG9zdG5hbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGhvc3RuYW1lKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgV2ViQ29y
ZTo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcygqc3RvcmFnZVNlc3Npb24sIHsgaG9zdG5hbWUg
fSk7CiB9CiAKIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzKFNlc3Np
b25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lv
biA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAg
ICAgICAgV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcygqc3RvcmFnZVNlc3Npb24pOwogfQogCi12
b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZShTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBDb29raWUmIGNvb2tpZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBD
b29raWUmIGNvb2tpZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGlmIChhdXRvKiBz
dG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmRlbGV0ZUNvb2tpZShjb29raWUpOwpA
QCAtODcsNyArODcsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZShTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNvb2tpZSwgQwogICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWREZWxldGVDb29raWVzKGNh
bGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29r
aWVzTW9kaWZpZWRTaW5jZShTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IHRpbWUs
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24g
PSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAg
ICAgIFdlYkNvcmU6OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKCpzdG9yYWdlU2Vzc2lv
biwgdGltZSk7CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRl
QWxsQ29va2llc01vZGlmaWVkU2luY2UoU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpjCiAgICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZERlbGV0
ZUNvb2tpZXMoY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6Omdl
dEFsbENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQor
dm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFZlY3RvcjxDb29raWU+IGNvb2tp
ZXM7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6Z2V0QWxsQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVN
YW5hZ2VyUHJveHk6OkRpZEdldENvb2tpZXMoY29va2llcywgY2FsbGJhY2tJRCksIDApOwogfQog
Ci12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgVVJMJiB1cmwsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQ29va2llTWFu
YWdlcjo6Z2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJs
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgVmVjdG9yPENvb2tpZT4gY29va2llczsK
ICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0
b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpnZXRDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJs
LCBDYWxsYmFja0kKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6RGlkR2V0Q29va2llcyhjb29raWVzLCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZv
aWQgV2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IENvb2tpZSYgY29va2llLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IENvb2tpZSYgY29va2llLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgaWYgKGF1dG8q
IHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihz
ZXNzaW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+c2V0Q29va2llKGNvb2tpZSk7CkBA
IC0xMjEsNyArMTIxLDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRDb29raWUoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb28KICAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkU2V0Q29va2llcyhjYWxs
YmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llcyhXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPiYgY29va2llcywg
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMLCBDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPiYgY29va2llcywgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7
CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
dG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+c2V0Q29v
a2llcyhjb29raWVzLCB1cmwsIG1haW5Eb2N1bWVudFVSTCk7CkBAIC0xMjksMTMgKzEyOSwxMyBA
QCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVmVjdG9yPENvbwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRTZXRDb29raWVzKGNhbGxiYWNrSUQpLCAwKTsKIH0K
IAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpub3RpZnlDb29raWVzRGlkQ2hhbmdlKFNlc3Npb25J
RCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6Om5vdGlmeUNvb2tpZXNEaWRDaGFu
Z2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OkNvb2tpZXNEaWRDaGFuZ2Uoc2Vzc2lvbklEKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ29va2ll
TWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFNlc3Npb25JRCBzZXNzaW9uSUQp
Cit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAg
ICAgIFdlYkNvcmU6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygqc3RvcmFnZVNlc3Npb24s
IFt0aGlzLCBzZXNzaW9uSURdIHsKQEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIH0KIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYg
KGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vz
c2lvbihzZXNzaW9uSUQpKQogICAgICAgICBXZWJDb3JlOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcygqc3RvcmFnZVNlc3Npb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCmluZGV4IDg0NGY3YTNiNDZkLi42ODc0MWFkMGU2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tp
ZU1hbmFnZXIuaApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzU3Vw
cGxlbWVudC5oIgogI2luY2x1ZGUgIk9wdGlvbmFsQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KQEAgLTY0LDMwICs2NCwzMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShjb25zdCBTdHJpbmcmIHN0b3JhZ2VQYXRoLCB1aW50
MzJfdCBzdG9yYWdlVHlwZSk7CiAjZW5kaWYKIAotICAgIHZvaWQgbm90aWZ5Q29va2llc0RpZENo
YW5nZShXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgbm90aWZ5Q29va2llc0RpZENoYW5n
ZShQQUw6OlNlc3Npb25JRCk7CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXZWJD
b3JlOjpTZXNzaW9uSUQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoUEFMOjpTZXNzaW9uSUQsIENhbGxiYWNrSUQpOwogCi0gICAgdm9pZCBkZWxldGVDb29r
aWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBDYWxsYmFja0lE
KTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXZWJDb3JlOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZGVsZXRlQWxsQ29va2llcyhXZWJDb3JlOjpTZXNz
aW9uSUQpOwotICAgIHZvaWQgZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoV2ViQ29yZTo6
U2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50LCBDYWxsYmFj
a0lEKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6Q29va2llJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5h
bWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGVsZXRlQWxsQ29v
a2llcyhQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkZWxldGVBbGxDb29raWVzTW9kaWZpZWRT
aW5jZShQQUw6OlNlc3Npb25JRCwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2lu
dCwgQ2FsbGJhY2tJRCk7CiAKLSAgICB2b2lkIHNldENvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgc2V0Q29va2ll
cyhXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBtYWluRG9jdW1lbnRVUkwsIENh
bGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0QWxsQ29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIENh
bGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlVSTCYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgc2V0Q29va2llKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIHNl
dENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jiwg
Y29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBtYWluRG9jdW1lbnRVUkws
IENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0QWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ2Fs
bGJhY2tJRCk7CisgICAgdm9pZCBnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmLCBDYWxsYmFja0lEKTsKIAogICAgIHZvaWQgcGxhdGZvcm1TZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogICAgIHZvaWQgZ2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShDYWxsYmFja0lEKTsKICAgICBIVFRQQ29va2llQWNjZXB0UG9saWN5
IHBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpOwogCi0gICAgdm9pZCBzdGFydE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIHN0b3BP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBzdGFy
dE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgc3RvcE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgQ2hpbGRQcm9jZXNz
KiBtX3Byb2Nlc3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNWZlZWZhNzEy
YzguLmZjNDEwOGE4ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI0LDIyICsy
NCwyMiBAQAogICovCiAgCiAgbWVzc2FnZXMgLT4gV2ViQ29va2llTWFuYWdlciB7Ci0gICAgdm9p
ZCBHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICB2b2lkIERlbGV0ZUNvb2tpZXNGb3JI
b3N0bmFtZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgaG9zdG5hbWUpCi0g
ICAgdm9pZCBEZWxldGVBbGxDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisg
ICAgdm9pZCBHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUNvb2tpZXNGb3JIb3N0
bmFtZShTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgaG9zdG5hbWUpCisgICAgdm9pZCBEZWxl
dGVBbGxDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAKLSAgICB2b2lkIFNldENvb2tpZShX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViQ29yZTo6Q29va2llIGNvb2tp
ZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgdm9pZCBTZXRDb29raWVzKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tp
ZXMsIFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBtYWluRG9jdW1lbnRVUkwsIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHZvaWQgR2V0QWxsQ29va2llcyhXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAg
ICB2b2lkIEdldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
VVJMIHVybCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgdm9pZCBEZWxldGVD
b29raWUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tp
ZSBjb29raWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHZvaWQgRGVsZXRl
QWxsQ29va2llc01vZGlmaWVkU2luY2UoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3Rk
OjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCB0aW1lLCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKKyAgICB2b2lkIFNldENvb2tpZShTZXNzaW9uSUQgc2Vzc2lvbklELCBz
dHJ1Y3QgV2ViQ29yZTo6Q29va2llIGNvb2tpZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCisgICAgdm9pZCBTZXRDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+IGNvb2tpZXMsIFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBtYWlu
RG9jdW1lbnRVUkwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgR2V0
QWxsQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKKyAgICB2b2lkIEdldENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
VVJMIHVybCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVD
b29raWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tpZSBjb29raWUs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgRGVsZXRlQWxsQ29va2ll
c01vZGlmaWVkU2luY2UoU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludCB0aW1lLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAog
ICAgIHZvaWQgU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSh1aW50MzJfdCBwb2xpY3ksIFdlYktp
dDo6T3B0aW9uYWxDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgdm9pZCBHZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIAotICAgIHZv
aWQgU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCi0gICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQorICAgIHZvaWQgU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFNlc3Np
b25JRCBzZXNzaW9uSUQpCisgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhTZXNz
aW9uSUQgc2Vzc2lvbklEKQogCiAjaWYgVVNFKFNPVVApCiAgICAgU2V0Q29va2llUGVyc2lzdGVu
dFN0b3JhZ2UoU3RyaW5nIHN0b3JhZ2VQYXRoLCB1aW50MzJfdCBzdG9yYWdlVHlwZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IDRkNzZmYmI0
M2UwLi5jMTgzYzU0OTVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIuY3BwCkBAIC01NSwxMiArNTUsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShTZXNzaW9uSUQgc2Vzc2lvbklEKQorUmVm
PFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVh
dGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihzZXNzaW9uSUQpKTsKIH0KIAotV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoU2Vzc2lvbklEIHNlc3Npb25J
RCkKK1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKIHsK
ICAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggYzc5ZTA0MWQ0ZjEuLjI5NzU1OTU2MmZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0
YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtMzAsNyArMzAs
NyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5z
aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Np
b25JRC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBX
ZWJJREJSZXN1bHQ7CiAKIGNsYXNzIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLCBw
dWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcj4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgc3RhdGljIFJlZjxXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2aXJ0
dWFsIH5XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKTsKIApAQCAtMTA5LDE0ICsxMDksMTQgQEAg
cHVibGljOgogICAgIHZvaWQgY29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwogCiBwcml2YXRlOgot
ICAgIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCk7CiAKICAgICBJUEM6OkNvbm5l
Y3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWw7CiAKICAgICB1aW50NjRfdCBt
X2lkZW50aWZpZXIgeyAwIH07CiAgICAgYm9vbCBtX2lzT3BlbkluU2VydmVyIHsgZmFsc2UgfTsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1f
Y29ubmVjdGlvblRvU2VydmVyOwotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsK
KyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJE
YXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
V2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggMmI4N2JhZjk0ZTcuLmViMTUxZWRkMmZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNl
UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2Vi
RGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlICJXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIApAQCAtNjksNyArNjksNyBAQCBXZWJEYXRhYmFzZVByb3ZpZGVyOjp+V2Vi
RGF0YWJhc2VQcm92aWRlcigpCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotV2Vi
Q29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYkRhdGFiYXNlUHJvdmlk
ZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lv
bklEJiBzZXNzaW9uSUQpCitXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZl
ciYgV2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihj
b25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQogewogICAgIGlmIChzZXNzaW9uSUQuaXNF
cGhlbWVyYWwoKSkgewogICAgICAgICBhdXRvIHJlc3VsdCA9IG1faWRiRXBoZW1lcmFsQ29ubmVj
dGlvbk1hcC5hZGQoc2Vzc2lvbklELnNlc3Npb25JRCgpLCBudWxscHRyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVy
LmgKaW5kZXggYjcyYjIzNGZmMWYuLmY5ZGFhZjExYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaApAQCAt
MzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViRGF0YWJhc2VQcm92aWRlcigp
OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgV2ViQ29yZTo6SURCQ2xpZW50
OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24o
Y29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJikgZmluYWw7CisgICAgV2ViQ29yZTo6SURCQ2xpZW50
OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24o
Y29uc3QgUEFMOjpTZXNzaW9uSUQmKSBmaW5hbDsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKaW5kZXggOWE4YTYwYzE1MDkuLjRlYjAxNTllMWMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHAKQEAgLTcxLDExICs3MSwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29u
dHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
R2VzdHVyZUluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclNjcmlwdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaD4KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogI2luY2x1ZGUgIldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaCIKQEAgLTMxOSw5ICszMTksOSBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdl
R3JvdXAsIGJvbwogewogICAgIGlmIChlbmFibGVkKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb25Jbk5ldHdvcmtQcm9j
ZXNzKCk7Ci0gICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAg
ICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogICAgIH0gZWxz
ZQotICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNl
c3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAKICAgICBj
b25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3Jv
dXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRl
cmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGEyMzkzMDI3YWQxLi5kZDc4NjBiNTI4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC00MSw4ICs0MSw4IEBACiAjaW5jbHVkZSAi
V2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJlc291
cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXModWludDY0X3QgcmVxdWVzdElkZQogfQogCiAj
aWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLXZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlLCBTZXNzaW9uSUQgc2Vzc2lvbklE
KQordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxl
JiBoYW5kbGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UgPSBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVzb3VyY2VGb3JSZXF1ZXN0
KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAgICAgaWYgKCFyZXNvdXJjZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmgKaW5kZXggZmIzMDE1NmU4NDUuLjU2YWNhOGJmNGMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtMzUsMTEgKzM1LDE0IEBAIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRGF0YVJlZmVy
ZW5jZTsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgU2Vzc2lvbklEOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTczLDcgKzc2LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShT
SEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRp
ZENhY2hlUmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU2hh
cmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYsIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBk
aWRDYWNoZVJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNo
YXJlYWJsZVJlc291cmNlOjpIYW5kbGUmLCBQQUw6OlNlc3Npb25JRCk7CiAjZW5kaWYKIAogICAg
IC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBuZXR3b3JrIHBy
b2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggYTRm
YzQyNmQ4MDQuLjlmMzA2NDY5Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJD
RSkKLSAgICBEaWRDYWNoZVJlc291cmNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBXZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUgcmVzb3VyY2UsIFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCisgICAgRGlkQ2FjaGVSZXNvdXJjZShXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291
cmNlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlmCiAKICAgICBEaWRXcml0ZUJsb2JzVG9U
ZW1wb3JhcnlGaWxlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFN0cmluZz4g
ZmlsZW5hbWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDlkOTc3NWIwNDhmLi40YTc1Y2ZjNzc1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcApAQCAtNTksOSArNTksOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVz
b3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTIy
Miw3ICsyMjIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3Vy
Y2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIGxvYWRQYXJhbWV0ZXJz
LmlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9
IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2Vi
RnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBh
cmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVzb3VyY2VMb2Fk
ZXIucmVxdWVzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9
IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3JlZENy
ZWRlbnRpYWxzID0gYWxsb3dTdG9yZWRDcmVkZW50aWFsczsKQEAgLTM2Niw3ICszNjYsNyBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0LCB1bgogICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSBy
ZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdl
YlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJh
bWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBhcmFt
ZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0g
d2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBs
b2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBTbmlmZkNvbnRlbnQ7CiAgICAg
bG9hZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IHN0b3JlZENyZWRlbnRpYWxz
OwpAQCAtNDAxLDcgKzQwMSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdI
YW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBSCiAgICAgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CiAgICAgbG9hZFBhcmFtZXRl
cnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2luID0g
V1RGTW92ZShzb3VyY2VPcmlnaW4pOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdl
YlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5z
ZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IG9wdGlvbnMuY3JlZGVudGlhbHMg
PT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCA/IERvTm90QWxsb3dTdG9yZWRDcmVk
ZW50aWFscyA6IEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiAgICAgbG9hZFBhcmFtZXRlcnMubW9k
ZSA9IG9wdGlvbnMubW9kZTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRGb2xsb3dSZWRpcmVj
dHMgPSBvcHRpb25zLnJlZGlyZWN0ID09IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFBy
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFBy
b3ZpZGVyLmNwcAppbmRleCBlMzMzZjY0YTFiZC4uOTg3NjA5Mjc0ZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAK
QEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1SZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBXZWJTb2NrZXRQcm92aWRlcjo6Y3Jl
YXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVD
bGllbnQmIGNsaWVudCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50
aWFsUGFydGl0aW9uKQorUmVmPFNvY2tldFN0cmVhbUhhbmRsZT4gV2ViU29ja2V0UHJvdmlkZXI6
OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBjcmVkZW50aWFsUGFydGl0aW9uKQogewogICAgIHJldHVybiBXZWJTb2NrZXRTdHJlYW06OmNy
ZWF0ZSh1cmwsIGNsaWVudCwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRl
ci5oCmluZGV4IGE0YTE4MmMyZGZkLi4wMjQ0ZTVmMmM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oCkBAIC0zMiw3ICsz
Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViU29ja2V0UHJvdmlkZXIgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6U29ja2V0UHJvdmlkZXIgewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8V2ViU29ja2V0UHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
U29ja2V0UHJvdmlkZXIpOyB9Ci0gICAgUmVmPFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZT4g
Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBjcmVkZW50aWFsUGFydGl0aW9uKSBmaW5hbDsKKyAgICBSZWY8V2ViQ29yZTo6U29ja2V0U3Ry
ZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgV2ViQ29yZTo6VVJMJiwg
V2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbikgZmluYWw7CiAgICAgdmlydHVhbCB+V2ViU29j
a2V0UHJvdmlkZXIoKSB7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0uY3BwCmluZGV4IDhmMjQzNWFmMWRlLi5jOWY1Nzlj
YzkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJT
b2NrZXRTdHJlYW0uY3BwCkBAIC0zMiw5ICszMiw5IEBACiAjaW5jbHVkZSAiTmV0d29ya1NvY2tl
dFN0cmVhbU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1FcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwpAQCAtNjUsMTIgKzY1LDEyIEBAIHZvaWQgV2ViU29ja2V0U3RyZWFtOjpu
ZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQogICAgIGdsb2JhbFdlYlNvY2tldFN0cmVhbU1hcCgpLmNs
ZWFyKCk7CiB9CiAKLVJlZjxXZWJTb2NrZXRTdHJlYW0+IFdlYlNvY2tldFN0cmVhbTo6Y3JlYXRl
KGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgU2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKQorUmVmPFdl
YlNvY2tldFN0cmVhbT4gV2ViU29ja2V0U3RyZWFtOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbikKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJTb2NrZXRTdHJlYW0odXJsLCBjbGllbnQsIHNlc3Npb25JRCwgY3JlZGVudGlh
bFBhcnRpdGlvbikpOwogfQogCi1XZWJTb2NrZXRTdHJlYW06OldlYlNvY2tldFN0cmVhbShjb25z
dCBXZWJDb3JlOjpVUkwmIHVybCwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBj
bGllbnQsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY2FjaGVQ
YXJ0aXRpb24pCitXZWJTb2NrZXRTdHJlYW06OldlYlNvY2tldFN0cmVhbShjb25zdCBXZWJDb3Jl
OjpVUkwmIHVybCwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbikKICAg
ICA6IFNvY2tldFN0cmVhbUhhbmRsZSh1cmwsIGNsaWVudCkKICAgICAsIG1faWRlbnRpZmllcihu
ZXh0QXZhaWxhYmxlSWRlbnRpZmllcisrKQogICAgICwgbV9jbGllbnQoY2xpZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0uaAppbmRl
eCBlZGE3NTc4YjBkNC4uZTk2ODRhZDRiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvY2tldFN0
cmVhbUhhbmRsZS5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBu
YW1lc3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJTb2NrZXRTdHJlYW0gOiBwdWJsaWMgSVBDOjpNZXNz
YWdlU2VuZGVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpT
b2NrZXRTdHJlYW1IYW5kbGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViU29ja2V0U3Ry
ZWFtPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50JiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQ
YXJ0aXRpb24pOworICAgIHN0YXRpYyBSZWY8V2ViU29ja2V0U3RyZWFtPiBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbik7CiAgICAgc3RhdGlj
IHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVkKCk7CiAgICAgc3RhdGljIFdlYlNvY2tldFN0cmVh
bSogc3RyZWFtV2l0aElkZW50aWZpZXIodWludDY0X3QpOwogICAgIApAQCAtNzAsNyArNzAsNyBA
QCBwcml2YXRlOgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBmaW5hbDsKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGZpbmFs
OwogCi0gICAgV2ViU29ja2V0U3RyZWFtKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBjcmVkZW50aWFsUGFydGl0aW9uKTsKKyAgICBXZWJTb2NrZXRTdHJlYW0oY29uc3QgV2ViQ29y
ZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbik7CiAgICAgfldlYlNvY2tldFN0
cmVhbSgpOwogCiAgICAgc2l6ZV90IG1fYnVmZmVyZWRBbW91bnQgeyAwIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3Jh
Z2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNmIyN2Q3ODFkMmQuLmFiZWE4MWQyM2YxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHZv
aWQgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJCiB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
LVdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246
OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9u
SUQpCitXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0
aW9uOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklE
JiBzZXNzaW9uSUQpCiB7CiAgICAgYXV0byByZXN1bHQgPSBtX3dlYklEQkNvbm5lY3Rpb25zQnlT
ZXNzaW9uLmFkZChzZXNzaW9uSUQsIG51bGxwdHIpOwogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRy
eSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9T
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMjQyNmU2Y2FmYjIuLmIw
MzNiNGYwZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTI5LDEwICsy
OSwxMCBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVy
LmgiCiAjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1l
c3BhY2UgUEFMIHsKIGNsYXNzIFNlc3Npb25JRDsKIH0KIApAQCAtNDksNyArNDksNyBAQCBwdWJs
aWM6CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0
aW9uLmdldCgpOyB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3Qg
V2ViQ29yZTo6U2Vzc2lvbklEJik7CisgICAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJD
b25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7CiAjZW5k
aWYKIAogcHJpdmF0ZToKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
LSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcj4+IG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb247CisgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4+IG1fd2ViSURCQ29u
bmVjdGlvbnNCeVNlc3Npb247CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcj4+IG1fd2ViSURCQ29ubmVjdGlvbnNCeUlkZW50aWZpZXI7CiAjZW5k
aWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjMGE5NjgwNjMwNS4u
YjdhOWQwNDk4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTQ0MSw3
ICsxNDQxLDcgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQ2FjaGVQYWdlKCkgY29u
c3QKICAgICByZXR1cm4gIW1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXI7CiB9CiAKLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9h
ZChEb2N1bWVudExvYWRlciAqZG9jdW1lbnRMb2FkZXIsIFNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9h
ZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIgKmRvY3VtZW50TG9hZGVyLCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgbV9mcmFtZS0+Y29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKGRvY3VtZW50TG9hZGVyLCBzZXNzaW9uSUQsIHJlcXVlc3QsIHJlc3Bv
bnNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggOTk5ZmFiODkyYzkuLjRh
Y2JlNzE4MGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjcsNyArMjcsNyBA
QAogCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5oPgogCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgUEFMIHsKIGNsYXNzIFNlc3Npb25JRDsKIH0KIApAQCAtMTk2
LDcgKzE5Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0
KGJvb2wpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdCBmaW5hbDsKLSAg
ICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciosIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOworICAgIHZvaWQg
Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
KiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKIAogICAgIFJlZlB0cjxXZWJDb3Jl
OjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyLCBib29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVp
Z2h0KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA4MjE0
MDgyODJiZC4uYWU2NDA4MzNmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
CkBAIC01OSwxMCArNTksMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2Fy
ZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvZ3Jlc3NUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VOYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1
YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KKyNpbmNsdWRlIDxwYWwv
aWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogCiAjaWYg
UExBVEZPUk0oTUFDKQpAQCAtMTM1LDcgKzEzNSw3IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdl
CiAgICAgcmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24uc2Vzc2lv
bklEKCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCitTdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCiB7CiAgICAg
U3RyaW5nIHJlc3VsdDsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtD
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbklE
LCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlOjpSZXBseShyZXN1bHQpLCAwKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCA2MjhkODcwZDM2MC4uZTE2YmVhNDgyN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBjb29raWVzRW5hYmxl
ZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwogICAgIFN0cmlu
ZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNv
cmU6OlVSTCYpIG92ZXJyaWRlOwotICAgIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwogICAgIGJvb2wgZ2V0UmF3Q29v
a2llcyhjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5jcHAKaW5kZXggMGZmNWZjMmM3NTAuLjU1
MTQ4ODAyMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBib29s
IFdlYlBsdWdJbkNsaWVudDo6c2hvdWxkQXV0b1N0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcm
IHBhZ2VPcmlnaW4sIGNvbnN0CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNo
b3VsZFBsdWdJbkF1dG9TdGFydEZyb21PcmlnaW4obV93ZWJQYWdlLCBwYWdlT3JpZ2luLCBwbHVn
aW5PcmlnaW4sIG1pbWVUeXBlKTsKIH0KIAotdm9pZCBXZWJQbHVnSW5DbGllbnQ6OmRpZFN0YXJ0
RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2lu
T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQordm9pZCBXZWJQbHVnSW5DbGllbnQ6OmRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJp
bmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGx1Z0luRGlkU3RhcnRGcm9tT3JpZ2luKHBhZ2VPcmlnaW4sIHBsdWdpbk9y
aWdpbiwgbWltZVR5cGUsIHNlc3Npb25JRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmgKaW5kZXggOTNm
OTY5OGE5ZmEuLjY3NzhiMzY4OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5oCkBAIC0yNyw3ICsyNyw3
IEBACiAjZGVmaW5lIFdlYlBsdWdJbkNsaWVudF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdJ
bkNsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFs
L2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00MSw3
ICs0MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgb3Zl
cnJpZGU7CiAgICAgYm9vbCBzaG91bGRBdXRvU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYg
cGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmlu
ZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIFdlYkNvcmU6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTdGFy
dEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdp
bk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUEFMOjpTZXNzaW9uSUQpIG92ZXJyaWRl
OwogCiAgICAgV2ViUGFnZSYgbV93ZWJQYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggYjNkOWJjOTc0YmMuLmU0NjI5Y2I0MzJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjksNyArMjks
NyBAQAogI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJXZWJG
cmFtZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Myw3ICs0Myw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICAvLyBGSVhNRTogcmVtb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUg
YW5kIHVzZSBTZXNzaW9uVHJhY2tlcgotICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgdm9pZCBl
bnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lvbihXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYm
KTsKIAogICAgIHN0YXRpYyB2b2lkIHNldENvb2tpZUFjY2VwdFBvbGljeUZvckFsbENvbnRleHRz
KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCmluZGV4IGRkN2Q1YmY1ZDdmLi4yNjM5OTIzNWVlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtNDcsNyArNDcsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCi12
b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
c291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCA4MjhkMjY4MmQxOC4uN2Fk
Nzk3MDAzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuY3BwCkBAIC0zMywxNSArMzMsMTUgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Nlc3Npb24u
aD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Np
b25JRCkKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDgzZjY1OWIy
MmQ4Li5hNjZlODQ3NjU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaApAQCAtMjgsNyArMjgsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Np
b25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNl
c3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQgZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNl
c3Npb24oV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJik7CiAKICAgICBXZWJGcmFtZUxvYWRl
ckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBiYmU4YTUyMzYwYy4uMjJhYmMy
MDg4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKQEAgLTI2NCwxMSArMjY0LDExIEBAIHZvaWQgV2ViRnJhbWU6OnN0YXJ0RG93bmxvYWQoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpCiAgICAgbV9w
b2xpY3lEb3dubG9hZElEID0geyB9OwogCiAgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpOwotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBwYWdlKCkgPyBwYWdl
KCktPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gcGFnZSgpID8gcGFnZSgpLT5zZXNzaW9uSUQoKSA6IFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgd2ViUHJvY2Vzcy5uZXR3b3Jr
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6U3RhcnREb3dubG9hZChzZXNzaW9uSUQsIHBvbGljeURvd25sb2FkSUQs
IHJlcXVlc3QsIHN1Z2dlc3RlZE5hbWUpLCAwKTsKIH0KIAotdm9pZCBXZWJGcmFtZTo6Y29udmVy
dE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRl
ciwgU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgV2ViRnJhbWU6OmNvbnZlcnRN
YWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIs
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBBU1NFUlQobV9wb2xp
Y3lEb3dubG9hZElELmRvd25sb2FkSUQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IGYyYjA2MmZmYjcxLi5kZmU5NWM2MTU4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC00MiwxMyArNDIs
MTYgQEAgbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBcnJheTsKIH0KIAorbmFtZXNwYWNlIFBBTCB7
CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENlcnRp
ZmljYXRlSW5mbzsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTEZyYW1lT3duZXJFbGVtZW50Owog
Y2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRSZWN0OwotY2xhc3MgU2Vzc2lvbklEOwogY2xhc3Mg
VVJMOwogfQogCkBAIC04NCw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVQ
b2xpY3lEZWNpc2lvbih1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCk7CiAKICAgICB2b2lkIHN0YXJ0RG93
bmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWROYW1lID0geyB9KTsKLSAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3du
bG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOworICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAogICAgIFN0cmlu
ZyBzb3VyY2UoKSBjb25zdDsKICAgICBTdHJpbmcgY29udGVudHNBc1N0cmluZygpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4Y2U2
YTJlNmE0OS4uZGFmMjc4ZmQyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xNzYsNyArMTc2LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Nj
aGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NoYWRvd1Jvb3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgpAQCAtMTkyLDYgKzE5MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJHTFN0YXRlVHJhY2tl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvbWFya3VwLmg+CiAjaW5jbHVkZSA8YmluZGluZ3MvU2Ny
aXB0VmFsdWUuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDxwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CkBAIC0yNzE5LDcgKzI3
MTksNyBAQCB2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9k
ZSBsYXllckhvc3RpbmdNb2RlKQogICAgICAgICBwbHVnaW5WaWV3LT5zZXRMYXllckhvc3RpbmdN
b2RlKG1fbGF5ZXJIb3N0aW5nTW9kZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0U2Vzc2lvbklE
KFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQog
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKHNlc3Npb25JRCk7CkBAIC0zMDU0LDkgKzMwNTQsOSBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRp
bmdzLnNldEZyYW1lRmxhdHRlbmluZyhzdGF0aWNfY2FzdDxXZWJDb3JlOjpGcmFtZUZsYXR0ZW5p
bmc+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmcmFtZUZs
YXR0ZW5pbmdLZXkoKSkpKTsKICAgICBzZXR0aW5ncy5zZXRBc3luY0ZyYW1lU2Nyb2xsaW5nRW5h
YmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFzeW5jRnJh
bWVTY3JvbGxpbmdFbmFibGVkS2V5KCkpKTsKICAgICBpZiAoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpICYmICF1
c2VzRXBoZW1lcmFsU2Vzc2lvbigpKQotICAgICAgICBzZXRTZXNzaW9uSUQoU2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwotICAgIGVsc2UgaWYgKCFzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSkg
JiYgc2Vzc2lvbklEKCkgPT0gU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpCi0g
ICAgICAgIHNldFNlc3Npb25JRChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAg
ICAgIHNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
KTsKKyAgICBlbHNlIGlmICghc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpICYmIHNlc3Npb25JRCgpID09IFBBTDo6
U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpCisgICAgICAgIHNldFNlc3Npb25J
RChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICBzZXR0aW5ncy5zZXRE
ZXZlbG9wZXJFeHRyYXNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0
SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhSdW50aW1lRmxhZ3Moc3RvcmUuZ2V0VUludDMyVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFTY3JpcHRSdW50aW1lRmxhZ3NLZXkoKSkpKTsK
ICAgICBzZXR0aW5ncy5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0ZXh0QXJlYXNBcmVSZXNpemFibGVLZXkoKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDZiYzM3MWUy
MGZjLi40YTZiZDllN2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtMjMwLDEwICsyMzAsMTAgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UGFn
ZSogY29yZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KICAgICB1aW50NjRf
dCBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UtPnNlc3Npb25JRCgpOyB9Cisg
ICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLT5zZXNz
aW9uSUQoKTsgfQogICAgIGJvb2wgdXNlc0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVy
biBtX3BhZ2UtPnVzZXNFcGhlbWVyYWxTZXNzaW9uKCk7IH0KIAotICAgIHZvaWQgc2V0U2Vzc2lv
bklEKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBzZXRTZXNzaW9uSUQoUEFMOjpTZXNz
aW9uSUQpOwogCiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAg
ICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3U2l6
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDM3ODIyODY2
YTI3Li4wNzI3MTBiYmJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cApAQCAtMTkxLDcgKzE5MSw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIGFkZFN1
cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI+KCk7CiAjZW5kaWYKIAotICAgIG1fcGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKTsKKyAgICBtX3BsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1h
cDx1bnNpZ25lZCwgZG91YmxlPigpKTsKIAogICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFy
ZWQoKS5zZXROb3RpZmljYXRpb25DYWxsYmFjayhbdGhpc10gKFZlY3RvcjxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzPiYmIHN0YXRpc3RpY3MpIHsKICAgICAgICAgQVNTRVJUKCFzdGF0aXN0aWNzLmlz
RW1wdHkoKSk7CkBAIC01MDEsNyArNTAxLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpmdWxsS2V5Ym9h
cmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAgICAg
bV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkID0gZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsK
IH0KIAotdm9pZCBXZWJQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKIH0KQEAg
LTUxMSw3ICs1MTEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKFdURk1vdmUocGFyYW1l
dGVycykpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oc2Vzc2lv
bklEKTsKIH0KQEAgLTc5OCw5ICs3OTgsOSBAQCBzdGF0aWMgdW5zaWduZWQgaGFzaEZvclBsdWdJ
bk9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1ZwogICAg
IHJldHVybiBoYXNoZXIuaGFzaCgpOwogfQogCi1ib29sIFdlYlByb2Nlc3M6OmlzUGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBTZXNzaW9uSUQgc2Vz
c2lvbklEKQorYm9vbCBXZWJQcm9jZXNzOjppc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5z
aWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAg
IEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Pjo6
Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXMuZmluZChzZXNzaW9uSUQpOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hN
YXA8dW5zaWduZWQsIGRvdWJsZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBt
X3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7CiAgICAgSGFzaE1h
cDx1bnNpZ25lZCwgZG91YmxlPjo6Y29uc3RfaXRlcmF0b3IgaXQ7CiAgICAgYm9vbCBjb250YWlu
cyA9IGZhbHNlOwogCkBAIC04MDksNyArODA5LDcgQEAgYm9vbCBXZWJQcm9jZXNzOjppc1BsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgU2Vzc2lvbkkK
ICAgICAgICAgY29udGFpbnMgPSBpdCAhPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmVuZCgpOwog
ICAgIH0KICAgICBpZiAoIWNvbnRhaW5zKSB7Ci0gICAgICAgIHNlc3Npb25JdGVyYXRvciA9IG1f
cGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCkpOworICAgICAgICBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdp
bkhhc2hlcy5maW5kKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgICAg
ICBpdCA9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZmluZChwbHVnSW5PcmlnaW5IYXNoKTsKICAg
ICAgICAgaWYgKGl0ID09IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC04MzQsNyArODM0LDcgQEAgYm9vbCBXZWJQcm9jZXNzOjpzaG91
bGRQbHVnSW5BdXRvU3RhcnRGcm9tT3JpZ2luKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFN0cmlu
ZyYKICAgICByZXR1cm4gaXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKGhhc2hGb3JQbHVnSW5P
cmlnaW4ocGFnZU9yaWdpbiwgcGx1Z2luT3JpZ2luLCBtaW1lVHlwZSksIHdlYlBhZ2Uuc2Vzc2lv
bklEKCkpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihj
b25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNz
OjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25z
dCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogewogICAgIGlmIChwYWdlT3JpZ2luLmlzRW1wdHkoKSkgewogICAg
ICAgICBMT0coUGx1Z2lucywgIk5vdCBhZGRpbmcgZW1wdHkgcGFnZSBvcmlnaW4iKTsKQEAgLTg1
Niw3ICs4NTYsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihj
b25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZwogICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpBZGRQbHVnSW5BdXRv
U3RhcnRPcmlnaW5IYXNoKHBhZ2VPcmlnaW4sIHBsdWdJbk9yaWdpbkhhc2gsIHNlc3Npb25JRCks
IDApOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lLCBTZXNz
aW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGlt
ZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIFdoZW4gY2FsbGVkLCBzb21l
IHdlYiBwcm9jZXNzICh3aGljaCBhbHNvIG1pZ2h0IGJlIHRoaXMgb25lKSBhZGRlZCB0aGUgb3Jp
Z2luIGZvciBhdXRvLXN0YXJ0aW5nLAogICAgIC8vIG9yIHJlY2VpdmVkIHVzZXIgaW50ZXJhY3Rp
b24uCkBAIC04NjcsMTUgKzg2NywxNSBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZEFkZFBsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgZG91Ygogdm9pZCBX
ZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoY29uc3Qg
SGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPiYgaGFzaGVzKQogewogICAgIG1fcGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaGVzLmNsZWFyKCk7Ci0gICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
ZXMuYWRkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBk
b3VibGU+KCkpLml0ZXJhdG9yLT52YWx1ZS5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDx1bnNpZ25l
ZCwgZG91YmxlPiY+KGhhc2hlcykpOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
LmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVk
LCBkb3VibGU+KCkpLml0ZXJhdG9yLT52YWx1ZS5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDx1bnNp
Z25lZCwgZG91YmxlPiY+KGhhc2hlcykpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OnJlc2V0UGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKGNvbnN0IEhhc2hNYXA8U2Vzc2lvbklELCBIYXNoTWFw
PHVuc2lnbmVkLCBkb3VibGU+PiYgaGFzaGVzKQordm9pZCBXZWJQcm9jZXNzOjpyZXNldFBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNo
TWFwPHVuc2lnbmVkLCBkb3VibGU+PiYgaGFzaGVzKQogewotICAgIG1fcGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzLnN3YXAoY29uc3RfY2FzdDxIYXNoTWFwPFNlc3Npb25JRCwgSGFzaE1hcDx1
bnNpZ25lZCwgZG91YmxlPj4mPihoYXNoZXMpKTsKKyAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdp
bkhhc2hlcy5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1
bnNpZ25lZCwgZG91YmxlPj4mPihoYXNoZXMpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpwbHVn
SW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29u
c3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJh
Y3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdp
biwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIGlmIChwYWdlT3JpZ2luLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtODg0LDcg
Kzg4NCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlv
bihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0CiAgICAgaWYgKCFwbHVnSW5PcmlnaW5I
YXNoKQogICAgICAgICByZXR1cm47CiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwg
SGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25JdGVyYXRv
ciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoc2Vzc2lvbklEKTsKKyAgICBI
YXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Pjo6Y29uc3Rf
aXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMu
ZmluZChzZXNzaW9uSUQpOwogICAgIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT46OmNvbnN0X2l0
ZXJhdG9yIGl0OwogICAgIGJvb2wgY29udGFpbnMgPSBmYWxzZTsKICAgICBpZiAoc2Vzc2lvbkl0
ZXJhdG9yICE9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmVuZCgpKSB7CkBAIC04OTIs
NyArODkyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0
aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QKICAgICAgICAgY29udGFpbnMgPSBp
dCAhPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmVuZCgpOwogICAgIH0KICAgICBpZiAoIWNvbnRh
aW5zKSB7Ci0gICAgICAgIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
SGFzaGVzLmZpbmQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgICAgICBzZXNz
aW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgICAgICBpdCA9IHNlc3Npb25JdGVyYXRv
ci0+dmFsdWUuZmluZChwbHVnSW5PcmlnaW5IYXNoKTsKICAgICAgICAgaWYgKGl0ID09IHNlc3Np
b25JdGVyYXRvci0+dmFsdWUuZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMjMwLDcg
KzEyMzAsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUoKQogICAgIFBhZ2VD
YWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNvbjo6TWVtb3J5
UHJlc3N1cmUpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0
ZURhdGFUeXBlcywgV2Vic2l0ZURhdGEmIHdlYnNpdGVEYXRhKQordm9pZCBXZWJQcm9jZXNzOjpm
ZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2Vic2l0ZURhdGEmIHdlYnNpdGVEYXRhKQog
ewogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6TWVt
b3J5Q2FjaGUpKSB7CiAgICAgICAgIGZvciAoYXV0byYgb3JpZ2luIDogTWVtb3J5Q2FjaGU6OnNp
bmdsZXRvbigpLm9yaWdpbnNXaXRoQ2FjaGUoc2Vzc2lvbklEKSkKQEAgLTEyNDMsNyArMTI0Myw3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0CiAgICAgfQogfQogCi12b2lkIFdlYlByb2Nlc3M6
OmRlbGV0ZVdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRp
bWVfcG9pbnQgbW9kaWZpZWRTaW5jZSkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3
ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1v
ZGlmaWVkU2luY2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1vZGlmaWVkU2luY2UpOwogCkBAIC0x
MjYwLDcgKzEyNjAsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cAogICAgIH0KIH0KIAotdm9p
ZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFz
KQordm9pZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2luRGF0
YXMpCiB7CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBl
OjpNZW1vcnlDYWNoZSkpIHsKICAgICAgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
PiBvcmlnaW5zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggY2YyYWI4
MTNiMzcuLmVjZGIxZGY3ZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
QEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRj
aGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9IeXN0ZXJlc2lzQWN0aXZpdHkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTU2LDEzICs1NiwxNiBAQCBuYW1l
c3BhY2UgQVBJIHsKIGNsYXNzIE9iamVjdDsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBT
ZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOwogY2xhc3MgQ1BVTW9uaXRvcjsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNs
YXNzIFBhZ2VHcm91cDsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKLWNsYXNzIFNlc3Npb25JRDsK
IGNsYXNzIFVzZXJHZXN0dXJlVG9rZW47CiBzdHJ1Y3QgUGx1Z2luSW5mbzsKIHN0cnVjdCBTZWN1
cml0eU9yaWdpbkRhdGE7CkBAIC0xMjUsOCArMTI4LDggQEAgcHVibGljOgogI2VuZGlmCiAKICAg
ICBib29sIHNob3VsZFBsdWdJbkF1dG9TdGFydEZyb21PcmlnaW4oV2ViUGFnZSYsIGNvbnN0IFN0
cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpOwotICAgIHZvaWQgcGx1Z0luRGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0
cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBwbHVnSW5EaWRSZWNl
aXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OlNlc3Npb25J
RCk7CisgICAgdm9pZCBwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdl
T3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgUEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFj
dGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBzZXRQ
bHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3QgcG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3Qs
IGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3Ry
aW5nKTsKICAgICB2b2lkIHJlc2V0UGx1Z2luTG9hZENsaWVudFBvbGljaWVzKGNvbnN0IEhhc2hN
YXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4mKTsK
ICAgICB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKTsKQEAgLTE2OSwxMCArMTcyLDEw
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CiAKLSAgICB2
b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAg
ICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogICAg
IHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3Mo
KTsKICAgICB2b2lkIGFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMmJik7Ci0gICAgdm9pZCBkZXN0cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAg
IHZvaWQgZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBwYWdlRGlk
RW50ZXJXaW5kb3codWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHBhZ2VXaWxsTGVhdmVXaW5k
b3codWludDY0X3QgcGFnZUlEKTsKQEAgLTI1OSwxMCArMjYyLDEwIEBAIHByaXZhdGU6CiAgICAg
dm9pZCB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYp
IGNvbnN0OwogICAgIHZvaWQgZnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxs
S2V5Ym9hcmRBY2Nlc3NFbmFibGVkKTsKIAotICAgIGJvb2wgaXNQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0g
ICAgdm9pZCBkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9y
aWdpbkhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAg
ICBib29sIGlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5I
YXNoLCBQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwg
UEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgcmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5EZWZh
dWx0SGFzaGVzKGNvbnN0IEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4mIGhhc2hlcyk7Ci0gICAg
dm9pZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFdlYkNv
cmU6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4mIGhhc2hlcyk7CisgICAg
dm9pZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6
U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiYgaGFzaGVzKTsKIAogICAgIHZv
aWQgcGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpOwogCkBAIC0yOTAsOSArMjkzLDkg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVsZWFzZVBhZ2VDYWNoZSgpOwogCi0gICAgdm9pZCBm
ZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4sIFdlYnNpdGVEYXRhJik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJDb3Jl
OjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpOwotICAgIHZvaWQgZGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmln
aW5zKTsKKyAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+LCBXZWJzaXRlRGF0YSYpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0
ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpOworICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4m
IG9yaWdpbnMpOwogCiAgICAgdm9pZCBzZXRNZW1vcnlDYWNoZURpc2FibGVkKGJvb2wpOwogCkBA
IC0zNTIsNyArMzU1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIFJlZlB0cjxXZWJJbnNwZWN0
b3JJbnRlcnJ1cHREaXNwYXRjaGVyPiBtX3dlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXI7
CiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91
YmxlPj4gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CisgICAgSGFzaE1hcDxQQUw6OlNl
c3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4gbV9wbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoZXM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsK
IAogICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggODFmODg3ZDFiNGUu
LjA4ZjY5NzEzNzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgpAQCAtNDcsMTQgKzQ3LDE0IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQ2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAKLSAgICBF
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CisgICAgRW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiAgICAgQWRkV2Vic2l0ZURhdGFTdG9yZShzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyB3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyk7Ci0gICAgRGVzdHJveVNl
c3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBEZXN0cm95U2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKICAgICAjIFBsdWctaW5zLgotICAgIERpZEFkZFBs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2godWludDMyX3QgaGFzaCwgZG91YmxlIGV4cGlyYXRpb25U
aW1lLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIERpZEFkZFBsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2godWludDMyX3QgaGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgUmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5EZWZh
dWx0SGFzaGVzKEhhc2hNYXA8dWludDMyX3QsZG91YmxlPiBoYXNoZXMpCi0gICAgUmVzZXRQbHVn
SW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hN
YXA8dWludDMyX3QsZG91YmxlPj4gaGFzaGVzKQorICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luSGFzaGVzKEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dWludDMyX3QsZG91Ymxl
Pj4gaGFzaGVzKQogICAgIFNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3kodWludDhfdCBwb2xpY3ks
IFN0cmluZyBob3N0LCBTdHJpbmcgYnVuZGxlSWRlbnRpZmllciwgU3RyaW5nIHZlcnNpb25TdHJp
bmcpCiAgICAgUmVzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMoSGFzaE1hcDxTdHJpbmcsIEhh
c2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgdWludDhfdD4+PiBwbHVnaW5Mb2FkQ2xpZW50
UG9saWNpZXMpCiAgICAgQ2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpCkBAIC03Nyw5ICs3Nyw5
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgUmVsZWFz
ZVBhZ2VDYWNoZSgpCiAKLSAgICBGZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFU
eXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQotICAgIERl
bGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlKSAtPiAoKQotICAgIERlbGV0ZVdl
YnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpIC0+ICgpCisgICAgRmV0Y2hXZWJzaXRl
RGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRh
IHdlYnNpdGVEYXRhKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVz
LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpIC0+
ICgpCisgICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVz
LCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSAtPiAoKQogCiAg
ICAgU2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxp
c2Vjb25kcykKICAgICBTZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wgZmxhZykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKaW5kZXggMjE5Mjc4YTA5NzQuLmRmM2JiMWM0MzVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA4LTE0ICBEb24gT2xtc3RlYWQgIDxk
b24ub2xtc3RlYWRAc29ueS5jb20+CisKKyAgICAgICAgW1BBTF0gTW92ZSBTZXNzaW9uSUQgaW50
byBQQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NDE5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkRhdGFiYXNlUHJv
dmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAqIFN0b3Jh
Z2UvV2ViRGF0YWJhc2VQcm92aWRlci5oOgorCiAyMDE3LTA4LTEwICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzdG9yZWQgc3ZuOmlnbm9yZSB2YWx1ZXMgdGhh
dCB3ZW50IG1pc3Npbmcgd2hlbiB0aGUgcHJvamVjdCBnb3QgcmVuYW1lZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCA0
ZDk1OTY3MDhkNC4uZDM3MTIzY2ZlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
U3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2lu
Y2x1ZGUgIldlYkRhdGFiYXNlUHJvdmlkZXIuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIFdlYkRhdGFi
YXNlUHJvdmlkZXImIFdlYkRhdGFiYXNlUHJvdmlkZXI6OnNpbmdsZXRvbigpCiB7CkBAIC00Myw3
ICs0Myw3IEBAIFdlYkRhdGFiYXNlUHJvdmlkZXI6On5XZWJEYXRhYmFzZVByb3ZpZGVyKCkKIH0K
IAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotV2ViQ29yZTo6SURCQ2xpZW50OjpJREJD
b25uZWN0aW9uVG9TZXJ2ZXImIFdlYkRhdGFiYXNlUHJvdmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1Nl
cnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCitXZWJD
b3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViRGF0YWJhc2VQcm92aWRl
cjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYg
c2Vzc2lvbklEKQogewogICAgIGF1dG8gcmVzdWx0ID0gbV9pZGJTZXJ2ZXJNYXAuYWRkKHNlc3Np
b25JRC5zZXNzaW9uSUQoKSwgbnVsbHB0cik7CiAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92
aWRlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIu
aAppbmRleCAyYTRlYjk0NmVmNi4uM2Y1MDZkNzZjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaApAQCAtNDEsNyArNDEsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+V2ViRGF0YWJhc2VQcm92aWRlcigpOwogCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCi0gICAgV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9u
VG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6
U2Vzc2lvbklEJikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0
aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgUEFMOjpT
ZXNzaW9uSUQmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGVsZXRlQWxsRGF0YWJhc2VzKCk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5ZDhhM2VkN2RiZi4uMjc2ZGJm
ZjcwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAx
Ny0wOC0xNCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgorCisgICAgICAg
IFtQQUxdIE1vdmUgU2Vzc2lvbklEIGludG8gUEFMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViQ2FjaGUubW06CisgICAgICAgICgrW1dl
YkNhY2hlIGltYWdlRm9yVVJMOl0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbiBjb25zdCk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAgICAgICAoV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisKIDIwMTctMDgtMTMg
IE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgQ29t
cG9zaXRpb24gdW5kZXJsaW5lIGNvbG9yIGlzIGFsd2F5cyBibGFjawpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJDYWNoZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL01pc2MvV2ViQ2FjaGUubW0KaW5kZXggMmY1MDgyODc1MGQuLjI0MWJhMmY3MWJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNhY2hlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0KQEAgLTE5MSw3ICsxOTEs
NyBAQAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwotICAgIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlKiBjYWNo
ZWRSZXNvdXJjZSA9IFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5yZXNvdXJjZUZv
clJlcXVlc3QocmVxdWVzdCwgV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
OworICAgIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IFdlYkNvcmU6
Ok1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgUEFM
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgaWYgKCFpczxXZWJDb3JlOjpD
YWNoZWRJbWFnZT4oY2FjaGVkUmVzb3VyY2UpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICBXZWJDb3JlOjpDYWNoZWRJbWFnZSYgY2FjaGVkSW1hZ2UgPSBkb3duY2FzdDxXZWJDb3JlOjpD
YWNoZWRJbWFnZT4oKmNhY2hlZFJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDEwZTViYmNmMmJiLi4yODkwOWJkYWQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0zOCw2ICszOCwxMCBAQAogQGNsYXNzIFdlYkhpc3RvcnlJdGVtOwogQGNsYXNzIFdlYlJl
c291cmNlOwogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBDYWNo
ZWRGcmFtZTsKQEAgLTQ1LDcgKzQ5LDYgQEAgY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBQcm90
ZWN0aW9uU3BhY2U7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFJlc291cmNlUmVxdWVz
dDsKLWNsYXNzIFNlc3Npb25JRDsKIH0KIAogY2xhc3MgV2ViRnJhbWVMb2FkZXJDbGllbnQgOiBw
dWJsaWMgV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQgewpAQCAtNzEsNyArNzQsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MigpIGZpbmFsOwogICAgIHZvaWQgZGV0
YWNoZWRGcm9tUGFyZW50MygpIGZpbmFsOwogCi0gICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNl
TG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXZWJDb3JlOjpTZXNzaW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JikgZmluYWw7CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbQppbmRleCAxZWQwOWY3OGZkMC4uN2I0ZmQxMzA5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGV0YWNoZWRGcm9tUGFyZW50MygpCiAgICAgbV93ZWJGcmFtZS0+X3ByaXZhdGUtPndlYkZyYW1l
VmlldyA9IG5pbDsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5S
ZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwgU2Vz
c2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5S
ZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwgUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZp
ZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAgICAgU3VicmVzb3VyY2VMb2FkZXIqIG1haW5SZXNvdXJj
ZUxvYWRlciA9IGRvY3VtZW50TG9hZGVyLT5tYWluUmVzb3VyY2VMb2FkZXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDE4NjVjYTk5ZmQyLi5iYTI4MTEyN2M4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0zMiw4ICszMiw4
IEBACiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbXBv
cnQgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+Cisj
aW1wb3J0IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2Yv
Q0ZOZXR3b3JrU1BJLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC00NiwxNCArNDYsMTQgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpLCBbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKTsKLSAgICByZXR1
cm4gKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Np
b25JRCgpLCBbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKTsKKyAgICBy
ZXR1cm4gKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9u
SUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7Ci0gICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZXN0cm95U2Vz
c2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisgICAgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKTsKIH0KIAogYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QKQEAgLTk0LDcgKzk0LDcgQEAgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vz
c2lvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBpZiAoZnJh
bWUoKSAmJiBmcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpIHsKLSAg
ICAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VT
ZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSkKKyAgICAgICAgaWYg
KGF1dG8qIHNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKQogICAgICAgICAgICAgcmV0
dXJuICpzZXNzaW9uOwogICAgICAgICAvLyBTb21lIHJlcXVlc3RzIG1heSBzdGlsbCBiZSBjb21p
bmcgc2hvcnRseSBiZWZvcmUgV2ViQ29yZSB1cGRhdGVzIHRoZSBzZXNzaW9uIElEIGFuZCBhZnRl
ciBXZWJLaXQgZGVzdHJveXMgdGhlIHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbi4KICAgICAgICAg
TE9HX0VSUk9SKCJJbnZhbGlkIHNlc3Npb24gSUQuIFBsZWFzZSBmaWxlIGEgYnVnIHVubGVzcyB5
b3UganVzdCBkaXNhYmxlZCBwcml2YXRlIGJyb3dzaW5nLCBpbiB3aGljaCBjYXNlIGl0J3MgYW4g
ZXhwZWN0ZWQgcmFjZS4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggYWIyNjRh
NmQyMWMuLmY5MGZjZjAyYTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNTIs
NyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICBi
b29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3Zl
cnJpZGU7CiAgICAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7Ci0gICAgU3RyaW5nIGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKKyAgICBTdHJp
bmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwg
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRlbGV0ZUNvb2tp
ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpV
UkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Lm1tCmluZGV4IDlhYWZhNTFmZjFjLi4xYWMyZTFlYzBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbQpAQCAtOTMsNyArOTMsNyBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZQogICAg
IHJldHVybiBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uLCBm
aXJzdFBhcnR5LCB1cmwpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQorU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQogewogICAgIGF1dG8mIHNl
c3Npb24gPSBzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSA/IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSA6IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggN2M1YmVhMTJiOTkuLmY5YzFjZjAyZmI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDgtMTQgIERvbiBP
bG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBbUEFMXSBNb3ZlIFNl
c3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25s
b2FkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0Q29va2llQWNjZXB0UG9saWN5
Rm9yQWxsQ29udGV4dHMpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbiBjb25zdCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDE3LTA4LTEzICBN
YW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIENvbXBv
c2l0aW9uIHVuZGVybGluZSBjb2xvciBpcyBhbHdheXMgYmxhY2sKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAppbmRleCAzMmFiODJlNjQ0Ny4uZGUyODYxNDcwMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQzKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93
bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBTZXNzaW9uSUQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Cit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93
bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKIHsKICAgICBDT01QdHI8SVdlYkRvd25sb2FkRGVsZWdhdGU+IGRvd25sb2FkRGVsZWdh
dGU7CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggZmYwZDk0ZTg2ZTIuLmFkM2Q2NmUwOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGV0YWNoZWRGcm9tUGFy
ZW50MigpIG92ZXJyaWRlOwogICAgIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MygpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCBXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1
bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBhc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5j
cHAKaW5kZXggMDkwM2I4NjVkNjkuLjg1OTNiMmIwMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2VwdFBvbGljeUZvckFsbENvbnRleHRzKFdlYktpdENv
b2tpZQogICAgIGlmIChSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3Rv
cmFnZSA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuY29v
a2llU3RvcmFnZSgpKQogICAgICAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0
UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHBvbGljeSk7CiAKLSAgICBpZiAoYXV0byBwcml2
YXRlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKQorICAgIGlmIChhdXRvIHByaXZhdGVTZXNz
aW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25J
RDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSkKICAgICAgICAgQ0ZIVFRQQ29va2llU3RvcmFn
ZVNldENvb2tpZUFjY2VwdFBvbGljeShwcml2YXRlU2Vzc2lvbi0+Y29va2llU3RvcmFnZSgpLmdl
dCgpLCBwb2xpY3kpOwogfQogI2VuZGlmCkBAIC03MCw3ICs3MCw3IEBAIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbigpCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCi0gICAgaWYgKGF1dG8gcHJpdmF0ZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OnN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
KSkKKyAgICBpZiAoYXV0byBwcml2YXRlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkp
CiAgICAgICAgIHJldHVybiAqcHJpdmF0ZVNlc3Npb247CiAKICAgICBTdHJpbmcgYmFzZTsKQEAg
LTgxLDE3ICs4MSwxNyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogICAgIH0gZWxzZQogICAg
ICAgICBiYXNlID0gaWRlbnRpZmllckJhc2UoKTsKIAotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQoKSwgYmFzZSk7CisgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KCksIGJhc2UpOwogCiAjZW5kaWYKLSAgICByZXR1cm4gKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAg
IHJldHVybiAqTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJv
eVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQoKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29u
c3QKQEAgLTEwNCw3ICsxMDQsNyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCiAgICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpLT51c2VzRXBo
ZW1lcmFsU2Vzc2lvbigpKQotICAgICAgICByZXR1cm4gKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAg
ICAgICByZXR1cm4gKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAKICAgICByZXR1cm4gTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDRjZThjOTk4YTQxLi4xYzM0NjE4NzUwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC05MCw3ICs5MCw3IEBAIFN0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5l
dHdvcmtTdG9yYWdlCiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCitT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
VVJMJiB1cmwpCiB7CiAgICAgYXV0byYgc2Vzc2lvbiA9IHNlc3Npb25JRC5pc0VwaGVtZXJhbCgp
ID8gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bigpIDogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKICAg
ICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbiwg
Zmlyc3RQYXJ0eSwgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggMmMxMzky
NzA1ZWUuLjE2NDM3ZjU1MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNDks
NyArNDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzRnJvbURPTShj
b25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZp
cnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVS
TCYpOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNv
bnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJik7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpOworICAgIHZpcnR1YWwg
U3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJM
JiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQ29v
a2llKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6
OlVSTCYsIGNvbnN0IFN0cmluZyYpOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318187</attachid>
            <date>2017-08-15 15:40:31 -0700</date>
            <delta_ts>2017-08-15 16:04:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174192.diff</filename>
            <type>text/plain</type>
            <size>389823</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDk2ODE4MDg4YzguLmMxM2Q4NGJmNTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjE1OCw3ICsyMTU4LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEu
Y3BwCiAgICAgcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKLSAgICBwYWdlL1Nlc3Npb25JRC5jcHAK
ICAgICBwYWdlL1NldHRpbmdzLmNwcAogICAgIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCiAgICAg
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MDAzNjM1NDRhZi4uNGI2
YTI1ZWRhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMTQgQEAKIDIwMTctMDgtMTUgIERvbiBP
bG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAorICAgICAgICBbUEFMXSBNb3ZlIFNl
c3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0
KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXNzaW9u
SUQgY29uc3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVsZW1lbnRXaXRoSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVu
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrc0FyZVJlYWR5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFMb2FkaW5nRmFpbGVkRmF0YWxseSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUxvYWRpbmdGYWlsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphZGRQbGF5ZWRSYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWVrVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpyZWZyZXNoQ2FjaGVkVGltZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFdlYmtpdFByZXNlcnZlc1BpdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojp0b2dnbGVQbGF5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6YmVnaW5TY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlbW92ZVRleHRUcmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpjb250cm9sbGVySlNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50Ojpjb25maWd1cmVUZXh0VHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojpzb3VyY2VXYXNBZGRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50Ojpzb3VyY2VXYXNSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cG90ZW50aWFsbHlQbGF5aW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkUGxheWJhY2sgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RvcHBlZER1ZVRvRXJyb3JzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6aXNGdWxsc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnRvZ2dsZVN0YW5kYXJkRnVsbHNjcmVlblN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJlZEZvcklubGluZVRoZW4pOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlVGV4dFRyYWNrRGlzcGxheSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFj
a0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFH
cm91cCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVy
Rm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aXNCbG9j
a2VkT25NZWRpYUNvbnRyb2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cHJlcGFyZU1lZGlhRnJhZ21lbnRVUkkpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpmaWxlU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVNlc3Npb25UaXRsZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpuZWVkc1NlZWtpbmdTdXBwb3J0UXVpcmspOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6c3VwcG9ydHNTZWVraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmRvZXNIYXZlQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmlzVmlkZW9Ub29TbWFsbEZvcklubGluZVBsYXliYWNr
KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZEZvbnQ6OkNhY2hlZEZvbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250
Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2Vz
c2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0Rv
Y3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0RvY3VtZW50Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udCk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6Q2Fj
aGVkU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0Lmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFRleHRUcmFjay5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xT
dHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhTTFN0eWxlU2hlZXQ6OkNh
Y2hlZFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHls
ZVNoZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpzZXNzaW9uUmVzb3VyY2VNYXAgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpmb3JFYWNoU2Vzc2lvblJlc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6b3JpZ2luc1dpdGhDYWNoZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZpY3RSZXNvdXJjZXMpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25p
dG9yQ29jb2EuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6OnNlc3Npb25J
RCBjb25zdCk6CisgICAgICAgICogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2lu
Z1N0b3JlQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6RGlz
a0NhY2hlTW9uaXRvcik6CisgICAgICAgICogcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oOgor
ICAgICAgICAqIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmVuYWJsZUxlZ2FjeVByaXZhdGVCcm93c2luZyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vzc2lvbklE
KToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1BsdWdJbkNsaWVudC5o
OgorICAgICAgICAqIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6CisgICAgICAgICogcGFn
ZS9Tb2NrZXRQcm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL0Nvb2tpZXNTdHJhdGVneS5o
OgorICAgICAgICAqIHBsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHA6CisgICAg
ICAgIChXVEY6OlBBTDo6U2Vzc2lvbklEPjo6Y29weSk6CisgICAgICAgIChXVEY6OldlYkNvcmU6
OlNlc3Npb25JRD46OmNvcHkpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1dlYkNvcmVD
cm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhlYWRlclZhbHVlRm9yVmFyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OnZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb246Omdsb2JhbFNlc3Npb25NYXApOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3Jh
Z2VTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVT
ZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
Q0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29j
a2V0U3RyZWFtSGFuZGxlSW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Nv
Y2tldFN0cmVhbUhhbmRsZUltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhh
bmRsZUltcGw6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3
VGVzdGluZ1Nlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVh
bUhhbmRsZUltcGw6OmNyZWF0ZSk6CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRocmVhZDo6
RGVkaWNhdGVkV29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVk
aWNhdGVkV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxT
Y29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkU3RhcnR1cERh
dGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6V29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25QYXJhbWV0ZXJz
Lmg6CisKKzIwMTctMDgtMTUgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4K
KwogICAgICAgICBbUEFMXSBNb3ZlIFNsZWVwIGNsYXNzZXMgaW50byBQQUwKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ1NgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAK
aW5kZXggZjEyMWUyNTFkY2MuLjdiNTFlYzMxNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0xMjAsNyAr
MTIwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgcmVxdWVz
dGVkVVJMLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQogICAgIGlmIChGcmFtZSogZnJhbWUgPSBt
X2RvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgIHJlZigpOwogICAgICAgICBQYWdlKiBwYWdl
ID0gZnJhbWUtPnBhZ2UoKTsKLSAgICAgICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IHBhZ2UgPyBw
YWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAgICAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBwYWdlID8gcGFnZS0+c2Vzc2lvbklEKCkgOiBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgICAgICBTdHJpbmcgcGFydGl0
aW9uID0gbV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLmRvbWFpbkZv
ckNhY2hlUGFydGl0aW9uKCk7CiAgICAgICAgIG1faGFuZGxlID0gbV9zb2NrZXRQcm92aWRlci0+
Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKG1faGFuZHNoYWtlLT51cmwoKSwgKnRoaXMsIHNlc3Np
b25JRCwgcGFydGl0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjYzZjNDAzODc0
Mi4uNTVjNjE1OTdmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDE3
LTA4LTE1ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKKyAgICAgICAg
W1BBTF0gTW92ZSBTZXNzaW9uSUQgaW50byBQQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDE5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGFsL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHBhbC9pZGVudGlmaWVyL1Nl
c3Npb25JRC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5j
cHAuCisgICAgICAgICogcGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oLgorICAgICAgICAoV1RGOjpTZXNzaW9uSURI
YXNoOjpoYXNoKToKKyAgICAgICAgKFdURjo6U2Vzc2lvbklESGFzaDo6ZXF1YWwpOgorICAgICAg
ICAoV1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6ZW1wdHlWYWx1ZSk6CisgICAgICAg
IChXVEY6Okhhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUp
OgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6aXNEZWxldGVkVmFs
dWUpOgorCisyMDE3LTA4LTE1ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+
CisKICAgICAgICAgW1BBTF0gTW92ZSBTbGVlcCBjbGFzc2VzIGludG8gUEFMCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0NTYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5NDQ4
MWVlZjkwLi44YzA4ZTI1NmJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzUsNiArNzUsOCBAQAogCQlBM0FCNkU2MTFGM0Qx
RTM5MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBM0FCNkU1RjFGM0QxRTM5MDA5QzE0QjEgLyogU2xl
ZXBEaXNhYmxlckNvY29hLmggKi87IH07CiAJCUEzQUI2RTY0MUYzRDIxN0YwMDlDMTRCMSAvKiBT
eXN0ZW1TbGVlcExpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBM0FCNkU2MjFGM0QyMTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0
ZW5lck1hYy5oICovOyB9OwogCQlBM0FCNkU2NTFGM0QyMTdGMDA5QzE0QjEgLyogU3lzdGVtU2xl
ZXBMaXN0ZW5lck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEEzQUI2RTYzMUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFj
Lm1tICovOyB9OworCQlBM0RCQURCNDFGNDM3MDM0MDAwRUEwNEQgLyogU2Vzc2lvbklELmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzREJBREIyMUY0
MzcwMzQwMDBFQTA0RCAvKiBTZXNzaW9uSUQuY3BwICovOyB9OworCQlBM0RCQURCNTFGNDM3MDM0
MDAwRUEwNEQgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBM0RCQURCMzFGNDM3MDM0MDAwRUEwNEQgLyogU2Vzc2lvbklELmggKi87
IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29udGFp
bmVySXRlbVByb3h5IHNlY3Rpb24gKi8KQEAgLTE0OCw2ICsxNTAsOCBAQAogCQlBM0FCNkU1RjFG
M0QxRTM5MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlckNvY29hLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFNsZWVwRGlzYWJsZXJDb2NvYS5oOyBwYXRoID0gc3lzdGVtL2NvY29h
L1NsZWVwRGlzYWJsZXJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBM0FC
NkU2MjFGM0QyMTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLmg7IHBhdGgg
PSBzeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTNBQjZFNjMxRjNEMjE3RjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVu
ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTeXN0ZW1T
bGVlcExpc3RlbmVyTWFjLm1tOyBwYXRoID0gc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVy
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBM0RCQURCMjFGNDM3MDM0MDAw
RUEwNEQgLyogU2Vzc2lvbklELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFNlc3Npb25JRC5jcHA7IHBhdGggPSBpZGVudGlmaWVyL1Nlc3Npb25JRC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEzREJBREIzMUY0MzcwMzQwMDBFQTA0RCAvKiBTZXNz
aW9uSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2Vzc2lvbklELmg7IHBh
dGggPSBpZGVudGlmaWVyL1Nlc3Npb25JRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMjE0N0E0QTFFRkQwQUE2MDAwNTZGQTUgLyogQ29weVBBTEhlYWRlcnMueGNjb25maWcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQ29weVBBTEhlYWRlcnMueGNjb25maWc7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9u
ICovCiAKQEAgLTI1MSw2ICsyNTUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKIAkJCQkxQzA5RDA1MTFFMzFDNDEyMDA3MjVGMTggLyogY3J5cHRvICovLAorCQkJCUEz
REJBREIxMUY0MzcwMUIwMDBFQTA0RCAvKiBpZGVudGlmaWVyICovLAogCQkJCTBDMkRBMDY1MUYz
M0NBMzMwMERCQzMxNyAvKiBzcGkgKi8sCiAJCQkJQTM3ODhFOUYxRjA1QjdDRTAwNjc5NDI1IC8q
IHN5c3RlbSAqLywKIAkJCQlBMzBENDExRDFGMEREMEFDMDBCNzE5NTQgLyogdGV4dCAqLywKQEAg
LTM0MSw2ICszNDYsMTUgQEAKIAkJCW5hbWUgPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCUEzREJBREIxMUY0MzcwMUIwMDBFQTA0RCAvKiBpZGVudGlmaWVyICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlBM0RCQURCMjFG
NDM3MDM0MDAwRUEwNEQgLyogU2Vzc2lvbklELmNwcCAqLywKKwkJCQlBM0RCQURCMzFGNDM3MDM0
MDAwRUEwNEQgLyogU2Vzc2lvbklELmggKi8sCisJCQkpOworCQkJbmFtZSA9IGlkZW50aWZpZXI7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogLyogRW5kIFBCWEdyb3VwIHNlY3Rp
b24gKi8KIAogLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMzQ4
LDEyICszNjIsOSBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQTNBQjZFNTYxRjNEMURE
QjAwOUMxNEIxIC8qIFNsZWVwRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUEzQUI2RTYx
MUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyQ29jb2EuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBDMkRBMTNFMUYzQkVCNDkwMERCQzMxNyAvKiBBVktpdFNQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEMyREEwNkQxRjMzQ0E4NDAwREJDMzE3IC8qIENGTG9jYWxlU1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTA2RTFGMzNDQTg0MDBEQkMzMTcgLyogQ0ZOZXR3b3JrQ29ubmVjdGlv
bkNhY2hlU1BJLmggaW4gSGVhZGVycyAqLywKLQkJCQlBM0FCNkU2NDFGM0QyMTdGMDA5QzE0QjEg
LyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREEwNkYx
RjMzQ0E4NDAwREJDMzE3IC8qIENGTmV0d29ya1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMy
REExM0YxRjNCRUI0OTAwREJDMzE3IC8qIENGTlNVUkxDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTA3MDFGMzNDQTg0MDBEQkMzMTcgLyogQ0ZVdGlsaXRpZXNTUEkuaCBp
biBIZWFkZXJzICovLApAQCAtMzg2LDEyICszOTcsMTYgQEAKIAkJCQkwQzJEQTE1MjFGM0JFQjQ5
MDBEQkMzMTcgLyogTlNVUkxDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJE
QTE1MzFGM0JFQjQ5MDBEQkMzMTcgLyogTlNVUkxEb3dubG9hZFNQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEMyREExNTQxRjNCRUI0OTAwREJDMzE3IC8qIE5TVVJMRmlsZVR5cGVNYXBwaW5nc1NQ
SS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTNBQjZFNTgxRjNEMUREQjAwOUMxNEIxIC8qIFN5c3Rl
bVNsZWVwTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU1MUYzQkVCNDkwMERC
QzMxNyAvKiBQYXNzS2l0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE1NjFGM0JFQjQ5
MDBEQkMzMTcgLyogcHRocmVhZFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTcxRjNC
RUI0OTAwREJDMzE3IC8qIFF1YXJ0ekNvcmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRB
MTU4MUYzQkVCNDkwMERCQzMxNyAvKiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQlB
M0RCQURCNTFGNDM3MDM0MDAwRUEwNEQgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBM0FCNkU1NjFGM0QxRERCMDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTNBQjZFNjExRjNEMUUzOTAwOUMxNEIxIC8qIFNsZWVwRGlzYWJsZXJDb2NvYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlBM0FCNkU1ODFGM0QxRERCMDA5QzE0QjEgLyogU3lzdGVtU2xl
ZXBMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTNBQjZFNjQxRjNEMjE3RjAwOUMxNEIx
IC8qIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU5
MUYzQkVCNDkwMERCQzMxNyAvKiBXZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAt
NDgxLDE1ICs0OTYsMTYgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCUEzQUI2RTY1MUYz
RDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0
by5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBM0FCNkU1MjFGM0QxREM1MDA5QzE0QjEgLyogU2xl
ZXBEaXNhYmxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBM0FCNkU2MDFGM0QxRTM5MDA5QzE0
QjEgLyogU2xlZXBEaXNhYmxlckNvY29hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0MTI1
MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEz
MEQ0MTIyMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQTNEQkFEQjQxRjQzNzAzNDAwMEVBMDREIC8qIFNlc3Npb25JRC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBM0FCNkU1MjFGM0QxREM1MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlBM0FCNkU2MDFGM0QxRTM5MDA5QzE0QjEgLyogU2xlZXBEaXNh
YmxlckNvY29hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzNzg4RTlFMUYwNUI3OEUwMDY3OTQy
NSAvKiBTb3VuZE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEzNzg4RTlDMUYwNUI3ODIwMDY3
OTQyNSAvKiBTb3VuZE5vbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNBQjZFNTcxRjNEMURE
QjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QTNBQjZFNjUxRjNEMjE3RjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0NNYWtlTGlzdHMudHh0CmluZGV4IDYxNDNl
OTRmNTkxLi5lOWIwNWMyYzNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0NNYWtlTGlzdHMudHh0
CkBAIC0xLDQgKzEsNSBAQAogc2V0KFBBTF9TT1VSQ0VTCisgICAgaWRlbnRpZmllci9TZXNzaW9u
SUQuY3BwCiAgICAgc3lzdGVtL1NsZWVwRGlzYWJsZXIuY3BwCiAgICAgc3lzdGVtL1N5c3RlbVNs
ZWVwTGlzdGVuZXIuY3BwCiApCkBAIC0xMCw2ICsxMSw3IEBAIHNldChQQUxfSU5DTFVERV9ESVJF
Q1RPUklFUwogc2V0KFBBTF9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtQQUxf
RElSfS9wYWwiCiAgICAgIiR7UEFMX0RJUn0vcGFsL2NyeXB0byIKKyAgICAiJHtQQUxfRElSfS9w
YWwvaWRlbnRpZmllciIKICAgICAiJHtQQUxfRElSfS9wYWwvc3lzdGVtIgogICAgICIke1BBTF9E
SVJ9L3BhbC90ZXh0IgogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9u
SUQuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5jcHAK
c2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9TZXNz
aW9uSUQuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmNwcAppbmRleCAyZTE1OTUwOGM3Mi4uYzQyMzVlNGQ5N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFBB
TCB7CiAKIHN0YXRpYyB1aW50NjRfdCBjdXJyZW50UGVyc2lzdGVudElEID0gU2Vzc2lvbklEOjpE
ZWZhdWx0U2Vzc2lvbklEOwogc3RhdGljIHVpbnQ2NF90IGN1cnJlbnRFcGhlbWVyYWxJRCA9IFNl
c3Npb25JRDo6TGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKQEAgLTYwLDQgKzYwLDQgQEAgU2Vzc2lv
bklEIFNlc3Npb25JRDo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICByZXR1cm4gU2Vzc2lvbklE
IHsgbV9zZXNzaW9uSUQgfTsKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1l
c3BhY2UgUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oCnNpbWlsYXJpdHkg
aW5kZXggODAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmgKcmVu
YW1lIHRvIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaAppbmRl
eCAzNzhmNjg5ZDE3NC4uZGVmNDk3ZTk0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2Vzc2lvbklELmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9pZGVudGlmaWVyL1Nl
c3Npb25JRC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Citu
YW1lc3BhY2UgUEFMIHsKIAogY2xhc3MgU2Vzc2lvbklEIHsKIHB1YmxpYzoKQEAgLTUzLDkgKzUz
LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lv
bklEICE9IEhhc2hUYWJsZUVtcHR5VmFsdWVJRCAmJiBtX3Nlc3Npb25JRCAhPSBIYXNoVGFibGVE
ZWxldGVkVmFsdWVJRDsgfQogICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdCB7IHJldHVybiBt
X3Nlc3Npb25JRCAmIEVwaGVtZXJhbFNlc3Npb25NYXNrICYmIG1fc2Vzc2lvbklEICE9IEhhc2hU
YWJsZURlbGV0ZWRWYWx1ZUlEOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU2Vzc2lv
bklEIGdlbmVyYXRlRXBoZW1lcmFsU2Vzc2lvbklEKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFNlc3Npb25JRCBnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOworICAgIFBB
TF9FWFBPUlQgc3RhdGljIFNlc3Npb25JRCBnZW5lcmF0ZUVwaGVtZXJhbFNlc3Npb25JRCgpOwor
ICAgIFBBTF9FWFBPUlQgc3RhdGljIFNlc3Npb25JRCBnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9u
SUQoKTsKKyAgICBQQUxfRVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZUdlbmVyYXRpb25Qcm90ZWN0
aW9uKCk7CiAKICAgICB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Np
b25JRDsgfQogICAgIGJvb2wgb3BlcmF0b3I9PShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7
IHJldHVybiBtX3Nlc3Npb25JRCA9PSBzZXNzaW9uSUQubV9zZXNzaW9uSUQ7IH0KQEAgLTkzLDIy
ICs5MywyMiBAQCBib29sIFNlc3Npb25JRDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlc3Np
b25JRCYgc2Vzc2lvbklEKQogICAgIHJldHVybiB0cnVlOwogfQogCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCit9IC8vIG5hbWVzcGFjZSBQQUwKIAogbmFtZXNwYWNlIFdURiB7CiAKIHN0cnVjdCBT
ZXNzaW9uSURIYXNoIHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJDb3JlOjpT
ZXNzaW9uSUQmIHApIHsgcmV0dXJuIGludEhhc2gocC5zZXNzaW9uSUQoKSk7IH0KLSAgICBzdGF0
aWMgYm9vbCBlcXVhbChjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIGEsIGNvbnN0IFdlYkNvcmU6
OlNlc3Npb25JRCYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgUEFMOjpTZXNzaW9uSUQmIHApIHsgcmV0dXJuIGludEhhc2gocC5zZXNzaW9uSUQo
KSk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBQQUw6OlNlc3Npb25JRCYgYSwgY29u
c3QgUEFMOjpTZXNzaW9uSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQogICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07Ci10ZW1wbGF0
ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25JRD4gOiBHZW5lcmljSGFzaFRy
YWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+IHsKLSAgICBzdGF0aWMgV2ViQ29yZTo6U2Vzc2lvbklE
IGVtcHR5VmFsdWUoKSB7IHJldHVybiBXZWJDb3JlOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklE
KCk7IH0KK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+IDogR2Vu
ZXJpY0hhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+IHsKKyAgICBzdGF0aWMgUEFMOjpTZXNzaW9u
SUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFBBTDo6U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgp
OyB9CiAKLSAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6U2Vz
c2lvbklEJiBzbG90KSB7IHNsb3QgPSBXZWJDb3JlOjpTZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0
ZWRWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29y
ZTo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90ID09IFdlYkNvcmU6OlNlc3Npb25JRDo6
aGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxl
dGVkVmFsdWUoUEFMOjpTZXNzaW9uSUQmIHNsb3QpIHsgc2xvdCA9IFBBTDo6U2Vzc2lvbklEOjpo
YXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVl
KGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90ID09IFBBTDo6U2Vzc2lv
bklEOjpoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQogfTsKLXRlbXBsYXRlPD4gc3RydWN0IERl
ZmF1bHRIYXNoPFdlYkNvcmU6OlNlc3Npb25JRD4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVs
dEhhc2g8UEFMOjpTZXNzaW9uSUQ+IHsKICAgICB0eXBlZGVmIFNlc3Npb25JREhhc2ggSGFzaDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA0OWJjNWQwNGIyOS4uNDYzM2I4YzRhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxOTMsNyArMjE5Myw2
IEBACiAJCTUxMUVGMkNBMTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQlRyYW5zYWN0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVGMkI0MTdG
MEZDNDgwMEU0RkExNiAvKiBKU0lEQlRyYW5zYWN0aW9uLmNwcCAqLzsgfTsKIAkJNTExRUYyQ0Ix
N0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2OTIzOTkxMTUwNUUxQUEwMDlF
NTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgKi87IH07CiAJCTUxMUVGMkQxMTdG
MEZERjEwMEU0RkExNiAvKiBKU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVGMkNFMTdGMEZERjEwMEU0RkEx
NiAvKiBKU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcCAqLzsgfTsKLQkJNTExRjdENDQxRUIxQzM5
MTAwRTQ3QjgzIC8qIFNlc3Npb25JRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTFGN0Q0MzFFQjFDMzg5MDBFNDdCODMgLyogU2Vzc2lvbklELmNw
cCAqLzsgfTsKIAkJNTEyMEJCQUUxRjFDRThDRTAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNl
cnZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MjBCQkFDMUYxQ0U3NzAwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIubW0gKi87IH07
CiAJCTUxMjBCQkFGMUYxQ0VDRTcwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjBCQkFEMUYx
Q0U3NzAwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTJCREI0QTFDNDU2RkY1MDA2NDk0
REYgLyogU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkJEQjQ4MUM0NTZGQUIwMDY0OTRERiAvKiBTUUxpdGVJ
REJCYWNraW5nU3RvcmUuY3BwICovOyB9OwpAQCAtMzAwMCw3ICsyOTk5LDYgQEAKIAkJNzU0MTMz
QUExMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTkxMDJFMDBGNDAw
MDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwICovOyB9OwogCQk3NTUzQ0ZFODEw
OEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUg
LyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NTNDRkU5MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeS5jcHAgKi87IH07Ci0JCTc1NkIyQ0UxMThCNzEwMTYwMEZFQ0ZBQSAv
KiBTZXNzaW9uSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTc5M0U4MzBEMENFMEIzMDA3
RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQu
Y3BwICovOyB9OwogCQk3NTc5M0U4NDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MTBE
MENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi87IH07CiAJCTc1NzkzRUM4MEQwQ0U3
MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VDNjBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNz
YWdlRXZlbnQuY3BwICovOyB9OwpAQCAtOTkzNCw3ICs5OTMyLDYgQEAKIAkJNTExRUYyQjMxN0Yw
RkM0ODAwRTRGQTE2IC8qIEpTSURCUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lE
QlJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFRjJCNDE3RjBG
QzQ4MDBFNEZBMTYgLyogSlNJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0lEQlRyYW5zYWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRUYy
Q0UxN0YwRkRGMTAwRTRGQTE2IC8qIEpTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJPYmplY3RTdG9yZUN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMUY3RDQzMUVCMUMzODkwMEU0N0I4MyAv
KiBTZXNzaW9uSUQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Vz
c2lvbklELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRkFFQTkxQkRDOTg5
QTAwQjRBRkU0IC8qIFRocmVhZFNhZmVEYXRhQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRocmVhZFNhZmVEYXRhQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMjBCQkFDMUYxQ0U3NzAwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb29raWVTdG9y
YWdlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjBCQkFEMUYx
Q0U3NzAwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ29va2llU3RvcmFnZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMTAyOCw3ICsxMTAyNSw2IEBACiAJCTc1NDEzM0E5MTAyRTAwRjQw
MDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVS
ZWNvcmRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNzEw
OEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNz
aW9uSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vzc2lvbklELmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBN
ZXNzYWdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1l
c3NhZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzkzRTgxMEQw
Q0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lc3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
NTc5M0U4MjBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEyNDkwLDggKzEyNDg2LDggQEAKIAkJOUIwOThCREUxRjNENjczRDAwMkRENTYyIC8qIEpT
RGF0YVRyYW5zZmVySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rh
dGFUcmFuc2Zlckl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwOThCREYx
RjNENjczRDAwMkRENTYyIC8qIEpTRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDk4QkUwMUYzRDY3M0QwMDJERDU2MiAvKiBK
U0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRGF0YVRyYW5zZmVySXRlbUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OUIwOThCRTYxRjNENkFGNjAwMkRENTYyIC8qIEpTU3RyaW5nQ2FsbGJhY2suY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNTdHJpbmdDYWxsYmFjay5jcHA7IHBhdGgg
PSBKU1N0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUIw
OThCRTcxRjNENkFGNjAwMkRENTYyIC8qIEpTU3RyaW5nQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSlNTdHJpbmdDYWxsYmFjay5oOyBwYXRoID0gSlNTdHJpbmdD
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjA5OEJFNjFGM0Q2QUY2
MDAyREQ1NjIgLyogSlNTdHJpbmdDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1N0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOUIwOThCRTcxRjNENkFGNjAwMkRENTYyIC8qIEpTU3RyaW5nQ2FsbGJhY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdDYWxsYmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjBGRTg3MzFEOUUwMkRGMDA0QThBQ0IgLyogRG9j
dW1lbnRPclNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50T3JT
aGFkb3dSb290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxMzI1N0IxRjNE
MkFCQTAwREFBQjY5IC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8qIFNoYWRvd1Jv
b3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTk0NDEsOCArMTk0MzcsNiBAQAogCQkJCUJDRDBFMEY5MEU5
NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLywKIAkJCQk5NzREMkRBMjE0
NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuY3BwICovLAogCQkJCTk3NEQyREEzMTQ2
QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5oICovLAotCQkJCTUxMUY3RDQzMUVCMUMz
ODkwMEU0N0I4MyAvKiBTZXNzaW9uSUQuY3BwICovLAotCQkJCTc1NkIyQ0UwMThCNzEwMTYwMEZF
Q0ZBQSAvKiBTZXNzaW9uSUQuaCAqLywKIAkJCQkxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIgLyog
U2V0dGluZ3MuY3BwICovLAogCQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5n
cy5oICovLAogCQkJCUJDNTlERUY4MTY5REVEQzMwMDE2QUMzNCAvKiBTZXR0aW5ncy5pbiAqLywK
QEAgLTI5NDczLDI0ICsyOTQ2NywxNSBAQAogCQkJCTUxNkY3RjZEMUMzMUUzOUEwMEYxMTFEQyAv
KiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDkzQUVFMzE5REY1
NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFGMTc1NUQxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTUxODJDMjNGMUYzMTNBMDkwMDU5QkE3QyAvKiBTZXJ2aWNlV29ya2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU1RjFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdv
cmtlckNvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE4MkMyNDExRjMxM0EwOTAwNTlC
QTdDIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3
NTYxMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTUxODJDMjQzMUYzMTNBMDkwMDU5QkE3QyAvKiBTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTYzMUYzRUJDODMwMEM3NDk1MCAv
KiBTZXJ2aWNlV29ya2VySm9iLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTFDQTY3RTFGMzkwNUE2
MDAxOUUwNzQgLyogU2VydmljZVdvcmtlckpvYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1
NjQxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJKb2JDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTUxMUNBNjgwMUYzOTMzMUYwMDE5RTA3NCAvKiBTZXJ2aWNlV29ya2VySm9iQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTFDQTY3QTFGMzkwNEIxMDAxOUUwNzQgLyogU2Vy
dmljZVdvcmtlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2NjFGM0VCQzgz
MDBDNzQ5NTAgLyogU2VydmljZVdvcmtlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUYxNzU2ODFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTE4MkMyNDUxRjMxM0EwOTAwNTlCQTdDIC8qIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTY5MUYzRUJDODMwMEM3
NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFGMTc1NkIxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2QzFGM0VCQzgzMDBDNzQ5
NTAgLyogU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmggaW4gSGVhZGVycyAqLywKLQkJCQk1
MUYxNzRGRjFGMzU4OTk3MDBDNzQ5NTAgLyogU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk3NTZCMkNFMTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklE
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxMDA5OUU2NDkyMDA1NkU1ODEgLyogU2V0Tm9k
ZUF0dHJpYnV0ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUI4REJEQjRDMTMwQjBGOEEw
MEY1Q0RCMSAvKiBTZXRTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Yx
OTk0RjA4MjQ1RTU5MDAxRTlBQkMgLyogU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLApAQCAtMzMz
MzgsMjAgKzMzMzIzLDEyIEBACiAJCQkJNTE2RjdGNkUxQzMxRTM5QzAwRjExMURDIC8qIFNlcnZl
ck9wZW5EQlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5M0FFRTQxOURGNTY0MTAw
MkE4NkMzIC8qIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MUYxNzU1QzFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlci5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk1MTgyQzIzRTFGMzEzQTA5MDA1OUJBN0MgLyogU2VydmljZVdvcmtlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MUYxNzU1RTFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdv
cmtlckNvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTgyQzI0MDFGMzEzQTA5MDA1
OUJBN0MgLyogU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1
MTgyQzI0MjFGMzEzQTA5MDA1OUJBN0MgLyogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxRjE3NTYwMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMTc1NjIxRjNFQkM4MzAw
Qzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJKb2IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTExQ0E2
N0QxRjM5MDVBNjAwMTlFMDc0IC8qIFNlcnZpY2VXb3JrZXJKb2IuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNTExQ0E2NzkxRjM5MDRCMTAwMTlFMDc0IC8qIFNlcnZpY2VXb3JrZXJQcm92aWRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYxNzU2NTFGM0VCQzgzMDBDNzQ5NTAgLyogU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjE3NTY3MUYzRUJDODMw
MEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTUxODJDMjQ0MUYzMTNBMDkwMDU5QkE3QyAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjE3NTZBMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1
MTFDQTY4MzFGM0EzQ0Q5MDAxOUUwNzQgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblBhcmFt
ZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTExRjdENDQxRUIxQzM5MTAwRTQ3QjgzIC8q
IFNlc3Npb25JRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUwRjA5OUU2NDkyMDA1NkU1
ODEgLyogU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjhE
QkRCNEIxMzBCMEY4QTAwRjVDREIxIC8qIFNldFNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTRDOUE1RUEwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZmE3MDhjZWU4NjUuLmY3MmZl
ZTdlNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ2NzEsNyArNDY3MSw3IEBAIFVS
TCBEb2N1bWVudDo6Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiAgICAgcmV0
dXJuIGNvbXBsZXRlVVJMKHVybCwgbV9iYXNlVVJMKTsKIH0KIAotU2Vzc2lvbklEIERvY3VtZW50
OjpzZXNzaW9uSUQoKSBjb25zdAorUEFMOjpTZXNzaW9uSUQgRG9jdW1lbnQ6OnNlc3Npb25JRCgp
IGNvbnN0CiB7CiAgICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IG1fc2Vzc2lvbklEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBjZmI3MjA1MDE2Yi4uZjM2MjA2
OWVlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAi
UmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlN0cmluZ1dp
dGhEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRl
eHRSZXNvdXJjZURlY29kZXIuaCIKQEAgLTU0LDYgKzUzLDcgQEAKICNpbmNsdWRlICJVc2VyQWN0
aW9uRWxlbWVudFNldC5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVk
ZSA8bWVtb3J5PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC02NDIsNyArNjQyLDcgQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwog
ICAgIFVSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBVUkwmIGJhc2VVUkxPdmVy
cmlkZSkgY29uc3Q7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOworICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOwogCiAgICAgU3RyaW5nIHVz
ZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKIApAQCAtMTgxMCw3ICsxODEwLDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAgICAgT3JpZW50YXRpb25Ob3RpZmllciBtX29yaWVudGF0aW9u
Tm90aWZpZXI7Ci0gICAgbXV0YWJsZSBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgbXV0YWJs
ZSBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIAogICAgIHN0YXRpYyBib29sIGhhc0V2ZXJD
cmVhdGVkQW5BWE9iamVjdENhY2hlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCmluZGV4IGYwNzEzMzczNDdhLi4zMmYxOWMzMDNmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC01MCw2ICs1MCwxMCBA
QCBjbGFzcyBDb25zb2xlTWVzc2FnZTsKIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIH0KIAorbmFt
ZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ2FjaGVkU2NyaXB0OwpAQCAtNjEsNyArNjUsNiBAQCBjbGFzcyBQdWJsaWNVUkxN
YW5hZ2VyOwogY2xhc3MgUmVqZWN0ZWRQcm9taXNlVHJhY2tlcjsKIGNsYXNzIFJlc291cmNlUmVx
dWVzdDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2Vzc2lvbklEOwogY2xhc3MgU29j
a2V0UHJvdmlkZXI7CiBjbGFzcyBVUkw7CiAKQEAgLTgyLDcgKzg1LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBjb25zdCBVUkwmIHVybCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFVSTCBj
b21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgU2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChj
b25zdCBVUkwmKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IGU3YmQzM2UyZTU3Li44MDZmNmViZGYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC04MiwxMyArODIsMTMgQEAKICNpbmNsdWRlICJT
Y3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUaW1lUmFu
Z2VzLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNl
ckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVy
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0FsZ29y
aXRobXMuaD4KQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgdm9pZCBjbGVhckZsYWdzKHVuc2ln
bmVkJiB2YWx1ZSwgdW5zaWduZWQgZmxhZ3MpCiB7CiAgICAgdmFsdWUgJj0gfmZsYWdzOwogfQot
ICAgIAorCiAjaWYgIUxPR19ESVNBQkxFRAogc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nTWVk
aWEoY29uc3QgVVJMJiB1cmwpCiB7CkBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIFN0cmluZyBh
Y3Rpb25OYW1lKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6RGVsYXllZEFjdGlvblR5cGUgYWN0aW9u
KQogI2VuZGlmCiAKICNpZm5kZWYgTE9HX01FRElBX0VWRU5UUwotLy8gRGVmYXVsdCB0byBub3Qg
bG9nZ2luZyBldmVudHMgYmVjYXVzZSBzbyBtYW55IGFyZSBnZW5lcmF0ZWQgdGhleSBjYW4gb3Zl
cndoZWxtIHRoZSByZXN0IG9mIAorLy8gRGVmYXVsdCB0byBub3QgbG9nZ2luZyBldmVudHMgYmVj
YXVzZSBzbyBtYW55IGFyZSBnZW5lcmF0ZWQgdGhleSBjYW4gb3ZlcndoZWxtIHRoZSByZXN0IG9m
CiAvLyB0aGUgbG9nZ2luZy4KICNkZWZpbmUgTE9HX01FRElBX0VWRU5UUyAwCiAjZW5kaWYKQEAg
LTI4Miw3ICsyODIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX2VsZW1lbnQuZW5kSWdu
b3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwogICAgIH0KLSAgICAKKwogcHJpdmF0
ZToKICAgICBIVE1MTWVkaWFFbGVtZW50JiBtX2VsZW1lbnQ7CiB9OwpAQCAtMzIzLDcgKzMyMyw3
IEBAIEhUTUxNZWRpYUVsZW1lbnQqIEhUTUxNZWRpYUVsZW1lbnQ6OmVsZW1lbnRXaXRoSUQodWlu
dDY0X3QgaWQpCiB7CiAgICAgaWYgKGlkID09IEhUTUxNZWRpYUVsZW1lbnRJbnZhbGlkSUQpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIAorCiAgICAgcmV0dXJuIGVsZW1lbnRJRHNUb0Vs
ZW1lbnRzKCkuZ2V0KGlkKTsKIH0KIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAgICBIVE1MRWxlbWVudDo6Zmlu
aXNoUGFyc2luZ0NoaWxkcmVuKCk7CiAgICAgbV9wYXJzaW5nSW5Qcm9ncmVzcyA9IGZhbHNlOwot
ICAgIAorCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGlmIChkZXNjZW5kYW50c09mVHlw
ZTxIVE1MVHJhY2tFbGVtZW50PigqdGhpcykuZmlyc3QoKSkKICAgICAgICAgc2NoZWR1bGVEZWxh
eWVkQWN0aW9uKENvbmZpZ3VyZVRleHRUcmFja3MpOwpAQCAtOTkyLDcgKzk5Miw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
TmFtZSkKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50KCVw
KSAtIHNjaGVkdWxpbmcgJyVzJyIsIHRoaXMsIGV2ZW50TmFtZS5zdHJpbmcoKS5hc2NpaSgpLmRh
dGEoKSk7CiAjZW5kaWYKICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWUsIGZhbHNlLCB0cnVlKTsKLSAgICAKKwogICAgIC8vIERvbid0IHNldCB0aGUgZXZl
bnQgdGFyZ2V0LCB0aGUgZXZlbnQgcXVldWUgd2lsbCBzZXQgaXQgaW4gR2VuZXJpY0V2ZW50UXVl
dWU6OnRpbWVyRmlyZWQgYW5kIHNldHRpbmcgaXQgaGVyZQogICAgIC8vIHdpbGwgdHJpZ2dlciBh
biBBU1NFUlQgaWYgdGhpcyBlbGVtZW50IGhhcyBiZWVuIG1hcmtlZCBmb3IgZGVsZXRpb24uCiAK
QEAgLTExMzAsNyArMTEzMCw3IEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlw
ZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogICAgICAgICAgICAgY2FuUGxheSA9IEFT
Q0lJTGl0ZXJhbCgicHJvYmFibHkiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAK
KwogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCVwKSAtIFsl
c10gLT4gJXMiLCB0aGlzLCBtaW1lVHlwZS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5k
YXRhKCkpOwogCiAgICAgcmV0dXJuIGNhblBsYXk7CkBAIC0xMTQ2LDkgKzExNDYsOSBAQCBkb3Vi
bGUgSFRNTE1lZGlhRWxlbWVudDo6Z2V0U3RhcnREYXRlKCkgY29uc3QKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6bG9hZCgpCiB7CiAgICAgUmVmPEhUTUxNZWRpYUVsZW1lbnQ+IHByb3RlY3RlZFRo
aXMoKnRoaXMpOyAvLyBwcmVwYXJlRm9yTG9hZCBtYXkgcmVzdWx0IGluIGEgJ2JlZm9yZWxvYWQn
IGV2ZW50LCB3aGljaCBjYW4gbWFrZSBhcmJpdHJhcnkgRE9NIG11dGF0aW9ucy4KLSAgICAKKwog
ICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWQoJXApIiwgdGhpcyk7Ci0gICAg
CisKICAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5kYXRhTG9hZGluZ1Blcm1pdHRlZCgqdGhpcykp
CiAgICAgICAgIHJldHVybjsKICAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEo
KSkKQEAgLTE0ODYsNyArMTQ4Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291
cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5cGUmIGNvbnRlbnRUCiAgICAgfQog
I2VuZGlmCiAKLSAgICAvLyBUaGUgcmVzb3VyY2UgZmV0Y2ggYWxnb3JpdGhtIAorICAgIC8vIFRo
ZSByZXNvdXJjZSBmZXRjaCBhbGdvcml0aG0KICAgICBtX25ldHdvcmtTdGF0ZSA9IE5FVFdPUktf
TE9BRElORzsKIAogICAgIC8vIElmIHRoZSBVUkwgc2hvdWxkIGJlIGxvYWRlZCBmcm9tIHRoZSBh
cHBsaWNhdGlvbiBjYWNoZSwgcGFzcyB0aGUgVVJMIG9mIHRoZSBjYWNoZWQgZmlsZSB0byB0aGUg
bWVkaWEgZW5naW5lLgpAQCAtMTg0MSw3ICsxODQxLDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50
Ojp0ZXh0VHJhY2tzQXJlUmVhZHkoKSBjb25zdAogewogICAgIC8vIDQuOC4xMC4xMi4xIFRleHQg
dHJhY2sgbW9kZWwKICAgICAvLyAuLi4KLSAgICAvLyBUaGUgdGV4dCB0cmFja3Mgb2YgYSBtZWRp
YSBlbGVtZW50IGFyZSByZWFkeSBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIHdob3NlIG1vZGUgd2Fz
IG5vdCAKKyAgICAvLyBUaGUgdGV4dCB0cmFja3Mgb2YgYSBtZWRpYSBlbGVtZW50IGFyZSByZWFk
eSBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIHdob3NlIG1vZGUgd2FzIG5vdAogICAgIC8vIGluIHRo
ZSBkaXNhYmxlZCBzdGF0ZSB3aGVuIHRoZSBlbGVtZW50J3MgcmVzb3VyY2Ugc2VsZWN0aW9uIGFs
Z29yaXRobSBsYXN0IHN0YXJ0ZWQgbm93CiAgICAgLy8gaGF2ZSBhIHRleHQgdHJhY2sgcmVhZGlu
ZXNzIHN0YXRlIG9mIGxvYWRlZCBvciBmYWlsZWQgdG8gbG9hZC4KICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV90ZXh0VHJhY2tzV2hlblJlc291cmNlU2VsZWN0aW9uQmVnYW4uc2l6ZSgp
OyArK2kpIHsKQEAgLTE5MDEsMTAgKzE5MDEsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0
ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogICAgIC8vIElmIHRoaXMgaXMg
dGhlIGZpcnN0IGFkZGVkIHRyYWNrLCBjcmVhdGUgdGhlIGxpc3Qgb2YgdGV4dCB0cmFja3MuCiAg
ICAgaWYgKCFtX3RleHRUcmFja3MpCiAgICAgICAgIG1fdGV4dFRyYWNrcyA9IFRleHRUcmFja0xp
c3Q6OmNyZWF0ZSh0aGlzLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7Ci0gICAgCisKICAgICAvLyBNYXJrIHRoaXMgdHJhY2sgYXMgImNvbmZpZ3VyZWQiIHNvIGNv
bmZpZ3VyZVRleHRUcmFja3Mgd29uJ3QgY2hhbmdlIHRoZSBtb2RlIGFnYWluLgogICAgIHRyYWNr
LnNldEhhc0JlZW5Db25maWd1cmVkKHRydWUpOwotICAgIAorCiAgICAgaWYgKHRyYWNrLm1vZGUo
KSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkICYmIHRyYWNrSXNMb2FkZWQpCiAgICAgICAg
IHRleHRUcmFja0FkZEN1ZXModHJhY2ssICp0cmFjay5jdWVzKCkpOwogCkBAIC0yMDc3LDggKzIw
NzcsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogICAgIG1fbG9h
ZFN0YXRlID0gV2FpdGluZ0ZvclNvdXJjZTsKICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVs
bHB0cjsKIAotICAgIC8vIDQuOC4xMC41IAotICAgIC8vIDYgLSBSZWFjaGluZyB0aGlzIHN0ZXAg
aW5kaWNhdGVzIHRoYXQgdGhlIG1lZGlhIHJlc291cmNlIGZhaWxlZCB0byBsb2FkIG9yIHRoYXQg
dGhlIGdpdmVuIAorICAgIC8vIDQuOC4xMC41CisgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3Rl
cCBpbmRpY2F0ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhh
dCB0aGUgZ2l2ZW4KICAgICAvLyBVUkwgY291bGQgbm90IGJlIHJlc29sdmVkLiBJbiBvbmUgYXRv
bWljIG9wZXJhdGlvbiwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CiAKICAgICAvLyA2LjEgLSBT
ZXQgdGhlIGVycm9yIGF0dHJpYnV0ZSB0byBhIG5ldyBNZWRpYUVycm9yIG9iamVjdCB3aG9zZSBj
b2RlIGF0dHJpYnV0ZSBpcyBzZXQgdG8KQEAgLTIxMDMsNyArMjEwMyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bm9uZVN1cHBvcnRlZCgpCiAgICAgLy8gOCAtIFNldCB0aGUgZWxlbWVudCdz
IGRlbGF5aW5nLXRoZS1sb2FkLWV2ZW50IGZsYWcgdG8gZmFsc2UuIFRoaXMgc3RvcHMgZGVsYXlp
bmcgdGhlIGxvYWQgZXZlbnQuCiAgICAgc2V0U2hvdWxkRGVsYXlMb2FkRXZlbnQoZmFsc2UpOwog
Ci0gICAgLy8gOSAtIEFib3J0IHRoZXNlIHN0ZXBzLiBVbnRpbCB0aGUgbG9hZCgpIG1ldGhvZCBp
cyBpbnZva2VkIG9yIHRoZSBzcmMgYXR0cmlidXRlIGlzIGNoYW5nZWQsIAorICAgIC8vIDkgLSBB
Ym9ydCB0aGVzZSBzdGVwcy4gVW50aWwgdGhlIGxvYWQoKSBtZXRob2QgaXMgaW52b2tlZCBvciB0
aGUgc3JjIGF0dHJpYnV0ZSBpcyBjaGFuZ2VkLAogICAgIC8vIHRoZSBlbGVtZW50IHdvbid0IGF0
dGVtcHQgdG8gbG9hZCBhbm90aGVyIHJlc291cmNlLgogCiAgICAgdXBkYXRlRGlzcGxheVN0YXRl
KCk7CkBAIC0yMTE4LDcgKzIxMTgsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhTG9h
ZGluZ0ZhaWxlZEZhdGFsbHkoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBlcnJvcgogICAgIHN0
b3BQZXJpb2RpY1RpbWVycygpOwogICAgIG1fbG9hZFN0YXRlID0gV2FpdGluZ0ZvclNvdXJjZTsK
IAotICAgIC8vIDIgLSBTZXQgdGhlIGVycm9yIGF0dHJpYnV0ZSB0byBhIG5ldyBNZWRpYUVycm9y
IG9iamVjdCB3aG9zZSBjb2RlIGF0dHJpYnV0ZSBpcyAKKyAgICAvLyAyIC0gU2V0IHRoZSBlcnJv
ciBhdHRyaWJ1dGUgdG8gYSBuZXcgTWVkaWFFcnJvciBvYmplY3Qgd2hvc2UgY29kZSBhdHRyaWJ1
dGUgaXMKICAgICAvLyBzZXQgdG8gTUVESUFfRVJSX05FVFdPUksvTUVESUFfRVJSX0RFQ09ERS4K
ICAgICBpZiAoZXJyb3IgPT0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtFcnJvcikKICAgICAgICAgbV9l
cnJvciA9IE1lZGlhRXJyb3I6OmNyZWF0ZShNZWRpYUVycm9yOjpNRURJQV9FUlJfTkVUV09SSyk7
CkBAIC0yMjA4LDIwICsyMjA4LDIwIEBAIHN0YXRpYyBTdHJpbmcgc3RyaW5nRm9yTmV0d29ya1N0
YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgc3RhdGUpCiB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQog
ewogICAgIHN0b3BQZXJpb2RpY1RpbWVycygpOwotICAgIAorCiAgICAgLy8gSWYgd2UgZmFpbGVk
IHdoaWxlIHRyeWluZyB0byBsb2FkIGEgPHNvdXJjZT4gZWxlbWVudCwgdGhlIG1vdmllIHdhcyBu
ZXZlciBwYXJzZWQsIGFuZCB0aGVyZSBhcmUgbW9yZQogICAgIC8vIDxzb3VyY2U+IGNoaWxkcmVu
LCBzY2hlZHVsZSB0aGUgbmV4dCBvbmUKICAgICBpZiAobV9yZWFkeVN0YXRlIDwgSEFWRV9NRVRB
REFUQSAmJiBtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nRnJvbVNvdXJjZUVsZW1lbnQpIHsKLSAgICAg
ICAgCisKICAgICAgICAgLy8gcmVzb3VyY2Ugc2VsZWN0aW9uIGFsZ29yaXRobQogICAgICAgICAv
LyBTdGVwIDkuT3RoZXJ3aXNlLjkgLSBGYWlsZWQgd2l0aCBlbGVtZW50czogUXVldWUgYSB0YXNr
LCB1c2luZyB0aGUgRE9NIG1hbmlwdWxhdGlvbiB0YXNrIHNvdXJjZSwgdG8gZmlyZSBhIHNpbXBs
ZSBldmVudCBuYW1lZCBlcnJvciBhdCB0aGUgY2FuZGlkYXRlIGVsZW1lbnQuCiAgICAgICAgIGlm
IChtX2N1cnJlbnRTb3VyY2VOb2RlKQogICAgICAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZS0+
c2NoZWR1bGVFcnJvckV2ZW50KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIExPRyhNZWRp
YSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldE5ldHdvcmtTdGF0ZSglcCkgLSBlcnJvciBldmVudCBu
b3Qgc2VudCwgPHNvdXJjZT4gd2FzIHJlbW92ZWQiLCB0aGlzKTsKLSAgICAgICAgCisKICAgICAg
ICAgLy8gOS5PdGhlcndpc2UuMTAgLSBBc3luY2hyb25vdXNseSBhd2FpdCBhIHN0YWJsZSBzdGF0
ZS4gVGhlIHN5bmNocm9ub3VzIHNlY3Rpb24gY29uc2lzdHMgb2YgYWxsIHRoZSByZW1haW5pbmcg
c3RlcHMgb2YgdGhpcyBhbGdvcml0aG0gdW50aWwgdGhlIGFsZ29yaXRobSBzYXlzIHRoZSBzeW5j
aHJvbm91cyBzZWN0aW9uIGhhcyBlbmRlZC4KLSAgICAgICAgCisKICAgICAgICAgLy8gOS5PdGhl
cndpc2UuMTEgLSBGb3JnZXQgdGhlIG1lZGlhIGVsZW1lbnQncyBtZWRpYS1yZXNvdXJjZS1zcGVj
aWZpYyB0cmFja3MuCiAgICAgICAgIGZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MoKTsKIApA
QCAtMjIzMiwxNSArMjIzMiwxNSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhTG9hZGlu
Z0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQogICAgICAgICAgICAgTE9H
KE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c2V0TmV0d29ya1N0YXRlKCVwKSAtIG5vIG1vcmUg
PHNvdXJjZT4gZWxlbWVudHMsIHdhaXRpbmciLCB0aGlzKTsKICAgICAgICAgICAgIHdhaXRGb3JT
b3VyY2VDaGFuZ2UoKTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIAorCiAgICAgaWYgKChlcnJvciA9PSBNZWRpYVBsYXllcjo6TmV0d29ya0Vycm9y
ICYmIG1fcmVhZHlTdGF0ZSA+PSBIQVZFX01FVEFEQVRBKSB8fCBlcnJvciA9PSBNZWRpYVBsYXll
cjo6RGVjb2RlRXJyb3IpCiAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZEZhdGFsbHkoZXJyb3Ip
OwogICAgIGVsc2UgaWYgKChlcnJvciA9PSBNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IgfHwgZXJy
b3IgPT0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtFcnJvcikgJiYgbV9sb2FkU3RhdGUgPT0gTG9hZGlu
Z0Zyb21TcmNBdHRyKQogICAgICAgICBub25lU3VwcG9ydGVkKCk7Ci0gICAgCisKICAgICB1cGRh
dGVEaXNwbGF5U3RhdGUoKTsKICAgICBpZiAoaGFzTWVkaWFDb250cm9scygpKSB7CiAgICAgICAg
IG1lZGlhQ29udHJvbHMoKS0+cmVzZXQoKTsKQEAgLTIzNjAsNyArMjM2MCw3IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIGJvb2wgdHJhY2tzQXJlUmVhZHkgPSB0cnVlOwogI2Vu
ZGlmCi0gICAgCisKICAgICBpZiAodHJhY2tzQXJlUmVhZHkpCiAgICAgICAgIG1fcmVhZHlTdGF0
ZSA9IG5ld1N0YXRlOwogICAgIGVsc2UgewpAQCAtMjM3MSw3ICsyMzcxLDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHN0YXRl
KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBIQVZFX0NVUlJFTlRf
REFUQTsKICAgICB9Ci0gICAgCisKICAgICBpZiAob2xkU3RhdGUgPiBtX3JlYWR5U3RhdGVNYXhp
bXVtKQogICAgICAgICBtX3JlYWR5U3RhdGVNYXhpbXVtID0gb2xkU3RhdGU7CiAKQEAgLTI2MDgs
NyArMjYwOCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YWRkUGxheWVkUmFuZ2UoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlCiAgICAgaWYgKCFtX3BsYXllZFRp
bWVSYW5nZXMpCiAgICAgICAgIG1fcGxheWVkVGltZVJhbmdlcyA9IFRpbWVSYW5nZXM6OmNyZWF0
ZSgpOwogICAgIG1fcGxheWVkVGltZVJhbmdlcy0+cmFuZ2VzKCkuYWRkKHN0YXJ0LCBlbmQpOwot
fSAgCit9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c3VwcG9ydHNTY2FubmluZygpIGNvbnN0
CiB7CkBAIC0yNzMwLDggKzI3MzAsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNr
KCkKICAgICBtX3BlbmRpbmdTZWVrID0gbnVsbHB0cjsKIAogICAgIEFTU0VSVChuZWdhdGl2ZVRv
bGVyYW5jZSA+PSBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwotICAgIAotICAgIC8vIDYgLSBJZiB0
aGUgbmV3IHBsYXliYWNrIHBvc2l0aW9uIGlzIGxhdGVyIHRoYW4gdGhlIGVuZCBvZiB0aGUgbWVk
aWEgcmVzb3VyY2UsIHRoZW4gbGV0IGl0IGJlIHRoZSBlbmQgCisKKyAgICAvLyA2IC0gSWYgdGhl
IG5ldyBwbGF5YmFjayBwb3NpdGlvbiBpcyBsYXRlciB0aGFuIHRoZSBlbmQgb2YgdGhlIG1lZGlh
IHJlc291cmNlLCB0aGVuIGxldCBpdCBiZSB0aGUgZW5kCiAgICAgLy8gb2YgdGhlIG1lZGlhIHJl
c291cmNlIGluc3RlYWQuCiAgICAgdGltZSA9IHN0ZDo6bWluKHRpbWUsIGR1cmF0aW9uTWVkaWFU
aW1lKCkpOwogCkBAIC0yNzQyLDcgKzI3NDIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNl
ZWtUYXNrKCkKICAgICAvLyBBc2sgdGhlIG1lZGlhIGVuZ2luZSBmb3IgdGhlIHRpbWUgdmFsdWUg
aW4gdGhlIG1vdmllJ3MgdGltZSBzY2FsZSBiZWZvcmUgY29tcGFyaW5nIHdpdGggY3VycmVudCB0
aW1lLiBUaGlzCiAgICAgLy8gaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaWYgdGhlIHNlZWsgdGltZSBp
cyBub3QgZXF1YWwgdG8gY3VycmVudFRpbWUgYnV0IHRoZSBkZWx0YSBpcyBsZXNzIHRoYW4gdGhl
IG1vdmllJ3MKICAgICAvLyB0aW1lIHNjYWxlLCB3ZSB3aWxsIGFzayB0aGUgbWVkaWEgZW5naW5l
IHRvICJzZWVrIiB0byB0aGUgY3VycmVudCBtb3ZpZSB0aW1lLCB3aGljaCBtYXkgYmUgYSBub29w
IGFuZAotICAgIC8vIG5vdCBnZW5lcmF0ZSBhIHRpbWVjaGFuZ2VkIGNhbGxiYWNrLiBUaGlzIG1l
YW5zIG1fc2Vla2luZyB3aWxsIG5ldmVyIGJlIGNsZWFyZWQgYW5kIHdlIHdpbGwgbmV2ZXIgCisg
ICAgLy8gbm90IGdlbmVyYXRlIGEgdGltZWNoYW5nZWQgY2FsbGJhY2suIFRoaXMgbWVhbnMgbV9z
ZWVraW5nIHdpbGwgbmV2ZXIgYmUgY2xlYXJlZCBhbmQgd2Ugd2lsbCBuZXZlcgogICAgIC8vIGZp
cmUgYSAnc2Vla2VkJyBldmVudC4KICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTWVkaWFUaW1lIG1l
ZGlhVGltZSA9IG1fcGxheWVyLT5tZWRpYVRpbWVGb3JUaW1lVmFsdWUodGltZSk7CkBAIC0yNzUy
LDcgKzI3NTIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNrKCkKICAgICB0aW1l
ID0gbV9wbGF5ZXItPm1lZGlhVGltZUZvclRpbWVWYWx1ZSh0aW1lKTsKIAogICAgIC8vIDggLSBJ
ZiB0aGUgKHBvc3NpYmx5IG5vdyBjaGFuZ2VkKSBuZXcgcGxheWJhY2sgcG9zaXRpb24gaXMgbm90
IGluIG9uZSBvZiB0aGUgcmFuZ2VzIGdpdmVuIGluIHRoZQotICAgIC8vIHNlZWthYmxlIGF0dHJp
YnV0ZSwgdGhlbiBsZXQgaXQgYmUgdGhlIHBvc2l0aW9uIGluIG9uZSBvZiB0aGUgcmFuZ2VzIGdp
dmVuIGluIHRoZSBzZWVrYWJsZSBhdHRyaWJ1dGUgCisgICAgLy8gc2Vla2FibGUgYXR0cmlidXRl
LCB0aGVuIGxldCBpdCBiZSB0aGUgcG9zaXRpb24gaW4gb25lIG9mIHRoZSByYW5nZXMgZ2l2ZW4g
aW4gdGhlIHNlZWthYmxlIGF0dHJpYnV0ZQogICAgIC8vIHRoYXQgaXMgdGhlIG5lYXJlc3QgdG8g
dGhlIG5ldyBwbGF5YmFjayBwb3NpdGlvbi4gLi4uIElmIHRoZXJlIGFyZSBubyByYW5nZXMgZ2l2
ZW4gaW4gdGhlIHNlZWthYmxlCiAgICAgLy8gYXR0cmlidXRlIHRoZW4gc2V0IHRoZSBzZWVraW5n
IElETCBhdHRyaWJ1dGUgdG8gZmFsc2UgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIFJlZlB0
cjxUaW1lUmFuZ2VzPiBzZWVrYWJsZVJhbmdlcyA9IHNlZWthYmxlKCk7CkBAIC0yODU5LDExICsy
ODU5LDExIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVmcmVzaENhY2hlZFRpbWUoKSBjb25z
dAogCiAgICAgbV9jYWNoZWRUaW1lID0gbV9wbGF5ZXItPmN1cnJlbnRUaW1lKCk7CiAgICAgaWYg
KCFtX2NhY2hlZFRpbWUpIHsKLSAgICAgICAgLy8gRG8gbm90IHVzZSBtX2NhY2hlZFRpbWUgdW50
aWwgdGhlIG1lZGlhIGVuZ2luZSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUgYmVjYXVzZSB3ZSBj
YW4ndCAKLSAgICAgICAgLy8gZXN0aW1hdGUgY3VycmVudCB0aW1lIHVudGlsIHBsYXliYWNrIGFj
dHVhbGx5IGJlZ2lucy4gCi0gICAgICAgIGludmFsaWRhdGVDYWNoZWRUaW1lKCk7IAotICAgICAg
ICByZXR1cm47IAotICAgIH0gCisgICAgICAgIC8vIERvIG5vdCB1c2UgbV9jYWNoZWRUaW1lIHVu
dGlsIHRoZSBtZWRpYSBlbmdpbmUgcmV0dXJucyBhIG5vbi16ZXJvIHZhbHVlIGJlY2F1c2Ugd2Ug
Y2FuJ3QKKyAgICAgICAgLy8gZXN0aW1hdGUgY3VycmVudCB0aW1lIHVudGlsIHBsYXliYWNrIGFj
dHVhbGx5IGJlZ2lucy4KKyAgICAgICAgaW52YWxpZGF0ZUNhY2hlZFRpbWUoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KIAogICAgIG1fY2xvY2tUaW1lQXRMYXN0Q2FjaGVkVGltZVVwZGF0ZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogfQpAQCAtMjk0OCw3ICsyOTQ4LDcgQEAg
TWVkaWFUaW1lIEhUTUxNZWRpYUVsZW1lbnQ6OmN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdAogCiAg
ICAgaWYgKG1fY2FjaGVkVGltZS5pc0ludmFsaWQoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGlt
ZTo6emVyb1RpbWUoKTsKLSAgICAKKwogICAgIHJldHVybiBtX2NhY2hlZFRpbWU7CiB9CiAKQEAg
LTMwOTYsNyArMzA5Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0V2Via2l0UHJlc2Vy
dmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFF
bGVtZW50OjpzZXRXZWJraXRQcmVzZXJ2ZXNQaXRjaCglcCkgLSAlcyIsIHRoaXMsIGJvb2xTdHJp
bmcocHJlc2VydmVzUGl0Y2gpKTsKIAogICAgIG1fd2Via2l0UHJlc2VydmVzUGl0Y2ggPSBwcmVz
ZXJ2ZXNQaXRjaDsKLSAgICAKKwogICAgIGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMzExNCw3ICszMTE0LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjplbmRlZCgpIGNv
bnN0CiAjZW5kaWYKIAogICAgIC8vIDQuOC4xMC44IFBsYXlpbmcgdGhlIG1lZGlhIHJlc291cmNl
Ci0gICAgLy8gVGhlIGVuZGVkIGF0dHJpYnV0ZSBtdXN0IHJldHVybiB0cnVlIGlmIHRoZSBtZWRp
YSBlbGVtZW50IGhhcyBlbmRlZCAKKyAgICAvLyBUaGUgZW5kZWQgYXR0cmlidXRlIG11c3QgcmV0
dXJuIHRydWUgaWYgdGhlIG1lZGlhIGVsZW1lbnQgaGFzIGVuZGVkCiAgICAgLy8gcGxheWJhY2sg
YW5kIHRoZSBkaXJlY3Rpb24gb2YgcGxheWJhY2sgaXMgZm9yd2FyZHMsIGFuZCBmYWxzZSBvdGhl
cndpc2UuCiAgICAgcmV0dXJuIGVuZGVkUGxheWJhY2soKSAmJiByZXF1ZXN0ZWRQbGF5YmFja1Jh
dGUoKSA+IDA7CiB9CkBAIC0zMjA2LDcgKzMyMDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXkoKQogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwoKQogewogICAgIExP
RyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCglcCkiLCB0aGlzKTsKLSAg
ICAKKwogICAgIGlmICghbV9tZWRpYVNlc3Npb24tPmNsaWVudFdpbGxCZWdpblBsYXliYWNrKCkp
IHsKICAgICAgICAgTE9HKE1lZGlhLCAiICByZXR1cm5pbmcgYmVjYXVzZSBvZiBpbnRlcnJ1cHRp
b24iKTsKICAgICAgICAgcmV0dXJuIHRydWU7IC8vIFRyZWF0IGFzIHN1Y2Nlc3MgYmVjYXVzZSB3
ZSB3aWxsIGJlZ2luIHBsYXliYWNrIG9uIGNlc3NhdGlvbiBvZiB0aGUgaW50ZXJydXB0aW9uLgpA
QCAtMzI3OCw5ICszMjc4LDkgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwo
KQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSgpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRN
TE1lZGlhRWxlbWVudDo6cGF1c2UoJXApIiwgdGhpcyk7Ci0gICAgCisKICAgICBtX3RlbXBvcmFy
aWx5QWxsb3dpbmdJbmxpbmVQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9IGZhbHNlOwotICAgIAor
CiAgICAgaWYgKCFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTM0NzAsNyArMzQ3MCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dG9nZ2xlUGxheVN0YXRlKCkKICAgICBpZiAoY2FuUGxheSgpKSB7CiAgICAgICAgIHVwZGF0
ZVBsYXliYWNrUmF0ZSgpOwogICAgICAgICBwbGF5SW50ZXJuYWwoKTsKLSAgICB9IGVsc2UgCisg
ICAgfSBlbHNlCiAgICAgICAgIHBhdXNlSW50ZXJuYWwoKTsKIH0KIApAQCAtMzQ4MCwxMyArMzQ4
MCwxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmJlZ2luU2NydWJiaW5nKCkKIAogICAgIGlm
ICghcGF1c2VkKCkpIHsKICAgICAgICAgaWYgKGVuZGVkKCkpIHsKLSAgICAgICAgICAgIC8vIEJl
Y2F1c2UgYSBtZWRpYSBlbGVtZW50IHN0YXlzIGluIG5vbi1wYXVzZWQgc3RhdGUgd2hlbiBpdCBy
ZWFjaGVzIGVuZCwgcGxheWJhY2sgcmVzdW1lcyAKLSAgICAgICAgICAgIC8vIHdoZW4gdGhlIHNs
aWRlciBpcyBkcmFnZ2VkIGZyb20gdGhlIGVuZCB0byBhbm90aGVyIHBvc2l0aW9uIHVubGVzcyB3
ZSBwYXVzZSBmaXJzdC4gRG8gCisgICAgICAgICAgICAvLyBCZWNhdXNlIGEgbWVkaWEgZWxlbWVu
dCBzdGF5cyBpbiBub24tcGF1c2VkIHN0YXRlIHdoZW4gaXQgcmVhY2hlcyBlbmQsIHBsYXliYWNr
IHJlc3VtZXMKKyAgICAgICAgICAgIC8vIHdoZW4gdGhlIHNsaWRlciBpcyBkcmFnZ2VkIGZyb20g
dGhlIGVuZCB0byBhbm90aGVyIHBvc2l0aW9uIHVubGVzcyB3ZSBwYXVzZSBmaXJzdC4gRG8KICAg
ICAgICAgICAgIC8vIGEgImhhcmQgcGF1c2UiIHNvIGFuIGV2ZW50IGlzIGdlbmVyYXRlZCwgc2lu
Y2Ugd2Ugd2FudCB0byBzdGF5IHBhdXNlZCBhZnRlciBzY3J1YmJpbmcgZmluaXNoZXMuCiAgICAg
ICAgICAgICBwYXVzZSgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gTm90IGF0
IHRoZSBlbmQgYnV0IHdlIHN0aWxsIHdhbnQgdG8gcGF1c2UgcGxheWJhY2sgc28gdGhlIG1lZGlh
IGVuZ2luZSBkb2Vzbid0IHRyeSB0bwotICAgICAgICAgICAgLy8gY29udGludWUgcGxheWluZyBk
dXJpbmcgc2NydWJiaW5nLiBQYXVzZSB3aXRob3V0IGdlbmVyYXRpbmcgYW4gZXZlbnQgYXMgd2Ug
d2lsbCAKKyAgICAgICAgICAgIC8vIGNvbnRpbnVlIHBsYXlpbmcgZHVyaW5nIHNjcnViYmluZy4g
UGF1c2Ugd2l0aG91dCBnZW5lcmF0aW5nIGFuIGV2ZW50IGFzIHdlIHdpbGwKICAgICAgICAgICAg
IC8vIHVucGF1c2UgYWZ0ZXIgc2NydWJiaW5nIGZpbmlzaGVzLgogICAgICAgICAgICAgc2V0UGF1
c2VkSW50ZXJuYWwodHJ1ZSk7CiAgICAgICAgIH0KQEAgLTM1ODAsNyArMzU4MCw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQoKQogICAgICAgICAg
ICAgcGF1c2VJbnRlcm5hbCgpOwogICAgICAgICB9CiAgICAgfQotICAgIAorCiAgICAgc2NoZWR1
bGVUaW1ldXBkYXRlRXZlbnQodHJ1ZSk7CiAKICAgICBpZiAoIXJlcXVlc3RlZFBsYXliYWNrUmF0
ZSgpKQpAQCAtMzY2Niw3ICszNjY2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKICAgICAv
LyAxLiBBc3NvY2lhdGUgdGhlIHJlbGV2YW50IGRhdGEgd2l0aCBhIG5ldyB0ZXh0IHRyYWNrIGFu
ZCBpdHMgY29ycmVzcG9uZGluZyBuZXcgVGV4dFRyYWNrIG9iamVjdC4KICAgICBhdXRvIHRleHRU
cmFjayA9IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKCpBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsIHRyYWNrKTsKICAgICB0ZXh0VHJhY2stPnNldE1lZGlh
RWxlbWVudCh0aGlzKTsKLSAgICAKKwogICAgIC8vIDIuIFNldCB0aGUgbmV3IHRleHQgdHJhY2sn
cyBraW5kLCBsYWJlbCwgYW5kIGxhbmd1YWdlIGJhc2VkIG9uIHRoZSBzZW1hbnRpY3Mgb2YgdGhl
IHJlbGV2YW50IGRhdGEsCiAgICAgLy8gYXMgZGVmaW5lZCBieSB0aGUgcmVsZXZhbnQgc3BlY2lm
aWNhdGlvbi4gSWYgdGhlcmUgaXMgbm8gbGFiZWwgaW4gdGhhdCBkYXRhLCB0aGVuIHRoZSBsYWJl
bCBtdXN0CiAgICAgLy8gYmUgc2V0IHRvIHRoZSBlbXB0eSBzdHJpbmcuCkBAIC0zNjc3LDE1ICsz
Njc3LDE1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJh
Y2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgLy8gNS4gUG9wdWxhdGUgdGhl
IG5ldyB0ZXh0IHRyYWNrJ3MgbGlzdCBvZiBjdWVzIHdpdGggdGhlIGN1ZXMgcGFyc2VkIHNvIGZh
ciwgZm9sbGxvd2luZyB0aGUgZ3VpZGVsaW5lcyBmb3IgZXhwb3NpbmcKICAgICAvLyBjdWVzLCBh
bmQgYmVnaW4gdXBkYXRpbmcgaXQgZHluYW1pY2FsbHkgYXMgbmVjZXNzYXJ5LgogICAgIC8vICAg
LSBUaGVzcyBhcmUgYWxsIGRvbmUgYnkgdGhlIG1lZGlhIGVuZ2luZS4KLSAgICAKKwogICAgIC8v
IDYuIFNldCB0aGUgbmV3IHRleHQgdHJhY2sncyByZWFkaW5lc3Mgc3RhdGUgdG8gbG9hZGVkLgog
ICAgIHRleHRUcmFjay0+c2V0UmVhZGluZXNzU3RhdGUoVGV4dFRyYWNrOjpMb2FkZWQpOwotICAg
IAorCiAgICAgLy8gNy4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydzIG1vZGUgdG8gdGhlIG1vZGUg
Y29uc2lzdGVudCB3aXRoIHRoZSB1c2VyJ3MgcHJlZmVyZW5jZXMgYW5kIHRoZSByZXF1aXJlbWVu
dHMgb2YKICAgICAvLyB0aGUgcmVsZXZhbnQgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGRhdGEuCiAg
ICAgLy8gIC0gVGhpcyB3aWxsIGhhcHBlbiBpbiBjb25maWd1cmVUZXh0VHJhY2tzKCkKICAgICBz
Y2hlZHVsZURlbGF5ZWRBY3Rpb24oQ29uZmlndXJlVGV4dFRyYWNrcyk7Ci0gICAgCisKICAgICAv
LyA4LiBBZGQgdGhlIG5ldyB0ZXh0IHRyYWNrIHRvIHRoZSBtZWRpYSBlbGVtZW50J3MgbGlzdCBv
ZiB0ZXh0IHRyYWNrcy4KICAgICAvLyA5LiBGaXJlIGFuIGV2ZW50IHdpdGggdGhlIG5hbWUgYWRk
dHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcyBub3QgY2FuY2VsYWJsZSwgYW5kIHRo
YXQgdXNlcyB0aGUgVHJhY2tFdmVudAogICAgIC8vIGludGVyZmFjZSwgd2l0aCB0aGUgdHJhY2sg
YXR0cmlidXRlIGluaXRpYWxpemVkIHRvIHRoZSB0ZXh0IHRyYWNrJ3MgVGV4dFRyYWNrIG9iamVj
dCwgYXQgdGhlIG1lZGlhIGVsZW1lbnQncwpAQCAtMzc5OSw3ICszNzk5LDcgQEAgRXhjZXB0aW9u
T3I8VGV4dFRyYWNrJj4gSFRNTE1lZGlhRWxlbWVudDo6YWRkVGV4dFRyYWNrKGNvbnN0IFN0cmlu
ZyYga2luZCwgY29uc3QKICAgICAvLyAzLiBJZiB0aGUgbGFuZ3VhZ2UgYXJndW1lbnQgd2FzIG9t
aXR0ZWQsIGxldCBsYW5ndWFnZSBiZSB0aGUgZW1wdHkgc3RyaW5nLgogICAgIC8vIDQuIENyZWF0
ZSBhIG5ldyBUZXh0VHJhY2sgb2JqZWN0LgogCi0gICAgLy8gNS4gQ3JlYXRlIGEgbmV3IHRleHQg
dHJhY2sgY29ycmVzcG9uZGluZyB0byB0aGUgbmV3IG9iamVjdCwgYW5kIHNldCBpdHMgdGV4dCB0
cmFjayBraW5kIHRvIGtpbmQsIGl0cyB0ZXh0IAorICAgIC8vIDUuIENyZWF0ZSBhIG5ldyB0ZXh0
IHRyYWNrIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5ldyBvYmplY3QsIGFuZCBzZXQgaXRzIHRleHQg
dHJhY2sga2luZCB0byBraW5kLCBpdHMgdGV4dAogICAgIC8vIHRyYWNrIGxhYmVsIHRvIGxhYmVs
LCBpdHMgdGV4dCB0cmFjayBsYW5ndWFnZSB0byBsYW5ndWFnZS4uLgogICAgIGF1dG8gdHJhY2sg
PSBUZXh0VHJhY2s6OmNyZWF0ZShBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgdGhpcywga2luZCwgZW1wdHlTdHJpbmcoKSwgbGFiZWwsIGxhbmd1YWdlKTsKICAgICBh
dXRvJiB0cmFja1JlZmVyZW5jZSA9IHRyYWNrLmdldCgpOwpAQCAtMzg0OCw4ICszODQ4LDggQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRBZGRUZXh0VHJhY2soSFRNTFRyYWNrRWxlbWVudCYg
dHJhY2tFbGVtZW50KQogICAgIEFTU0VSVCh0cmFja0VsZW1lbnQuaGFzVGFnTmFtZSh0cmFja1Rh
ZykpOwogCiAgICAgLy8gNC44LjEwLjEyLjMgU291cmNpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFj
a3MKLSAgICAvLyBXaGVuIGEgdHJhY2sgZWxlbWVudCdzIHBhcmVudCBlbGVtZW50IGNoYW5nZXMg
YW5kIHRoZSBuZXcgcGFyZW50IGlzIGEgbWVkaWEgZWxlbWVudCwgCi0gICAgLy8gdGhlbiB0aGUg
dXNlciBhZ2VudCBtdXN0IGFkZCB0aGUgdHJhY2sgZWxlbWVudCdzIGNvcnJlc3BvbmRpbmcgdGV4
dCB0cmFjayB0byB0aGUgCisgICAgLy8gV2hlbiBhIHRyYWNrIGVsZW1lbnQncyBwYXJlbnQgZWxl
bWVudCBjaGFuZ2VzIGFuZCB0aGUgbmV3IHBhcmVudCBpcyBhIG1lZGlhIGVsZW1lbnQsCisgICAg
Ly8gdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IGFkZCB0aGUgdHJhY2sgZWxlbWVudCdzIGNvcnJl
c3BvbmRpbmcgdGV4dCB0cmFjayB0byB0aGUKICAgICAvLyBtZWRpYSBlbGVtZW50J3MgbGlzdCBv
ZiB0ZXh0IHRyYWNrcyAuLi4gW2NvbnRpbnVlcyBpbiBUZXh0VHJhY2tMaXN0OjphcHBlbmRdCiAg
ICAgYWRkVGV4dFRyYWNrKHRyYWNrRWxlbWVudC50cmFjaygpKTsKIApAQCAtMzg3OSwxMCArMzg3
OSwxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlbW92ZVRleHRUcmFjayhIVE1MVHJh
Y2tFbGVtZW50JiB0cmFja0VsZW1lbnQpCiAKICAgICBpZiAoIW1fdGV4dFRyYWNrcykKICAgICAg
ICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gNC44LjEwLjEyLjMgU291cmNpbmcgb3V0LW9mLWJh
bmQgdGV4dCB0cmFja3MKLSAgICAvLyBXaGVuIGEgdHJhY2sgZWxlbWVudCdzIHBhcmVudCBlbGVt
ZW50IGNoYW5nZXMgYW5kIHRoZSBvbGQgcGFyZW50IHdhcyBhIG1lZGlhIGVsZW1lbnQsIAotICAg
IC8vIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdCByZW1vdmUgdGhlIHRyYWNrIGVsZW1lbnQncyBj
b3JyZXNwb25kaW5nIHRleHQgdHJhY2sgZnJvbSB0aGUgCisgICAgLy8gV2hlbiBhIHRyYWNrIGVs
ZW1lbnQncyBwYXJlbnQgZWxlbWVudCBjaGFuZ2VzIGFuZCB0aGUgb2xkIHBhcmVudCB3YXMgYSBt
ZWRpYSBlbGVtZW50LAorICAgIC8vIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdCByZW1vdmUgdGhl
IHRyYWNrIGVsZW1lbnQncyBjb3JyZXNwb25kaW5nIHRleHQgdHJhY2sgZnJvbSB0aGUKICAgICAv
LyBtZWRpYSBlbGVtZW50J3MgbGlzdCBvZiB0ZXh0IHRyYWNrcy4KICAgICByZW1vdmVUZXh0VHJh
Y2sodGV4dFRyYWNrKTsKIApAQCAtNDAwOSwxMiArNDAwOSwxMiBAQCBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGNvbnRyb2xsZXJKU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCYgZwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIGF1dG8gbWVkaWFKU1dyYXBwZXIg
PSB0b0pTKCZleGVjLCAmZ2xvYmFsT2JqZWN0LCBtZWRpYSk7Ci0gICAgCisKICAgICAvLyBSZXRy
aWV2ZSB0aGUgY29udHJvbGxlciB0aHJvdWdoIHRoZSBKUyBvYmplY3QgZ3JhcGgKICAgICBKU0M6
OkpTT2JqZWN0KiBtZWRpYUpTV3JhcHBlck9iamVjdCA9IGpzRHluYW1pY0Rvd25jYXN0PEpTQzo6
SlNPYmplY3QqPih2bSwgbWVkaWFKU1dyYXBwZXIpOwogICAgIGlmICghbWVkaWFKU1dyYXBwZXJP
YmplY3QpCiAgICAgICAgIHJldHVybiBKU0M6OmpzTnVsbCgpOwotICAgIAorCiAgICAgSlNDOjpJ
ZGVudGlmaWVyIGNvbnRyb2xzSG9zdCA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJjb250cm9sc0hvc3QiKTsKICAgICBKU0M6OkpTVmFsdWUgY29udHJvbHNIb3N0SlNXcmFwcGVy
ID0gbWVkaWFKU1dyYXBwZXJPYmplY3QtPmdldCgmZXhlYywgY29udHJvbHNIb3N0KTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OmpzTnVsbCgpKTsKQEAgLTQyMDQsMTkgKzQy
MDQsMTkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhY2tzKCkKICAg
ICAgICAgICAgIGN1cnJlbnRHcm91cC0+ZGVmYXVsdFRyYWNrID0gdGV4dFRyYWNrOwogCiAgICAg
ICAgIC8vIERvIG5vdCBhZGQgdGhpcyB0cmFjayB0byB0aGUgZ3JvdXAgaWYgaXQgaGFzIGFscmVh
ZHkgYmVlbiBhdXRvbWF0aWNhbGx5IGNvbmZpZ3VyZWQKLSAgICAgICAgLy8gYXMgd2Ugb25seSB3
YW50IHRvIGNhbGwgY29uZmlndXJlVGV4dFRyYWNrIG9uY2UgcGVyIHRyYWNrIHNvIHRoYXQgYWRk
aW5nIGFub3RoZXIgCi0gICAgICAgIC8vIHRyYWNrIGFmdGVyIHRoZSBpbml0aWFsIGNvbmZpZ3Vy
YXRpb24gZG9lc24ndCByZWNvbmZpZ3VyZSBldmVyeSB0cmFjayAtIG9ubHkgdGhvc2UgCi0gICAg
ICAgIC8vIHRoYXQgc2hvdWxkIGJlIGNoYW5nZWQgYnkgdGhlIG5ldyBhZGRpdGlvbi4gRm9yIGV4
YW1wbGUgYWxsIG1ldGFkYXRhIHRyYWNrcyBhcmUgCi0gICAgICAgIC8vIGRpc2FibGVkIGJ5IGRl
ZmF1bHQsIGFuZCB3ZSBkb24ndCB3YW50IGEgdHJhY2sgdGhhdCBoYXMgYmVlbiBlbmFibGVkIGJ5
IHNjcmlwdCAKKyAgICAgICAgLy8gYXMgd2Ugb25seSB3YW50IHRvIGNhbGwgY29uZmlndXJlVGV4
dFRyYWNrIG9uY2UgcGVyIHRyYWNrIHNvIHRoYXQgYWRkaW5nIGFub3RoZXIKKyAgICAgICAgLy8g
dHJhY2sgYWZ0ZXIgdGhlIGluaXRpYWwgY29uZmlndXJhdGlvbiBkb2Vzbid0IHJlY29uZmlndXJl
IGV2ZXJ5IHRyYWNrIC0gb25seSB0aG9zZQorICAgICAgICAvLyB0aGF0IHNob3VsZCBiZSBjaGFu
Z2VkIGJ5IHRoZSBuZXcgYWRkaXRpb24uIEZvciBleGFtcGxlIGFsbCBtZXRhZGF0YSB0cmFja3Mg
YXJlCisgICAgICAgIC8vIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGFuZCB3ZSBkb24ndCB3YW50IGEg
dHJhY2sgdGhhdCBoYXMgYmVlbiBlbmFibGVkIGJ5IHNjcmlwdAogICAgICAgICAvLyB0byBiZSBk
aXNhYmxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYSBuZXcgbWV0YWRhdGEgdHJhY2sgaXMgYWRkZWQg
bGF0ZXIuCiAgICAgICAgIGlmICh0ZXh0VHJhY2stPmhhc0JlZW5Db25maWd1cmVkKCkpCiAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgCisKICAgICAgICAgaWYgKHRleHRUcmFjay0+bGFu
Z3VhZ2UoKS5sZW5ndGgoKSkKICAgICAgICAgICAgIGN1cnJlbnRHcm91cC0+aGFzU3JjTGFuZyA9
IHRydWU7CiAgICAgICAgIGN1cnJlbnRHcm91cC0+dHJhY2tzLmFwcGVuZCh0ZXh0VHJhY2spOwog
ICAgIH0KLSAgICAKKwogICAgIGlmIChjYXB0aW9uQW5kU3VidGl0bGVUcmFja3MudHJhY2tzLnNp
emUoKSkKICAgICAgICAgY29uZmlndXJlVGV4dFRyYWNrR3JvdXAoY2FwdGlvbkFuZFN1YnRpdGxl
VHJhY2tzKTsKICAgICBpZiAoZGVzY3JpcHRpb25UcmFja3MudHJhY2tzLnNpemUoKSkKQEAgLTQy
ODksNyArNDI4OSw3IEBAIFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hp
bGQoQ29udGVudFR5cGUqIGNvbnRlbnRUeXBlLCBTdHJpbmcqIGtlCiAjZW5kaWYKICAgICAgICAg
aWYgKG1lZGlhVVJMLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGdvdG8gQ2hlY2tBZ2FpbjsKLSAg
ICAgICAgCisKICAgICAgICAgaWYgKGF1dG8qIG1lZGlhID0gc291cmNlLT5wYXJzZWRNZWRpYUF0
dHJpYnV0ZSgpKSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICAgICAgaWYgKHNob3VsZExv
ZykKQEAgLTQzNzIsMTMgKzQzNzIsMTMgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VX
YXNBZGRlZChIVE1MU291cmNlRWxlbWVudCYgc291cmNlKQogICAgICAgICBMT0coTWVkaWEsICJI
VE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VXYXNBZGRlZCglcCkgLSAnc3JjJyBpcyAlcyIsIHRoaXMs
IHVybEZvckxvZ2dpbmdNZWRpYSh1cmwpLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KICNlbmRpZgot
ICAgIAorCiAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgY29uc2lkZXIgYSA8c291cmNlPiBlbGVtZW50
IHdoZW4gdGhlcmUgaXMgbm90IHNyYyBhdHRyaWJ1dGUgYXQgYWxsLgogICAgIGlmIChoYXNBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHNyY0F0dHIpKQogICAgICAgICByZXR1cm47CiAK
LSAgICAvLyA0LjguOCAtIElmIGEgc291cmNlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgYXMgYSBjaGls
ZCBvZiBhIG1lZGlhIGVsZW1lbnQgdGhhdCBoYXMgbm8gc3JjIAotICAgIC8vIGF0dHJpYnV0ZSBh
bmQgd2hvc2UgbmV0d29ya1N0YXRlIGhhcyB0aGUgdmFsdWUgTkVUV09SS19FTVBUWSwgdGhlIHVz
ZXIgYWdlbnQgbXVzdCBpbnZva2UgCisgICAgLy8gNC44LjggLSBJZiBhIHNvdXJjZSBlbGVtZW50
IGlzIGluc2VydGVkIGFzIGEgY2hpbGQgb2YgYSBtZWRpYSBlbGVtZW50IHRoYXQgaGFzIG5vIHNy
YworICAgIC8vIGF0dHJpYnV0ZSBhbmQgd2hvc2UgbmV0d29ya1N0YXRlIGhhcyB0aGUgdmFsdWUg
TkVUV09SS19FTVBUWSwgdGhlIHVzZXIgYWdlbnQgbXVzdCBpbnZva2UKICAgICAvLyB0aGUgbWVk
aWEgZWxlbWVudCdzIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCiAgICAgaWYgKG1fbmV0
d29ya1N0YXRlID09IE5FVFdPUktfRU1QVFkpIHsKICAgICAgICAgbV9uZXh0Q2hpbGROb2RlVG9D
b25zaWRlciA9ICZzb3VyY2U7CkBAIC00Mzk3LDE3ICs0Mzk3LDE3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c291cmNlV2FzQWRkZWQoSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSkKIAogICAg
IGlmIChtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVyKQogICAgICAgICByZXR1cm47Ci0gICAgCisK
ICAgICAvLyA0LjguOS41LCByZXNvdXJjZSBzZWxlY3Rpb24gYWxnb3JpdGhtLCBzb3VyY2UgZWxl
bWVudHMgc2VjdGlvbjoKICAgICAvLyAyMS4gV2FpdCB1bnRpbCB0aGUgbm9kZSBhZnRlciBwb2lu
dGVyIGlzIGEgbm9kZSBvdGhlciB0aGFuIHRoZSBlbmQgb2YgdGhlIGxpc3QuIChUaGlzIHN0ZXAg
bWlnaHQgd2FpdCBmb3JldmVyLikKICAgICAvLyAyMi4gQXN5bmNocm9ub3VzbHkgYXdhaXQgYSBz
dGFibGUgc3RhdGUuLi4KLSAgICAvLyAyMy4gU2V0IHRoZSBlbGVtZW50J3MgZGVsYXlpbmctdGhl
LWxvYWQtZXZlbnQgZmxhZyBiYWNrIHRvIHRydWUgKHRoaXMgZGVsYXlzIHRoZSBsb2FkIGV2ZW50
IGFnYWluLCBpbiBjYXNlIAorICAgIC8vIDIzLiBTZXQgdGhlIGVsZW1lbnQncyBkZWxheWluZy10
aGUtbG9hZC1ldmVudCBmbGFnIGJhY2sgdG8gdHJ1ZSAodGhpcyBkZWxheXMgdGhlIGxvYWQgZXZl
bnQgYWdhaW4sIGluIGNhc2UKICAgICAvLyBpdCBoYXNuJ3QgYmVlbiBmaXJlZCB5ZXQpLgogICAg
IHNldFNob3VsZERlbGF5TG9hZEV2ZW50KHRydWUpOwogCiAgICAgLy8gMjQuIFNldCB0aGUgbmV0
d29ya1N0YXRlIGJhY2sgdG8gTkVUV09SS19MT0FESU5HLgogICAgIG1fbmV0d29ya1N0YXRlID0g
TkVUV09SS19MT0FESU5HOwotICAgIAorCiAgICAgLy8gMjUuIEp1bXAgYmFjayB0byB0aGUgZmlu
ZCBuZXh0IGNhbmRpZGF0ZSBzdGVwIGFib3ZlLgogICAgIG1fbmV4dENoaWxkTm9kZVRvQ29uc2lk
ZXIgPSAmc291cmNlOwogICAgIHNjaGVkdWxlTmV4dFNvdXJjZUNoaWxkKCk7CkBAIC00NDMyLDcg
KzQ0MzIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc1JlbW92ZWQoSFRNTFNv
dXJjZUVsZW1lbnQmIHNvdXJjZSkKICAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVu
dDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVyIHNldCB0byAl
cCIsIHRoaXMsIG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXIuZ2V0KCkpOwogICAgIH0gZWxzZSBp
ZiAoJnNvdXJjZSA9PSBtX2N1cnJlbnRTb3VyY2VOb2RlKSB7CiAgICAgICAgIC8vIENsZWFyIHRo
ZSBjdXJyZW50IHNvdXJjZSBub2RlIHBvaW50ZXIsIGJ1dCBkb24ndCBjaGFuZ2UgdGhlIG1vdmll
IGFzIHRoZSBzcGVjIHNheXM6Ci0gICAgICAgIC8vIDQuOC44IC0gRHluYW1pY2FsbHkgbW9kaWZ5
aW5nIGEgc291cmNlIGVsZW1lbnQgYW5kIGl0cyBhdHRyaWJ1dGUgd2hlbiB0aGUgZWxlbWVudCBp
cyBhbHJlYWR5IAorICAgICAgICAvLyA0LjguOCAtIER5bmFtaWNhbGx5IG1vZGlmeWluZyBhIHNv
dXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4gdGhlIGVsZW1lbnQgaXMgYWxyZWFk
eQogICAgICAgICAvLyBpbnNlcnRlZCBpbiBhIHZpZGVvIG9yIGF1ZGlvIGVsZW1lbnQgd2lsbCBo
YXZlIG5vIGVmZmVjdC4KICAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAg
ICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVJlbW92ZWQoJXApIC0g
bV9jdXJyZW50U291cmNlTm9kZSBzZXQgdG8gMCIsIHRoaXMpOwpAQCAtNDQ1NSw4ICs0NDU1LDgg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxh
eWVyKikKICAgICAvLyA0LjguMTAuOSBzdGVwIDE0ICYgMTUuICBOZWVkZWQgaWYgbm8gUmVhZHlT
dGF0ZSBjaGFuZ2UgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWVrLgogICAgIGlmIChtX3NlZWtS
ZXF1ZXN0ZWQgJiYgbV9yZWFkeVN0YXRlID49IEhBVkVfQ1VSUkVOVF9EQVRBICYmICFtX3BsYXll
ci0+c2Vla2luZygpKQogICAgICAgICBmaW5pc2hTZWVrKCk7Ci0gICAgCi0gICAgLy8gQWx3YXlz
IGNhbGwgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQgd2hlbiB0aGUgbWVkaWEgZW5naW5lIHJlcG9y
dHMgYSB0aW1lIGRpc2NvbnRpbnVpdHksIAorCisgICAgLy8gQWx3YXlzIGNhbGwgc2NoZWR1bGVU
aW1ldXBkYXRlRXZlbnQgd2hlbiB0aGUgbWVkaWEgZW5naW5lIHJlcG9ydHMgYSB0aW1lIGRpc2Nv
bnRpbnVpdHksCiAgICAgLy8gaXQgd2lsbCBvbmx5IHF1ZXVlIGEgJ3RpbWV1cGRhdGUnIGV2ZW50
IGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBwb3N0ZWQgb25lIGF0IHRoZSBjdXJyZW50CiAgICAgLy8g
bW92aWUgdGltZS4KICAgICBlbHNlCkBAIC00Nzc2LDcgKzQ3NzYsNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKE1lZGlhUGxheWVy
KikKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5n
ZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKCVwKSIsIHRoaXMpOwotICAgIAorCiAgICAg
YmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwogCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQpAQCAtNDg3NSw3ICs0ODc1LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpwb3Rl
bnRpYWxseVBsYXlpbmcoKSBjb25zdAogewogICAgIGlmIChpc0Jsb2NrZWRPbk1lZGlhQ29udHJv
bGxlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBpZiAoIWNvdWxkUGxh
eUlmRW5vdWdoRGF0YSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTQ5MTAsOCArNDkx
MCw4IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZW5kZWRQbGF5YmFjaygpIGNvbnN0CiAKICAg
ICAvLyA0LjguMTAuOCBQbGF5aW5nIHRoZSBtZWRpYSByZXNvdXJjZQogCi0gICAgLy8gQSBtZWRp
YSBlbGVtZW50IGlzIHNhaWQgdG8gaGF2ZSBlbmRlZCBwbGF5YmFjayB3aGVuIHRoZSBlbGVtZW50
J3MgCi0gICAgLy8gcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgSEFWRV9NRVRBREFUQSBvciBncmVh
dGVyLCAKKyAgICAvLyBBIG1lZGlhIGVsZW1lbnQgaXMgc2FpZCB0byBoYXZlIGVuZGVkIHBsYXli
YWNrIHdoZW4gdGhlIGVsZW1lbnQncworICAgIC8vIHJlYWR5U3RhdGUgYXR0cmlidXRlIGlzIEhB
VkVfTUVUQURBVEEgb3IgZ3JlYXRlciwKICAgICBpZiAobV9yZWFkeVN0YXRlIDwgSEFWRV9NRVRB
REFUQSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC00OTIyLDcgKzQ5MjIsNyBAQCBib29s
IEhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkUGxheWJhY2soKSBjb25zdAogICAgIGlmIChyZXF1ZXN0
ZWRQbGF5YmFja1JhdGUoKSA+IDApCiAgICAgICAgIHJldHVybiBkdXIgPiBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkgJiYgbm93ID49IGR1ciAmJiAoIWxvb3AoKSB8fCBtX21lZGlhQ29udHJvbGxlcik7
CiAKLSAgICAvLyBvciB0aGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBpcyB0aGUgZWFybGll
c3QgcG9zc2libGUgcG9zaXRpb24gYW5kIHRoZSBkaXJlY3Rpb24gCisgICAgLy8gb3IgdGhlIGN1
cnJlbnQgcGxheWJhY2sgcG9zaXRpb24gaXMgdGhlIGVhcmxpZXN0IHBvc3NpYmxlIHBvc2l0aW9u
IGFuZCB0aGUgZGlyZWN0aW9uCiAgICAgLy8gb2YgcGxheWJhY2sgaXMgYmFja3dhcmRzCiAgICAg
aWYgKHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpIDwgMCkKICAgICAgICAgcmV0dXJuIG5vdyA8PSBN
ZWRpYVRpbWU6Onplcm9UaW1lKCk7CkBAIC00OTM3LDcgKzQ5MzcsNyBAQCBib29sIEhUTUxNZWRp
YUVsZW1lbnQ6OnN0b3BwZWREdWVUb0Vycm9ycygpIGNvbnN0CiAgICAgICAgIGlmICghc2Vla2Fi
bGVSYW5nZXMtPmNvbnRhaW4oY3VycmVudFRpbWUoKSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTQ5NTgsNyArNDk1
OCw3IEBAIE1lZGlhVGltZSBIVE1MTWVkaWFFbGVtZW50OjptYXhUaW1lU2Vla2FibGUoKSBjb25z
dAogewogICAgIHJldHVybiBtX3BsYXllciA/IG1fcGxheWVyLT5tYXhUaW1lU2Vla2FibGUoKSA6
IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIH0KLSAgICAKKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp1cGRhdGVWb2x1bWUoKQogewogICAgIGlmICghbV9wbGF5ZXIpCkBAIC01MDIxLDcgKzUwMjEs
NyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0ZShVcGRhdGVTdGF0ZSB1
cGRhdGVTdGF0ZSkKICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+cGxheWJhY2tTdG9wcGVk
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBib29sIHNob3VsZEJlUGxh
eWluZyA9IHBvdGVudGlhbGx5UGxheWluZygpOwogICAgIGJvb2wgcGxheWVyUGF1c2VkID0gbV9w
bGF5ZXItPnBhdXNlZCgpOwogCkBAIC01MDc4LDcgKzUwNzgsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0ZShVcGRhdGVTdGF0ZSB1cGRhdGVTdGF0ZSkKICAgICAgICAg
aWYgKGhhc01lZGlhQ29udHJvbHMoKSkKICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+cGxh
eWJhY2tTdG9wcGVkKCk7CiAgICAgfQotICAgIAorCiAgICAgdXBkYXRlTWVkaWFDb250cm9sbGVy
KCk7CiAgICAgdXBkYXRlUmVuZGVyZXIoKTsKIApAQCAtNTE0Nyw5ICs1MTQ3LDkgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgZGV0YWNoTWVkaWFTb3Vy
Y2UoKTsKICNlbmRpZgogCi0gICAgLy8gNCAtIElmIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVhZHlT
dGF0ZSBhdHRyaWJ1dGUgaGFzIGEgdmFsdWUgZXF1YWwgdG8gSEFWRV9OT1RISU5HLCBzZXQgdGhl
IAotICAgIC8vIGVsZW1lbnQncyBuZXR3b3JrU3RhdGUgYXR0cmlidXRlIHRvIHRoZSBORVRXT1JL
X0VNUFRZIHZhbHVlIGFuZCBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIAotICAgIC8vIHNpbXBsZSBl
dmVudCBuYW1lZCBlbXB0aWVkIGF0IHRoZSBlbGVtZW50LiBPdGhlcndpc2UsIHNldCB0aGUgZWxl
bWVudCdzIG5ldHdvcmtTdGF0ZSAKKyAgICAvLyA0IC0gSWYgdGhlIG1lZGlhIGVsZW1lbnQncyBy
ZWFkeVN0YXRlIGF0dHJpYnV0ZSBoYXMgYSB2YWx1ZSBlcXVhbCB0byBIQVZFX05PVEhJTkcsIHNl
dCB0aGUKKyAgICAvLyBlbGVtZW50J3MgbmV0d29ya1N0YXRlIGF0dHJpYnV0ZSB0byB0aGUgTkVU
V09SS19FTVBUWSB2YWx1ZSBhbmQgcXVldWUgYSB0YXNrIHRvIGZpcmUgYQorICAgIC8vIHNpbXBs
ZSBldmVudCBuYW1lZCBlbXB0aWVkIGF0IHRoZSBlbGVtZW50LiBPdGhlcndpc2UsIHNldCB0aGUg
ZWxlbWVudCdzIG5ldHdvcmtTdGF0ZQogICAgIC8vIGF0dHJpYnV0ZSB0byB0aGUgTkVUV09SS19J
RExFIHZhbHVlLgogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gSEFWRV9OT1RISU5HKSB7CiAgICAg
ICAgIG1fbmV0d29ya1N0YXRlID0gTkVUV09SS19FTVBUWTsKQEAgLTUyMzksNyArNTIzOSw3IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2xlYXJNZWRpYVBsYXllcihEZWxheWVkQWN0aW9uVHlw
ZSBmbGFncykKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJ1ZTsgCisgICAgcmV0dXJuIHRydWU7
CiB9CiAKIGNvbnN0IGNoYXIqIEhUTUxNZWRpYUVsZW1lbnQ6OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdApAQCAtNTQ2Niw3ICs1NDY2LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjphZGRF
dmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnQKICAg
ICB9CiAKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjphZGRFdmVudExpc3RlbmVy
KCVwKSAtICd3ZWJraXRwbGF5YmFja3RhcmdldGF2YWlsYWJpbGl0eWNoYW5nZWQnIiwgdGhpcyk7
Ci0gICAgCisKICAgICBlbnF1ZXVlUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlDaGFuZ2VkRXZl
bnQoKTsgLy8gRW5zdXJlIHRoZSBldmVudCBsaXN0ZW5lciBnZXRzIGF0IGxlYXN0IG9uZSBldmVu
dC4KICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTU1NDYsMTcgKzU1NDYsMTcgQEAgZG91YmxlIEhU
TUxNZWRpYUVsZW1lbnQ6Om1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcGxheWVyID8gbV9wbGF5ZXItPm1heEZhc3RGb3J3YXJkUmF0ZSgpIDogMDsKIH0KLSAgICAK
KwogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4oKSBjb25zdAogewogICAgIGlm
IChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpCiAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIAorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IGlmIChkb2N1bWVudCgpLndlYmtpdElzRnVsbFNjcmVlbigpICYmIGRvY3VtZW50KCkud2Via2l0
Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkgPT0gdGhpcykKICAgICAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKLSAgICAKKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtNTU3Myw3ICs1NTcz
LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1N0YW5kYXJkRnVsbHNjcmVlbigpIGNvbnN0
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRvZ2dsZVN0YW5kYXJkRnVsbHNjcmVlblN0YXRlKCkK
IHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojp0b2dnbGVTdGFuZGFyZEZ1bGxz
Y3JlZW5TdGF0ZSglcCkgLSBpc1N0YW5kYXJkRnVsbHNjcmVlbigpIGlzICVzIiwgdGhpcywgYm9v
bFN0cmluZyhpc1N0YW5kYXJkRnVsbHNjcmVlbigpKSk7Ci0gICAgCisKICAgICBpZiAoaXNTdGFu
ZGFyZEZ1bGxzY3JlZW4oKSkKICAgICAgICAgZXhpdEZ1bGxzY3JlZW4oKTsKICAgICBlbHNlCkBA
IC01NzM3LDcgKzU3MzcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJl
ZEZvcklubGluZVRoZW4oV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcAogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorCiAgICAgbV9w
cmVwYXJlZEZvcklubGluZUNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcik7CiB9CiAKQEAgLTU3NDcsNyArNTc0Nyw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
aXNWaWRlb0xheWVySW5saW5lKCkKIHsKICAgICByZXR1cm4gIW1fdmlkZW9GdWxsc2NyZWVuTGF5
ZXI7CiB9OwotICAgIAorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVl
bkxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSBw
bGF0Zm9ybUxheWVyOwpAQCAtNTc1NSwxNCArNTc1NSwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIs
IFdURgogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIAorCiAgICAgbV9wbGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHBsYXRmb3Jt
TGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICBpbnZhbGlkYXRlU3R5bGVB
bmRMYXllckNvbXBvc2l0aW9uKCk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHVwZGF0
ZVRleHRUcmFja0Rpc3BsYXkoKTsKICNlbmRpZgogfQotICAgIAorCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKICAgICBt
X3ZpZGVvRnVsbHNjcmVlbkZyYW1lID0gZnJhbWU7CkBAIC01Nzc2LDkgKzU3NzYsOSBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6
OlZpZGVvR3Jhdml0eSBncmF2aQogICAgIGlmIChtX3BsYXllcikKICAgICAgICAgbV9wbGF5ZXIt
PnNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoZ3Jhdml0eSk7CiB9Ci0gICAgCisKICNlbHNlCi0g
ICAgCisKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNWaWRlb0xheWVySW5saW5lKCkKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTU4MjMsNyArNTgyMyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpCiAjZWxzZQogICAgIGlmICghaGFzTWVkaWFDb250
cm9scygpICYmICFjcmVhdGVNZWRpYUNvbnRyb2xzKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAK
KwogICAgIG1lZGlhQ29udHJvbHMoKS0+dXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpOwogI2VuZGlm
CiB9CkBAIC01OTcyLDcgKzU5NzIsNyBAQCBNZWRpYUNvbnRyb2xzKiBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYUNvbnRyb2xzKCkgY29uc3QKICAgICBTaGFkb3dSb290KiByb290ID0gdXNlckFnZW50
U2hhZG93Um9vdCgpOwogICAgIGlmICghcm9vdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgCisKICAgICByZXR1cm4gY2hpbGRyZW5PZlR5cGU8TWVkaWFDb250cm9scz4oKnJvb3QpLmZp
cnN0KCk7CiAjZW5kaWYKIH0KQEAgLTYxMDQsNyArNjEwNCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6Y29uZmlndXJlVGV4dFRyYWNrRGlzcGxheShUZXh0VHJhY2tWaXNpYmlsaXR5Q2hlY2tU
eXBlIGNoCiAgICAgICAgIHJldHVybjsKIAogICAgIG1lZGlhQ29udHJvbHMoKS0+Y2hhbmdlZENs
b3NlZENhcHRpb25zVmlzaWJpbGl0eSgpOwotICAgIAorCiAgICAgdXBkYXRlVGV4dFRyYWNrRGlz
cGxheSgpOwogICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSgp
KTsKICNlbmRpZgpAQCAtNjIzNSw3ICs2MjM1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZXRNZWRpYUdyb3VwKGNvbnN0IFN0cmluZyYgZ3JvdXApCiAgICAgICAgIHJldHVybjsKICAgICBt
X21lZGlhR3JvdXAgPSBncm91cDsKIAotICAgIC8vIFdoZW4gYSBtZWRpYSBlbGVtZW50IGlzIGNy
ZWF0ZWQgd2l0aCBhIG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBhbmQgd2hlbiBhIG1lZGlhIGVsZW1l
bnQncyBtZWRpYWdyb3VwIAorICAgIC8vIFdoZW4gYSBtZWRpYSBlbGVtZW50IGlzIGNyZWF0ZWQg
d2l0aCBhIG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBhbmQgd2hlbiBhIG1lZGlhIGVsZW1lbnQncyBt
ZWRpYWdyb3VwCiAgICAgLy8gYXR0cmlidXRlIGlzIHNldCwgY2hhbmdlZCwgb3IgcmVtb3ZlZCwg
dGhlIHVzZXIgYWdlbnQgbXVzdCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAvLyAxLiBM
ZXQgbSBbdGhpc10gYmUgdGhlIG1lZGlhIGVsZW1lbnQgaW4gcXVlc3Rpb24uCiAgICAgLy8gMi4g
TGV0IG0gaGF2ZSBubyBjdXJyZW50IG1lZGlhIGNvbnRyb2xsZXIsIGlmIGl0IGN1cnJlbnRseSBo
YXMgb25lLgpAQCAtNjI0NiwxNCArNjI0NiwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNl
dE1lZGlhR3JvdXAoY29uc3QgU3RyaW5nJiBncm91cCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gNC4gSWYgdGhlcmUgaXMgYW5vdGhlciBtZWRpYSBlbGVtZW50IHdob3NlIERvY3VtZW50IGlz
IHRoZSBzYW1lIGFzIG0ncyBEb2N1bWVudCAoZXZlbiBpZiBvbmUgb3IgYm90aAotICAgIC8vIG9m
IHRoZXNlIGVsZW1lbnRzIGFyZSBub3QgYWN0dWFsbHkgaW4gdGhlIERvY3VtZW50KSwgCisgICAg
Ly8gb2YgdGhlc2UgZWxlbWVudHMgYXJlIG5vdCBhY3R1YWxseSBpbiB0aGUgRG9jdW1lbnQpLAog
ICAgIEhhc2hTZXQ8SFRNTE1lZGlhRWxlbWVudCo+IGVsZW1lbnRzID0gZG9jdW1lbnRUb0VsZW1l
bnRTZXRNYXAoKS5nZXQoJmRvY3VtZW50KCkpOwogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGVs
ZW1lbnRzKSB7CiAgICAgICAgIGlmIChlbGVtZW50ID09IHRoaXMpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAogICAgICAgICAvLyBhbmQgd2hpY2ggYWxzbyBoYXMgYSBtZWRpYWdyb3VwIGF0dHJp
YnV0ZSwgYW5kIHdob3NlIG1lZGlhZ3JvdXAgYXR0cmlidXRlIGhhcyB0aGUgc2FtZSB2YWx1ZSBh
cwotICAgICAgICAvLyB0aGUgbmV3IHZhbHVlIG9mIG0ncyBtZWRpYWdyb3VwIGF0dHJpYnV0ZSwg
ICAgICAgIAorICAgICAgICAvLyB0aGUgbmV3IHZhbHVlIG9mIG0ncyBtZWRpYWdyb3VwIGF0dHJp
YnV0ZSwKICAgICAgICAgaWYgKGVsZW1lbnQtPm1lZGlhR3JvdXAoKSA9PSBncm91cCkgewogICAg
ICAgICAgICAgLy8gIHRoZW4gbGV0IGNvbnRyb2xsZXIgYmUgdGhhdCBtZWRpYSBlbGVtZW50J3Mg
Y3VycmVudCBtZWRpYSBjb250cm9sbGVyLgogICAgICAgICAgICAgc2V0Q29udHJvbGxlcihlbGVt
ZW50LT5jb250cm9sbGVyKCkpOwpAQCAtNjI4Nyw3ICs2Mjg3LDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzZXRDb250cm9sbGVyKFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+JiYgY29udHJvbGxl
cikKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlckZvckJpbmRpbmdzKE1lZGlh
Q29udHJvbGxlciogY29udHJvbGxlcikKIHsKICAgICAvLyA0LjguMTAuMTEuMiBNZWRpYSBjb250
cm9sbGVyczogY29udHJvbGxlciBhdHRyaWJ1dGUuCi0gICAgLy8gT24gc2V0dGluZywgaXQgbXVz
dCBmaXJzdCByZW1vdmUgdGhlIGVsZW1lbnQncyBtZWRpYWdyb3VwIGF0dHJpYnV0ZSwgaWYgYW55
LCAKKyAgICAvLyBPbiBzZXR0aW5nLCBpdCBtdXN0IGZpcnN0IHJlbW92ZSB0aGUgZWxlbWVudCdz
IG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBpZiBhbnksCiAgICAgc2V0TWVkaWFHcm91cCh7IH0pOwog
ICAgIC8vIGFuZCB0aGVuIHNldCB0aGUgY3VycmVudCBtZWRpYSBjb250cm9sbGVyIHRvIHRoZSBn
aXZlbiB2YWx1ZS4KICAgICBzZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwpAQCAtNjMxNSwxMyAr
NjMxNSwxMyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzQmxvY2tlZE9uTWVkaWFDb250cm9s
bGVyKCkgY29uc3QKICAgICBpZiAoIW1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICAvLyBBIG1lZGlhIGVsZW1lbnQgaXMgYmxvY2tlZCBvbiBpdHMgbWVkaWEg
Y29udHJvbGxlciBpZiB0aGUgTWVkaWFDb250cm9sbGVyIGlzIGEgYmxvY2tlZCAKKyAgICAvLyBB
IG1lZGlhIGVsZW1lbnQgaXMgYmxvY2tlZCBvbiBpdHMgbWVkaWEgY29udHJvbGxlciBpZiB0aGUg
TWVkaWFDb250cm9sbGVyIGlzIGEgYmxvY2tlZAogICAgIC8vIG1lZGlhIGNvbnRyb2xsZXIsCiAg
ICAgaWYgKG1fbWVkaWFDb250cm9sbGVyLT5pc0Jsb2NrZWQoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKLSAgICAvLyBvciBpZiBpdHMgbWVkaWEgY29udHJvbGxlciBwb3NpdGlvbiBpcyBlaXRo
ZXIgYmVmb3JlIHRoZSBtZWRpYSByZXNvdXJjZSdzIGVhcmxpZXN0IHBvc3NpYmxlIAotICAgIC8v
IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBNZWRpYUNvbnRyb2xsZXIncyB0aW1lbGluZSBvciBh
ZnRlciB0aGUgZW5kIG9mIHRoZSBtZWRpYSByZXNvdXJjZSAKKyAgICAvLyBvciBpZiBpdHMgbWVk
aWEgY29udHJvbGxlciBwb3NpdGlvbiBpcyBlaXRoZXIgYmVmb3JlIHRoZSBtZWRpYSByZXNvdXJj
ZSdzIGVhcmxpZXN0IHBvc3NpYmxlCisgICAgLy8gcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIE1l
ZGlhQ29udHJvbGxlcidzIHRpbWVsaW5lIG9yIGFmdGVyIHRoZSBlbmQgb2YgdGhlIG1lZGlhIHJl
c291cmNlCiAgICAgLy8gcmVsYXRpdmUgdG8gdGhlIE1lZGlhQ29udHJvbGxlcidzIHRpbWVsaW5l
LgogICAgIGRvdWJsZSBtZWRpYUNvbnRyb2xsZXJQb3NpdGlvbiA9IG1fbWVkaWFDb250cm9sbGVy
LT5jdXJyZW50VGltZSgpOwogICAgIGlmIChtZWRpYUNvbnRyb2xsZXJQb3NpdGlvbiA8IDAgfHwg
bWVkaWFDb250cm9sbGVyUG9zaXRpb24gPiBkdXJhdGlvbigpKQpAQCAtNjMzNCw3ICs2MzM0LDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlTWVkaWFGcmFnbWVudFVSSSgpCiB7CiAg
ICAgTWVkaWFGcmFnbWVudFVSSVBhcnNlciBmcmFnbWVudFBhcnNlcihtX2N1cnJlbnRTcmMpOwog
ICAgIE1lZGlhVGltZSBkdXIgPSBkdXJhdGlvbk1lZGlhVGltZSgpOwotICAgIAorCiAgICAgTWVk
aWFUaW1lIHN0YXJ0ID0gZnJhZ21lbnRQYXJzZXIuc3RhcnRUaW1lKCk7CiAgICAgaWYgKHN0YXJ0
LmlzVmFsaWQoKSAmJiBzdGFydCA+IE1lZGlhVGltZTo6emVyb1RpbWUoKSkgewogICAgICAgICBt
X2ZyYWdtZW50U3RhcnRUaW1lID0gc3RhcnQ7CkBAIC02MzQyLDcgKzYzNDIsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVNZWRpYUZyYWdtZW50VVJJKCkKICAgICAgICAgICAgIG1f
ZnJhZ21lbnRTdGFydFRpbWUgPSBkdXI7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fZnJhZ21lbnRT
dGFydFRpbWUgPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7Ci0gICAgCisKICAgICBNZWRpYVRp
bWUgZW5kID0gZnJhZ21lbnRQYXJzZXIuZW5kVGltZSgpOwogICAgIGlmIChlbmQuaXNWYWxpZCgp
ICYmIGVuZCA+IE1lZGlhVGltZTo6emVyb1RpbWUoKSAmJiAoIW1fZnJhZ21lbnRTdGFydFRpbWUu
aXNWYWxpZCgpIHx8IGVuZCA+IG1fZnJhZ21lbnRTdGFydFRpbWUpKSB7CiAgICAgICAgIG1fZnJh
Z21lbnRFbmRUaW1lID0gZW5kOwpAQCAtNjM1MCw3ICs2MzUwLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpwcmVwYXJlTWVkaWFGcmFnbWVudFVSSSgpCiAgICAgICAgICAgICBtX2ZyYWdtZW50
RW5kVGltZSA9IGR1cjsKICAgICB9IGVsc2UKICAgICAgICAgbV9mcmFnbWVudEVuZFRpbWUgPSBN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7Ci0gICAgCisKICAgICBpZiAobV9mcmFnbWVudFN0YXJ0
VGltZS5pc1ZhbGlkKCkgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkKICAgICAg
ICAgcHJlcGFyZVRvUGxheSgpOwogfQpAQCAtNjg4Niw3ICs2ODg2LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiAK
ICAgICBhdXRvIG1lZGlhSlNXcmFwcGVyID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICp0aGlz
KTsKICAgICBhdXRvIG1lZGlhQ29udHJvbHNIb3N0SlNXcmFwcGVyID0gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsICptX21lZGlhQ29udHJvbHNIb3N0KTsKLSAgICAKKwogICAgIEpTQzo6TWFya2Vk
QXJndW1lbnRCdWZmZXIgYXJnTGlzdDsKICAgICBhcmdMaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgcm9vdCkpOwogICAgIGFyZ0xpc3QuYXBwZW5kKG1lZGlhSlNXcmFwcGVyKTsK
QEAgLTY5MDksNyArNjkwOSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVXNlckFn
ZW50U2hhZG93Um9vdChTaGFkb3dSb290KiByb290KQogICAgIEpTQzo6SlNPYmplY3QqIG1lZGlh
SlNXcmFwcGVyT2JqZWN0ID0gbWVkaWFKU1dyYXBwZXIudG9PYmplY3QoZXhlYyk7CiAgICAgc2Nv
cGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICBKU0M6OklkZW50aWZpZXIgY29udHJvbHNIb3N0
ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZleGVjLT52bSgpLCAiY29udHJvbHNIb3N0
Iik7Ci0gICAgCisKICAgICBBU1NFUlQoIW1lZGlhSlNXcmFwcGVyT2JqZWN0LT5oYXNQcm9wZXJ0
eShleGVjLCBjb250cm9sc0hvc3QpKTsKIAogICAgIG1lZGlhSlNXcmFwcGVyT2JqZWN0LT5wdXRE
aXJlY3QoZXhlYy0+dm0oKSwgY29udHJvbHNIb3N0LCBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBl
ciwgSlNDOjpEb250RGVsZXRlIHwgSlNDOjpEb250RW51bSB8IEpTQzo6UmVhZE9ubHkpOwpAQCAt
NjkxNyw3ICs2OTE3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRT
aGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgSlNDOjpKU09iamVjdCogbWVkaWFDb250
cm9sc0hvc3RKU1dyYXBwZXJPYmplY3QgPSBqc0R5bmFtaWNEb3duY2FzdDxKU0M6OkpTT2JqZWN0
Kj4odm0sIG1lZGlhQ29udHJvbHNIb3N0SlNXcmFwcGVyKTsKICAgICBpZiAoIW1lZGlhQ29udHJv
bHNIb3N0SlNXcmFwcGVyT2JqZWN0KQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICBKU0M6
OklkZW50aWZpZXIgY29udHJvbGxlciA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmZXhl
Yy0+dm0oKSwgImNvbnRyb2xsZXIiKTsKIAogICAgIEFTU0VSVCghY29udHJvbGxlck9iamVjdC0+
aGFzUHJvcGVydHkoZXhlYywgY29udHJvbGxlcikpOwpAQCAtNzAzOCw3ICs3MDM4LDcgQEAgdW5z
aWduZWQgbG9uZyBsb25nIEhUTUxNZWRpYUVsZW1lbnQ6OmZpbGVTaXplKCkgY29uc3QKIHsKICAg
ICBpZiAobV9wbGF5ZXIpCiAgICAgICAgIHJldHVybiBtX3BsYXllci0+ZmlsZVNpemUoKTsKLSAg
ICAKKwogICAgIHJldHVybiAwOwogfQogCkBAIC03MTM3LDEyICs3MTM3LDEyIEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bWF5UmVzdW1lUGxheWJhY2soYm9vbCBzaG91bGRSZXN1bWUpCiAgICAg
aWYgKHBhdXNlZCgpICYmIHNob3VsZFJlc3VtZSkKICAgICAgICAgcGxheSgpOwogfQotICAgIAor
CiBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVGl0bGUoKSBjb25zdAogewog
ICAgIGlmIChoYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHRpdGxlQXR0cikpCiAg
ICAgICAgIHJldHVybiBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHRpdGxlQXR0cik7
Ci0gICAgCisKICAgICByZXR1cm4gbV9jdXJyZW50U3JjOwogfQogCkBAIC03MTg2LDEyICs3MTg2
LDEyIEBAIHN0YXRpYyBib29sIG5lZWRzU2Vla2luZ1N1cHBvcnRRdWlyayhEb2N1bWVudCYgZG9j
dW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLm5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIAorCiAgICAgU3Ry
aW5nIGhvc3QgPSBkb2N1bWVudC50b3BEb2N1bWVudCgpLnVybCgpLmhvc3QoKTsKICAgICByZXR1
cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgIm5ldGZsaXguY29tIikgfHwg
aG9zdC5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIubmV0ZmxpeC5jb20iKTsKIH0KIAotYm9v
bCBIVE1MTWVkaWFFbGVtZW50OjpzdXBwb3J0c1NlZWtpbmcoKSBjb25zdCAKK2Jvb2wgSFRNTE1l
ZGlhRWxlbWVudDo6c3VwcG9ydHNTZWVraW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4gIW5lZWRz
U2Vla2luZ1N1cHBvcnRRdWlyayhkb2N1bWVudCgpKSAmJiAhaXNMaXZlU3RyZWFtKCk7CiB9CkBA
IC03MzUyLDEzICs3MzUyLDEzIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZG9lc0hhdmVBdHRy
aWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGUsIEF0b21pY1N0CiAgICAgYXV0byYg
ZWxlbWVudFZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhdHRyaWJ1dGVO
YW1lKTsKICAgICBpZiAoZWxlbWVudFZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgCisKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBIVE1MTmFtZXM6OnhfaXR1bmVz
X2luaGVyaXRfdXJpX3F1ZXJ5X2NvbXBvbmVudEF0dHIgJiYgIWRvY3VtZW50KCkuc2V0dGluZ3Mo
KS5lbmFibGVJbmhlcml0VVJJUXVlcnlDb21wb25lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgaWYgKHZhbHVlKQogICAgICAgICAqdmFsdWUgPSBlbGVtZW50VmFsdWU7Ci0gICAg
CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNzQ2MywxNCArNzQ2MywxNCBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWQo
KQogICAgIGlmIChwb3RlbnRpYWxseVBsYXlpbmcoKSAmJiBtX21lZGlhU2Vzc2lvbi0+cmVxdWly
ZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygqdGhpcykgJiYgIWlzRnVsbHNjcmVlbigpKQog
ICAgICAgICBlbnRlckZ1bGxzY3JlZW4oKTsKIH0KLSAgICAKKwogYm9vbCBIVE1MTWVkaWFFbGVt
ZW50Ojppc1ZpZGVvVG9vU21hbGxGb3JJbmxpbmVQbGF5YmFjaygpCiB7CiAgICAgYXV0byogcmVu
ZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwotICAgIAorCiAgICAgaWYgKCFyZW5kZXJlciB8fCAh
aXM8UmVuZGVyVmlkZW8+KCpyZW5kZXJlcikpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIAor
CiAgICAgSW50UmVjdCB2aWRlb0JveCA9IGRvd25jYXN0PFJlbmRlclZpZGVvPigqcmVuZGVyZXIp
LnZpZGVvQm94KCk7CiAgICAgcmV0dXJuICh2aWRlb0JveC53aWR0aCgpIDw9IDEgfHwgdmlkZW9C
b3guaGVpZ2h0KCkgPD0gMSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcAppbmRleCA3YmNlMzQ4YzRlMi4uZjY0M2Y4NzdjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzY5LDcgKzc2OSw3IEBAIHZvaWQgRG9jdW1lbnRM
b2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlvbiBwb2xpY3kpCiAg
ICAgICAgIC8vIERvd25sb2FkIG1heSB1c2UgdGhpcyBrbm93bGVkZ2UgZm9yIHB1cnBvc2VzIHVu
cmVsYXRlZCB0byBjb29raWVzLCBub3RhYmx5IGZvciBzZXR0aW5nIGZpbGUgcXVhcmFudGluZSBk
YXRhLgogICAgICAgICBmcmFtZUxvYWRlcigpLT5zZXRPcmlnaW5hbFVSTEZvckRvd25sb2FkUmVx
dWVzdChtX3JlcXVlc3QpOwogCi0gICAgICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
ID0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICAgICAgaWYgKGZyYW1l
KCkgJiYgZnJhbWUoKS0+cGFnZSgpKQogICAgICAgICAgICAgc2Vzc2lvbklEID0gZnJhbWUoKS0+
cGFnZSgpLT5zZXNzaW9uSUQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAppbmRleCBjY2RjMDU1ZGNlNC4uNjM2NmMxNWMzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgY2xhc3MgRW1wdHlDb250ZXh0TWVu
dUNsaWVudCBmaW5hbCA6IHB1YmxpYyBDb250ZXh0TWVudUNsaWVudCB7CiAKIGNsYXNzIEVtcHR5
RGF0YWJhc2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBEYXRhYmFzZVByb3ZpZGVyIHsKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1Nl
cnZlciYgaWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBTZXNzaW9uSUQmKSBm
aW5hbAorICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9u
VG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgZmluYWwKICAgICB7CiAg
ICAgICAgIHN0YXRpYyBhdXRvJiBzaGFyZWRDb25uZWN0aW9uID0gSW5Qcm9jZXNzSURCU2VydmVy
OjpjcmVhdGUoKS5sZWFrUmVmKCk7CiAgICAgICAgIHJldHVybiBzaGFyZWRDb25uZWN0aW9uLmNv
bm5lY3Rpb25Ub1NlcnZlcigpOwpAQCAtMjkzLDcgKzI5Myw3IEBAIGNsYXNzIEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQgZmluYWwgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAgIHZvaWQg
ZGV0YWNoZWRGcm9tUGFyZW50MigpIGZpbmFsIHsgfQogICAgIHZvaWQgZGV0YWNoZWRGcm9tUGFy
ZW50MygpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93
bmxvYWQoRG9jdW1lbnRMb2FkZXIqLCBTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbnZlcnRNYWlu
UmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9
CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgZmluYWwgeyB9CiAg
ICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA0ODcyNjU5ZWU1Li5jZmE0NGU0YjJmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTU3LDYgKzU3LDEwIEBA
IE9CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OwogT0JKQ19DTEFTUyBOU1ZpZXc7CiAjZW5kaWYKIAor
bmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CkBAIC05MCw3ICs5NCw2IEBAIGNs
YXNzIFJlc291cmNlSGFuZGxlOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2Vzc2lvbklEOwogY2xh
c3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiBjbGFzcyBVUkw7CkBAIC0y
NzMsNyArMjc2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29t
ZUZyYW1lc2V0KGJvb2wpID0gMDsgLy8gQ2FuIGNoYW5nZSBkdWUgdG8gbmF2aWdhdGlvbiBvciBE
T00gbW9kaWZpY2F0aW9uLgogCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KERvY3VtZW50TG9hZGVyKiwgU2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqLCBQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKIAogICAg
IHZpcnR1YWwgUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQp
ID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRT
aXplJiwgSFRNTFBsdWdJbkVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCBsb2FkTWFudWFs
bHkpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NT
dHlsZVNoZWV0LmNwcAppbmRleCA3NTkyYjIzOTU0My4uOWVkMmIzMWZkNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAg
LTM4LDcgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRDU1NTdHlsZVNo
ZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHls
ZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIENTU1N0eWxl
U2hlZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpj
cmVhdGUoInRleHQvY3NzIiwgcmVxdWVzdC5jaGFyc2V0KCkpKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKaW5kZXggODNjNjdkYjlj
NTMuLmZiMzRkMWNiMDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkQ1NTU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRDU1NTdHlsZVNoZWV0LmgKQEAgLTM0LDcgKzM0LDcgQEAgc3RydWN0IENTU1BhcnNlckNv
bnRleHQ7CiAKIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQgZmluYWwgOiBwdWJsaWMgQ2FjaGVk
UmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZENT
U1N0eWxlU2hlZXQoKTsKIAogICAgIGVudW0gY2xhc3MgTUlNRVR5cGVDaGVja0hpbnQgeyBTdHJp
Y3QsIExheCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZEZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmlu
ZGV4IGQ5MDU2N2NjN2M4Li44OGM1MDgzYzZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRGb250LmNwcApAQCAtNDUsNyArNDUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUNhY2hlZEZvbnQ6OkNhY2hlZEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgVHlwZSB0eXBlKQorQ2FjaGVkRm9udDo6Q2FjaGVk
Rm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFR5cGUgdHlwZSkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCks
IHR5cGUsIHNlc3Npb25JRCkKICAgICAsIG1fbG9hZEluaXRpYXRlZChmYWxzZSkKICAgICAsIG1f
aGFzQ3JlYXRlZEZvbnREYXRhV3JhcHBpbmdSZXNvdXJjZShmYWxzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDdlOWVhOGJkMTAzLi4wMTVjNjUwZDIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCkBAIC00NSw3ICs0NSw3
IEBAIHR5cGVkZWYgRm9udFRhZ2dlZFNldHRpbmdzPGludD4gRm9udEZlYXR1cmVTZXR0aW5nczsK
IAogY2xhc3MgQ2FjaGVkRm9udCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0g
ICAgQ2FjaGVkRm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklELCBUeXBlID0g
Rm9udFJlc291cmNlKTsKKyAgICBDYWNoZWRGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQ
QUw6OlNlc3Npb25JRCwgVHlwZSA9IEZvbnRSZXNvdXJjZSk7CiAgICAgdmlydHVhbCB+Q2FjaGVk
Rm9udCgpOwogCiAgICAgdm9pZCBiZWdpbkxvYWRJZk5lZWRlZChDYWNoZWRSZXNvdXJjZUxvYWRl
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXgg
MTdkNmZmYjFlODUuLjhjYWU3MjQzYTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTU1LDE5ICs1NSwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKENh
Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
ICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIEltYWdlUmVzb3VyY2UsIHNl
c3Npb25JRCkKIHsKICAgICBzZXRTdGF0dXMoVW5rbm93bik7CiB9CiAKLUNhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRJbWFn
ZTo6Q2FjaGVkSW1hZ2UoSW1hZ2UqIGltYWdlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAg
ICAgOiBDYWNoZWRSZXNvdXJjZShVUkwoKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAg
ICwgbV9pbWFnZShpbWFnZSkKIHsKIH0KIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0
IFVSTCYgdXJsLCBJbWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29u
c3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGRvbWFpbkZvckNhY2hlUGFydGl0aW9uKQogICAgIDogQ2FjaGVkUmVzb3VyY2Uo
dXJsLCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAg
ICwgbV9pc01hbnVhbGx5Q2FjaGVkKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5oCmluZGV4IDUyYzQ3NmNmZTFjLi5hN2U4OTg2YTU3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTQ3LDEwICs0NywxMCBAQCBjbGFz
cyBDYWNoZWRJbWFnZSBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiAgICAgZnJpZW5k
IGNsYXNzIE1lbW9yeUNhY2hlOwogCiBwdWJsaWM6Ci0gICAgQ2FjaGVkSW1hZ2UoQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7Ci0gICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqLCBTZXNz
aW9uSUQpOworICAgIENhY2hlZEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQQUw6OlNl
c3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqLCBQQUw6OlNlc3Npb25JRCk7CiAgICAg
Ly8gQ29uc3RydWN0b3IgdG8gdXNlIGZvciBtYW51YWxseSBjYWNoZWQgaW1hZ2VzLgotICAgIENh
Y2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwgU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRv
bWFpbkZvckNhY2hlUGFydGl0aW9uKTsKKyAgICBDYWNoZWRJbWFnZShjb25zdCBVUkwmLCBJbWFn
ZSosIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRvbWFpbkZvckNhY2hlUGFydGl0aW9u
KTsKICAgICB2aXJ0dWFsIH5DYWNoZWRJbWFnZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgSW1h
Z2UqIGltYWdlKCk7IC8vIFJldHVybnMgdGhlIG51bGxJbWFnZSgpIGlmIHRoZSBpbWFnZSBpcyBu
b3QgYXZhaWxhYmxlIHlldC4KQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB2b2lkIGNsZWFyKCk7CiAKLSAgICBDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2Um
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHNl
dEJvZHlEYXRhRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYpIGZpbmFsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCBkMmQz
MTZkODRhYS4uZDgzNTA5YjNjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3Npb25JRCBzZXNzaW9uSUQp
CitDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgVHlwZSB0eXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAg
OiBDYWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCB0eXBlLCBzZXNzaW9uSUQpCiAgICAg
LCBtX2lkZW50aWZpZXIoMCkKICAgICAsIG1fYWxsb3dFbmNvZGVkRGF0YVJlcGxhY2VtZW50KHRy
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5o
CmluZGV4IGJiNWE1YjhkZWUzLi4xNWE4YTg2NjA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3Mg
U3VicmVzb3VyY2VMb2FkZXI7CiAKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlIGZpbmFsIDogcHVi
bGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKLSAgICBDYWNoZWRSYXdSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSYXdSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwgUEFMOjpTZXNzaW9uSUQpOwogCiAg
ICAgLy8gRklYTUU6IEFzc29jaWF0ZWRVUkxMb2FkZXIgc2hvdWxkbid0IGJlIGEgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyIGFuZCB0aGVyZWZvcmUgc2hvdWxkbid0CiAgICAgLy8gdXNlIENhY2hl
ZFJhd1Jlc291cmNlLiBIb3dldmVyLCBpdCBpcywgYW5kIGl0IG5lZWRzIHRvIGJlIGFibGUgdG8g
ZGVmZXIgbG9hZGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGU1ZWVjMjVmZWVlLi5lODYyYWEwZjQxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xMTUsNyArMTE1LDcg
QEAgc3RhdGljIFNlY29uZHMgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbEZvclJlc291
cmNlVHlwZShDYWNoZWRSZXNvdXJjZTo6VHkKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJl
ZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRS
ZXNvdXJjZSIpKTsKIAotQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKENhY2hlZFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0Nh
Y2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBUeXBlIHR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fcmVzb3Vy
Y2VSZXF1ZXN0KHJlcXVlc3QucmVsZWFzZVJlc291cmNlUmVxdWVzdCgpKQogICAgICwgbV9vcHRp
b25zKHJlcXVlc3Qub3B0aW9ucygpKQogICAgICwgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGltZXIo
KnRoaXMsICZDYWNoZWRSZXNvdXJjZTo6ZGVzdHJveURlY29kZWREYXRhLCBkZWFkRGVjb2RlZERh
dGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5cGUpKQpAQCAtMTQ1LDcgKzE0NSw3
IEBAIENhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3NpCiB9CiAKIC8vIEZJWE1FOiBGb3IgdGhpcyBjb25z
dHJ1Y3Rvciwgd2Ugc2hvdWxkIHByb2JhYmx5IG1hbmRhdGUgdGhhdCB0aGUgVVJMIGhhcyBubyBm
cmFnbWVudCBpZGVudGlmaWVyLgotQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0
IFVSTCYgdXJsLCBUeXBlIHR5cGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRSZXNvdXJj
ZTo6Q2FjaGVkUmVzb3VyY2UoY29uc3QgVVJMJiB1cmwsIFR5cGUgdHlwZSwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QodXJsKQogICAgICwgbV9kZWNv
ZGVkRGF0YURlbGV0aW9uVGltZXIoKnRoaXMsICZDYWNoZWRSZXNvdXJjZTo6ZGVzdHJveURlY29k
ZWREYXRhLCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5
cGUpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCA2OTk2YmJhMjc1Mi4uZTEwMTg4ZTgyOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0z
MCw4ICszMCw4IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgotI2lu
Y2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8dGltZS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC05NCw3ICs5NCw3
IEBAIHB1YmxpYzoKICAgICAgICAgRGVjb2RlRXJyb3IKICAgICB9OwogCi0gICAgQ2FjaGVkUmVz
b3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFR5cGUsIFNlc3Npb25JRCk7CisgICAgQ2Fj
aGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFR5cGUsIFBBTDo6U2Vzc2lvbklE
KTsKICAgICB2aXJ0dWFsIH5DYWNoZWRSZXNvdXJjZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGxv
YWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImKTsKQEAgLTExNSw3ICsxMTUsNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVy
biBtX3Jlc291cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1
cm4gbV9yZXNvdXJjZVJlcXVlc3QudXJsKCk7fQogICAgIGNvbnN0IFN0cmluZyYgY2FjaGVQYXJ0
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC5jYWNoZVBhcnRpdGlvbigp
OyB9Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQ7IH0KICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAg
IFJlc291cmNlTG9hZFByaW9yaXR5IGxvYWRQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZFByaW9yaXR5OyB9CkBAIC0yODEsNyArMjgxLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAg
ICAgLy8gQ2FjaGVkUmVzb3VyY2UgY29uc3RydWN0b3IgdGhhdCBtYXkgYmUgdXNlZCB3aGVuIHRo
ZSBDYWNoZWRSZXNvdXJjZSBjYW4gYWxyZWFkeSBiZSBmaWxsZWQgd2l0aCByZXNwb25zZSBkYXRh
LgotICAgIENhY2hlZFJlc291cmNlKGNvbnN0IFVSTCYsIFR5cGUsIFNlc3Npb25JRCk7CisgICAg
Q2FjaGVkUmVzb3VyY2UoY29uc3QgVVJMJiwgVHlwZSwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAg
dm9pZCBzZXRFbmNvZGVkU2l6ZSh1bnNpZ25lZCk7CiAgICAgdm9pZCBzZXREZWNvZGVkU2l6ZSh1
bnNpZ25lZCk7CkBAIC0zMTcsNyArMzE3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZhaWxCZWZv
cmVTdGFydGluZygpOwogCiAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJjZUNsaWVudCosIHN0ZDo6
dW5pcXVlX3B0cjxDYWxsYmFjaz4+IG1fY2xpZW50c0F3YWl0aW5nQ2FsbGJhY2s7Ci0gICAgU2Vz
c2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAg
IFJlc291cmNlTG9hZFByaW9yaXR5IG1fbG9hZFByaW9yaXR5OwogICAgIHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbV9yZXNwb25zZVRpbWVzdGFtcDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggYmVhYTkxZjgwMGMuLmFjYTk4MWE3NmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTY2LDEyICs2NiwxMiBA
QAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIK
ICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC04Niw3ICs4Niw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vIFRpbWVvdXQgZm9yIGxpbmsgcHJlbG9hZHMgdG8gYmUgdXNlZCBhZnRl
ciB3aW5kb3cub25sb2FkCiBzdGF0aWMgY29uc3QgU2Vjb25kcyB1bnVzZWRQcmVsb2FkVGltZW91
dCB7IDNfcyB9OwogCi1zdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hl
ZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNl
c3Npb25JRCBzZXNzaW9uSUQpCitzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNl
KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgpAQCAtMTcxLDkgKzE3MSw5IEBA
IEZyYW1lKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZnJhbWUoKSBjb25zdAogICAgIHJldHVybiBt
X2RvY3VtZW50TG9hZGVyID8gbV9kb2N1bWVudExvYWRlci0+ZnJhbWUoKSA6IG51bGxwdHI7CiB9
CiAKLVNlc3Npb25JRCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2Vzc2lvbklEKCkgY29uc3QKK1BB
TDo6U2Vzc2lvbklEIENhY2hlZFJlc291cmNlTG9hZGVyOjpzZXNzaW9uSUQoKSBjb25zdAogewot
ICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsK
KyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpOwogCiAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKICAgICAgICAgc2Vzc2lv
bklEID0gZi0+cGFnZSgpLT5zZXNzaW9uSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggMzhhOWMwOTgxYjEuLmRhZWNm
MTBlZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaApAQCAtMTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9IC8vIENhbiBiZSBudWxsCiAg
ICAgdm9pZCBzZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpIHsgbV9kb2N1bWVudCA9IGRv
Y3VtZW50OyB9CiAgICAgdm9pZCBjbGVhckRvY3VtZW50TG9hZGVyKCkgeyBtX2RvY3VtZW50TG9h
ZGVyID0gbnVsbHB0cjsgfQotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKKyAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKIAogICAgIHZvaWQgcmVtb3ZlQ2FjaGVk
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKaW5kZXggMDhiNDAxNjlkMzMuLjZiNjYzMDQz
MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1
bWVudC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNo
ZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRT
VkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBTVkdE
b2N1bWVudFJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNl
RGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlvbi94bWwiKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmgKaW5kZXggYjM1NjZmZTM4N2UuLjcy
ZTVkNzM4ZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U1ZHRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
RG9jdW1lbnQuaApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENhY2hlZFNWR0RvY3VtZW50IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1Ymxp
YzoKLSAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiwgU2Vzc2lvbklEKTsKKyAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNWR0Rv
Y3VtZW50KCk7CiAKICAgICBTVkdEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBt
X2RvY3VtZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU1ZHRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U1ZHRm9udC5jcHAKaW5kZXggYTU0NzYxZjZiOTQuLmEwY2E4NmViODk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwCkBAIC00Niw3ICs0Niw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2Fj
aGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRGb250KFdURk1vdmUocmVx
dWVzdCksIHNlc3Npb25JRCwgU1ZHRm9udFJlc291cmNlKQogICAgICwgbV9leHRlcm5hbFNWR0Zv
bnRFbGVtZW50KG51bGxwdHIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRm9udC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0ZvbnQuaAppbmRleCBlODgwOGM2YmRmNS4uYjFiMGQ1NThkMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFz
cyBTVkdGb250RmFjZUVsZW1lbnQ7CiAKIGNsYXNzIENhY2hlZFNWR0ZvbnQgZmluYWwgOiBwdWJs
aWMgQ2FjaGVkRm9udCB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkU1ZHRm9udChDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNl
UmVxdWVzdCYmLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBib29sIGVuc3VyZUN1c3RvbUZvbnRE
YXRhKGNvbnN0IEF0b21pY1N0cmluZyYgcmVtb3RlVVJJKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAppbmRleCBiMmJmY2MxMWU3OC4u
NTFkNjBmZjFmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVk
U2NyaXB0OjpDYWNoZWRTY3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vz
c2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KENhY2hlZFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENh
Y2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIFNjcmlwdCwgc2Vzc2lvbklEKQogICAgICwg
bV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZShBU0NJSUxpdGVyYWwoImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiKSwgcmVxdWVzdC5jaGFyc2V0KCkpKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCmluZGV4IDZiYjBmMzEyZjNjLi5jMDgxNmFl
Y2VjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaApAQCAt
MzMsNyArMzMsNyBAQCBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogCiBjbGFzcyBDYWNoZWRT
Y3JpcHQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hl
ZFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRT
Y3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2aXJ0
dWFsIH5DYWNoZWRTY3JpcHQoKTsKIAogICAgIFN0cmluZ1ZpZXcgc2NyaXB0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCmluZGV4IDFkODJi
ZDcxYjQyLi5mZDNkMGI4ZDdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFRleHRUcmFjay5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1DYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkVGV4dFRyYWNrOjpD
YWNoZWRUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwg
VGV4dFRyYWNrUmVzb3VyY2UsIHNlc3Npb25JRCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaAppbmRleCA4ZDRhMGUxZmFmNy4uMjFlYmMzZjYz
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJh
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmgK
QEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRUZXh0
VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hl
ZFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNo
ZWRUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lvbklEKTsKIAog
cHJpdmF0ZToKICAgICBib29sIG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBjOWYwZGM4N2FmYy4uOTRmMWQxMDZkNjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNo
ZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVT
aGVldC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgRU5B
QkxFKFhTTFQpCiAKLUNhY2hlZFhTTFN0eWxlU2hlZXQ6OkNhY2hlZFhTTFN0eWxlU2hlZXQoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hl
ZFhTTFN0eWxlU2hlZXQ6OkNhY2hlZFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3Vy
Y2UoV1RGTW92ZShyZXF1ZXN0KSwgWFNMU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9k
ZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCmluZGV4
IDNlZjBmNjAwZTQ0Li4yZDE3YTAyNGY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFRl
eHRSZXNvdXJjZURlY29kZXI7CiAKIGNsYXNzIENhY2hlZFhTTFN0eWxlU2hlZXQgZmluYWwgOiBw
dWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZFhTTFN0eWxlU2hlZXQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkWFNMU3R5bGVT
aGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1
YWwgfkNhY2hlZFhTTFN0eWxlU2hlZXQoKTsKIAogICAgIGNvbnN0IFN0cmluZyYgc2hlZXQoKSBj
b25zdCB7IHJldHVybiBtX3NoZWV0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmNwcAppbmRleCA1MTg2YTFiYmVkMi4uMmEwOWI2MGUwOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcApAQCAtNzIsMTMgKzcyLDEzIEBA
IE1lbW9yeUNhY2hlOjpNZW1vcnlDYWNoZSgpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YobG9u
ZyBsb25nKSA+IHNpemVvZih1bnNpZ25lZCksICJOdW1lcmljYWwgb3ZlcmZsb3cgY2FuIGhhcHBl
biB3aGVuIGFkanVzdGluZyB0aGUgc2l6ZSBvZiB0aGUgY2FjaGVkIG1lbW9yeS4iKTsKIH0KIAot
YXV0byBNZW1vcnlDYWNoZTo6c2Vzc2lvblJlc291cmNlTWFwKFNlc3Npb25JRCBzZXNzaW9uSUQp
IGNvbnN0IC0+IENhY2hlZFJlc291cmNlTWFwKgorYXV0byBNZW1vcnlDYWNoZTo6c2Vzc2lvblJl
c291cmNlTWFwKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QgLT4gQ2FjaGVkUmVzb3Vy
Y2VNYXAqCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwogICAgIHJldHVybiBt
X3Nlc3Npb25SZXNvdXJjZXMuZ2V0KHNlc3Npb25JRCk7CiB9CiAKLWF1dG8gTWVtb3J5Q2FjaGU6
OmVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcChTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiBDYWNoZWRS
ZXNvdXJjZU1hcCYKK2F1dG8gTWVtb3J5Q2FjaGU6OmVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IENhY2hlZFJlc291cmNlTWFwJgogewogICAgIEFT
U0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKICAgICBhdXRvJiBtYXAgPSBtX3Nlc3Npb25SZXNv
dXJjZXMuYWRkKHNlc3Npb25JRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwpAQCAtMTY3LDcg
KzE2Nyw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvbkZhaWxlZChDYWNoZWRSZXNv
dXJjZSYgcmV2YWxpZGF0aW5nUmVzb3VyY2UpCiAgICAgcmV2YWxpZGF0aW5nUmVzb3VyY2UuY2xl
YXJSZXNvdXJjZVRvUmV2YWxpZGF0ZSgpOwogfQogCi1DYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2Fj
aGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNl
c3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNl
Rm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKICAgICAvLyBGSVhNRTogQ2hhbmdlIGFsbCBjbGllbnRzIHRvIG1ha2Ug
c3VyZSBIVFRQKHMpIFVSTHMgaGF2ZSBubyBmcmFnbWVudCBpZGVudGlmaWVycyBiZWZvcmUgY2Fs
bGluZyBoZXJlLgogICAgIC8vIENhY2hlZFJlc291cmNlTG9hZGVyIGlzIG5vdyBkb2luZyB0aGlz
LiBBZGQgYW4gYXNzZXJ0aW9uIG9uY2UgYWxsIG90aGVyIGNsaWVudHMgYXJlIGRvaW5nIGl0IHRv
by4KQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQmIGR1bW15Q2Fj
aGVkSW1hZ2VDbGllbnQoKQogYm9vbCBNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKE5hdGl2
ZUltYWdlUHRyJiYgaW1hZ2UsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGRvbWFpbkZv
ckNhY2hlUGFydGl0aW9uKQogewogICAgIEFTU0VSVChpbWFnZSk7Ci0gICAgU2Vzc2lvbklEIHNl
c3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAg
cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUodXJsLCBkb21haW5Gb3JDYWNoZVBhcnRpdGlvbik7IC8vIFJl
bW92ZSBjYWNoZSBlbnRyeSBpZiBpdCBhbHJlYWR5IGV4aXN0cy4KIAogICAgIFJlZlB0cjxCaXRt
YXBJbWFnZT4gYml0bWFwSW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUoaW1hZ2Up
LCBudWxscHRyKTsKQEAgLTIyNyw3ICsyMjcsNyBAQCBib29sIE1lbW9yeUNhY2hlOjphZGRJbWFn
ZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHImJiBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0CiAK
IHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGRvbWFpbkZvckNhY2hlUGFydGl0aW9uKQogewotICAgIGF1dG8qIHJlc291
cmNlcyA9IHNlc3Npb25SZXNvdXJjZU1hcChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7
CisgICAgYXV0byogcmVzb3VyY2VzID0gc2Vzc2lvblJlc291cmNlTWFwKFBBTDo6U2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIGlmICghcmVzb3VyY2VzKQogICAgICAgICByZXR1
cm47CiAKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpmb3JFYWNoUmVzb3Vy
Y2UoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKENhY2hlZFJlc291cmNlJik+JiBmdQogICAgIH0K
IH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6Zm9yRWFjaFNlc3Npb25SZXNvdXJjZShTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKENhY2hlZFJlc291cmNlJik+JiBm
dW5jdGlvbikKK3ZvaWQgTWVtb3J5Q2FjaGU6OmZvckVhY2hTZXNzaW9uUmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKENhY2hlZFJlc291
cmNlJik+JiBmdW5jdGlvbikKIHsKICAgICBhdXRvIGl0ID0gbV9zZXNzaW9uUmVzb3VyY2VzLmZp
bmQoc2Vzc2lvbklEKTsKICAgICBpZiAoaXQgPT0gbV9zZXNzaW9uUmVzb3VyY2VzLmVuZCgpKQpA
QCAtNTMxLDcgKzUzMSw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhP
cmlnaW4oU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKICAgICAgICAgcmVtb3ZlKCpyZXNvdXJjZSk7
CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5zKFNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mIG9y
aWdpbnMpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pj4mIG9yaWdpbnMpCiB7CiAgICAgYXV0byogcmVzb3VyY2VNYXAgPSBzZXNzaW9uUmVzb3VyY2VN
YXAoc2Vzc2lvbklEKTsKICAgICBpZiAoIXJlc291cmNlTWFwKQpAQCAtNTcyLDcgKzU3Miw3IEBA
IHZvaWQgTWVtb3J5Q2FjaGU6OmdldE9yaWdpbnNXaXRoQ2FjaGUoU2VjdXJpdHlPcmlnaW5TZXQm
IG9yaWdpbnMpCiAgICAgfQogfQogCi1IYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IE1l
bW9yeUNhY2hlOjpvcmlnaW5zV2l0aENhY2hlKFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0CitI
YXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IE1lbW9yeUNhY2hlOjpvcmlnaW5zV2l0aENh
Y2hlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBIYXNoU2V0PFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAKQEAgLTcwNyw3ICs3MDcsNyBAQCB2b2lkIE1l
bW9yeUNhY2hlOjpldmljdFJlc291cmNlcygpCiAgICAgc2V0RGlzYWJsZWQoZmFsc2UpOwogfQog
Ci12b2lkIE1lbW9yeUNhY2hlOjpldmljdFJlc291cmNlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQor
dm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3RSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogewogICAgIGlmIChkaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCmluZGV4IDJjNGRkMTA5ZjU3Li5mNjdjODFjNDI5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKQEAgLTI2LDgg
KzI2LDggQEAKIAogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW5IYXNoLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
KyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBNZW1vcnlDYWNoZSYgc2luZ2xldG9uKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Np
b25JRCk7CisgICAgV0VCQ09SRV9FWFBPUlQgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBib29s
IGFkZChDYWNoZWRSZXNvdXJjZSYpOwogICAgIHZvaWQgcmVtb3ZlKENhY2hlZFJlc291cmNlJik7
CkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmV2YWxpZGF0aW9uRmFpbGVk
KENhY2hlZFJlc291cmNlJiByZXZhbGlkYXRpbmdSZXNvdXJjZSk7CiAKICAgICB2b2lkIGZvckVh
Y2hSZXNvdXJjZShjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FjaGVkUmVzb3VyY2UmKT4mKTsK
LSAgICB2b2lkIGZvckVhY2hTZXNzaW9uUmVzb3VyY2UoU2Vzc2lvbklELCBjb25zdCBXVEY6OkZ1
bmN0aW9uPHZvaWQoQ2FjaGVkUmVzb3VyY2UmKT4mKTsKKyAgICB2b2lkIGZvckVhY2hTZXNzaW9u
UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChDYWNoZWRS
ZXNvdXJjZSYpPiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVzdHJveURlY29kZWREYXRh
Rm9yQWxsSW1hZ2VzKCk7CiAKICAgICAvLyBTZXRzIHRoZSBjYWNoZSdzIG1lbW9yeSBjYXBhY2l0
aWVzLCBpbiBieXRlcy4gVGhlc2Ugd2lsbCBob2xkIG9ubHkgYXBwcm94aW1hdGVseSwKQEAgLTEy
MCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGlzYWJsZWQ7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXZpY3RSZXNvdXJjZXMo
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV2aWN0UmVzb3VyY2VzKFNlc3Npb25JRCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmljdFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCk7CiAK
ICAgICB2b2lkIHBydW5lKCk7CiAgICAgdm9pZCBwcnVuZVNvb24oKTsKQEAgLTE1Myw5ICsxNTMs
OSBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pj4gU2VjdXJpdHlPcmlnaW5TZXQ7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVSZXNv
dXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5T3JpZ2luJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCByZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyhTZXNzaW9uSUQsIGNvbnN0IEhhc2hTZXQ8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPj4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVJl
c291cmNlc1dpdGhPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBjb25zdCBIYXNoU2V0PFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRPcmlnaW5zV2l0
aENhY2hlKFNlY3VyaXR5T3JpZ2luU2V0JiBvcmlnaW5zKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBI
YXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnNXaXRoQ2FjaGUoU2Vzc2lvbklE
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4+IG9yaWdpbnNXaXRoQ2FjaGUoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBhZGRJbWFnZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHImJiwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBkb21haW5Gb3JDYWNoZVBhcnRpdGlvbik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVJbWFnZUZyb21DYWNoZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IGRvbWFpbkZvckNhY2hlUGFydGl0aW9uKTsKQEAgLTE4Nyw4ICsxODcsOCBAQCBwcml2YXRlOgog
CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVxdWVzdEltcGwoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgQ2FjaGVkUmVzb3VyY2VNYXAmKTsKIAotICAgIENhY2hlZFJlc291cmNlTWFw
JiBlbnN1cmVTZXNzaW9uUmVzb3VyY2VNYXAoU2Vzc2lvbklEKTsKLSAgICBDYWNoZWRSZXNvdXJj
ZU1hcCogc2Vzc2lvblJlc291cmNlTWFwKFNlc3Npb25JRCkgY29uc3Q7CisgICAgQ2FjaGVkUmVz
b3VyY2VNYXAmIGVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcChQQUw6OlNlc3Npb25JRCk7CisgICAg
Q2FjaGVkUmVzb3VyY2VNYXAqIHNlc3Npb25SZXNvdXJjZU1hcChQQUw6OlNlc3Npb25JRCkgY29u
c3Q7CiAKICAgICBib29sIG1fZGlzYWJsZWQ7ICAvLyBXaGV0aGVyIG9yIG5vdCB0aGUgY2FjaGUg
aXMgZW5hYmxlZC4KICAgICBib29sIG1faW5QcnVuZVJlc291cmNlczsKQEAgLTIxMSw3ICsyMTEs
NyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEEgVVJMLWJhc2VkIG1hcCBvZiBhbGwgcmVzb3Vy
Y2VzIHRoYXQgYXJlIGluIHRoZSBjYWNoZSAoaW5jbHVkaW5nIHRoZSBmcmVzaGVzdCB2ZXJzaW9u
IG9mIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIAogICAgIC8vIHJlZmVyZW5jZWQg
YnkgYSBXZWIgcGFnZSkuCi0gICAgdHlwZWRlZiBIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlx
dWVfcHRyPENhY2hlZFJlc291cmNlTWFwPj4gU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwOworICAg
IHR5cGVkZWYgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPENhY2hlZFJl
c291cmNlTWFwPj4gU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwOwogICAgIFNlc3Npb25DYWNoZWRS
ZXNvdXJjZU1hcCBtX3Nlc3Npb25SZXNvdXJjZXM7CiAKICAgICBUaW1lciBtX3BydW5lVGltZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRv
ckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNv
Y29hLmgKaW5kZXggNjMwNGYxZjA2ZWQuLmJkYmExYzkzNThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5oCkBAIC0yNiw3ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2lu
Y2x1ZGUgIlNlc3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRV
UkxSZXNwb25zZVJlZjsKIApAQCAtMzYsMTkgKzM2LDE5IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsK
IAogY2xhc3MgRGlza0NhY2hlTW9uaXRvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHZvaWQgbW9u
aXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNz
aW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOworICAgIHN0YXRpYyB2b2lkIG1vbml0b3JG
aWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUEFMOjpTZXNz
aW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwogICAgIHN0YXRpYyBSZWZQdHI8U2hhcmVk
QnVmZmVyPiB0cnlHZXRGaWxlQmFja2VkU2hhcmVkQnVmZmVyRnJvbUNGVVJMQ2FjaGVkUmVzcG9u
c2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAKIHByaXZhdGU6Ci0gICAgRGlza0NhY2hlTW9u
aXRvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9u
c2VSZWYpOworICAgIERpc2tDYWNoZU1vbml0b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUEFM
OjpTZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwogCiAgICAgdm9pZCByZXNvdXJj
ZUJlY2FtZUZpbGVCYWNrZWQoU2hhcmVkQnVmZmVyJik7CiAKICAgICBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0
OyB9Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQ7IH0KIAogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKLSAgICBT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCmluZGV4IDNmMThkMjY5MmI1Li5hMGZi
YjFhOWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNo
ZU1vbml0b3JDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0Nh
Y2hlTW9uaXRvckNvY29hLm1tCkBAIC01MSw3ICs1MSw3IEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IERpc2tDYWNoZU1vbml0b3I6OnRyeUdldEZpbGVCYWNrZWRTaGFyZWRCdWZmZXJGcm9tQ0ZVUkxD
YWNoCiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpOwogfQogCi12b2lkIERp
c2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBDRkNhY2hlZFVSTFJl
c3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlKQordm9pZCBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9y
RmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJl
c3BvbnNlKQogewogICAgIGlmICghY2FjaGVkUmVzcG9uc2UpCiAgICAgICAgIHJldHVybjsKQEAg
LTYwLDcgKzYwLDcgQEAgdm9pZCBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdT
dG9yZUNyZWF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmUKICAgICBuZXcgRGlza0NhY2hl
TW9uaXRvcihyZXF1ZXN0LCBzZXNzaW9uSUQsIGNhY2hlZFJlc3BvbnNlKTsgLy8gQmFsYW5jZWQg
YnkgZGVsZXRlIGFuZCB1bmlxdWVfcHRyIGluIHRoZSBibG9ja3Mgc2V0IHVwIGluIHRoZSBjb25z
dHJ1Y3Rvciwgb25lIG9mIHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gcnVuLgogfQogCi1EaXNrQ2Fj
aGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNw
b25zZSkKK0Rpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVz
cG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXF1ZXN0
KQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
YWNoZVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IDVhZWM5ZjQ2MTk4Li45ZWY1NjExNWJkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaApAQCAtMjYsNyArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgi
Ci0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaAppbmRleCBhNzZjNzkxYzg2OC4u
ZjA4ZTk1OWExMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oCkBAIC0y
Nyw5ICsyNywxMSBAQAogCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAotbmFtZXNwYWNl
IFdlYkNvcmUgewotCituYW1lc3BhY2UgUEFMIHsKIGNsYXNzIFNlc3Npb25JRDsKK30KKworbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNzIElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjsKQEAgLTQwLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkRh
dGFiYXNlUHJvdmlkZXIoKTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIHZp
cnR1YWwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1Nl
cnZlckZvclNlc3Npb24oY29uc3QgU2Vzc2lvbklEJikgPSAwOworICAgIHZpcnR1YWwgSURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Np
b24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSA9IDA7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCmluZGV4IDhkZjdhMDA5NmQ1Li45MTgyYmM5YTQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBA
IC0yMjksNyArMjI5LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25m
aWd1cmF0aW9uKQogICAgICwgbV9zdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIoKldURk1vdmUocGFn
ZUNvbmZpZ3VyYXRpb24uc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKSkKICAgICAsIG1fdXNlckNv
bnRlbnRQcm92aWRlcigqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudFByb3Zp
ZGVyKSkKICAgICAsIG1fdmlzaXRlZExpbmtTdG9yZSgqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlv
bi52aXNpdGVkTGlua1N0b3JlKSkKLSAgICAsIG1fc2Vzc2lvbklEKFNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKQorICAgICwgbV9zZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSkKICAgICAsIG1faXNVdGlsaXR5UGFnZShpc1V0aWxpdHlQYWdlQ2hyb21lQ2xp
ZW50KGNocm9tZSgpLmNsaWVudCgpKSkKICAgICAsIG1fcGVyZm9ybWFuY2VNb25pdG9yKGlzVXRp
bGl0eVBhZ2UoKSA/IG51bGxwdHIgOiBzdGQ6Om1ha2VfdW5pcXVlPFBlcmZvcm1hbmNlTW9uaXRv
cj4oKnRoaXMpKQogICAgICwgbV9sb3dQb3dlck1vZGVOb3RpZmllcihzdGQ6Om1ha2VfdW5pcXVl
PExvd1Bvd2VyTW9kZU5vdGlmaWVyPihbdGhpc10oYm9vbCBpc0xvd1Bvd2VyTW9kZUVuYWJsZWQp
IHsgaGFuZGxlTG93TW9kZVBvd2VyQ2hhbmdlKGlzTG93UG93ZXJNb2RlRW5hYmxlZCk7IH0pKQpA
QCAtMTQyOCw5ICsxNDI4LDkgQEAgdm9pZCBQYWdlOjpzdG9yYWdlQmxvY2tpbmdTdGF0ZUNoYW5n
ZWQoKQogdm9pZCBQYWdlOjplbmFibGVMZWdhY3lQcml2YXRlQnJvd3NpbmcoYm9vbCBwcml2YXRl
QnJvd3NpbmdFbmFibGVkKQogewogICAgIC8vIERvbid0IGFsbG93IGNoYW5naW5nIHRoZSBsZWdh
Y3kgcHJpdmF0ZSBicm93c2luZyBzdGF0ZSBpZiB3ZSBoYXZlIHNldCBhIHNlc3Npb24gSUQuCi0g
ICAgQVNTRVJUKG1fc2Vzc2lvbklEID09IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpIHx8
IG1fc2Vzc2lvbklEID09IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAg
ICBBU1NFUlQobV9zZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSB8fCBtX3Nlc3Npb25JRCA9PSBQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKTsKIAotICAgIHNldFNlc3Npb25JRChwcml2YXRlQnJvd3NpbmdFbmFibGVkID8gU2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSk7CisgICAgc2V0U2Vzc2lvbklEKHByaXZhdGVCcm93c2luZ0VuYWJsZWQgPyBQQUw6OlNl
c3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSk7CiB9CiAKIHZvaWQgUGFnZTo6dXBkYXRlSXNQbGF5aW5nTWVkaWEodWlu
dDY0X3Qgc291cmNlRWxlbWVudElEKQpAQCAtMjEwNSwxMiArMjEwNSwxMiBAQCB2b2lkIFBhZ2U6
OnNldFZpc2l0ZWRMaW5rU3RvcmUoUmVmPFZpc2l0ZWRMaW5rU3RvcmU+JiYgdmlzaXRlZExpbmtT
dG9yZSkKICAgICBpbnZhbGlkYXRlU3R5bGVzRm9yQWxsTGlua3MoKTsKIH0KIAotU2Vzc2lvbklE
IFBhZ2U6OnNlc3Npb25JRCgpIGNvbnN0CitQQUw6OlNlc3Npb25JRCBQYWdlOjpzZXNzaW9uSUQo
KSBjb25zdAogewogICAgIHJldHVybiBtX3Nlc3Npb25JRDsKIH0KIAotdm9pZCBQYWdlOjpzZXRT
ZXNzaW9uSUQoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgUGFnZTo6c2V0U2Vzc2lvbklEKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQo
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYjU0ZDc2MmQzMDQuLjIzZTk0ZTc1YTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtMzIsMTMgKzMyLDEzIEBACiAjaW5jbHVkZSAiUlRDQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCi0jaW5jbHVkZSAi
U2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUaW1l
ci5oIgogI2luY2x1ZGUgIlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCIKICNpbmNsdWRl
ICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0VHJpZ2dlci5o
IgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC01MTAsOCArNTEwLDggQEAgcHVibGljOgogICAg
IFZpc2l0ZWRMaW5rU3RvcmUmIHZpc2l0ZWRMaW5rU3RvcmUoKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldFZpc2l0ZWRMaW5rU3RvcmUoUmVmPFZpc2l0ZWRMaW5rU3RvcmU+JiYpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Vzc2lvbklEKFNlc3Npb25JRCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZW5hYmxlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCk7CiAgICAgYm9vbCB1c2VzRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCk7IH0KIApAQCAtNzgxLDcgKzc4MSw3IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlVXNhZ2VPdmVybGF5PiBtX3Jlc291cmNlVXNhZ2VP
dmVybGF5OwogI2VuZGlmCiAKLSAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAKICAgICBib29sIG1faXNDbG9zaW5nIHsgZmFsc2UgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QbHVnSW5DbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGx1Z0luQ2xpZW50LmgKaW5kZXggMjVhNjk2MmNiZDEuLmI4ZTkxZmJj
NjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BsdWdJbkNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGx1Z0luQ2xpZW50LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDxwYWwvaWRl
bnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFBsdWdJbkNsaWVudCB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZEF1dG9TdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBj
b25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
U2Vzc2lvbklEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0RnJvbU9yaWdpbihjb25z
dCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCkgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB+UGx1Z0luQ2xpZW50KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NvY2tldFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlk
ZXIuY3BwCmluZGV4IGE3NjVkNGQ2OTViLi4wNzhjMjdkNWVjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Tb2NrZXRQcm92aWRlci5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIAotUmVmPFNvY2tldFN0cmVhbUhhbmRsZT4gU29ja2V0UHJvdmlkZXI6OmNyZWF0
ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xp
ZW50JiBjbGllbnQsIFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlh
bFBhcnRpdGlvbikKK1JlZjxTb2NrZXRTdHJlYW1IYW5kbGU+IFNvY2tldFByb3ZpZGVyOjpjcmVh
dGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNs
aWVudCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3Jl
ZGVudGlhbFBhcnRpdGlvbikKIHsKICAgICByZXR1cm4gU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6
Y3JlYXRlKHVybCwgY2xpZW50LCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIHsgfSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmgKaW5kZXggNTU5Y2FkMDI3YTEuLjc1
YzAyZTYyNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5oCkBAIC0yNSw3ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVk
ZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTM5LDcg
KzM5LDcgQEAgY2xhc3MgVVJMOwogY2xhc3MgV0VCQ09SRV9FWFBPUlQgU29ja2V0UHJvdmlkZXIg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U29ja2V0UHJvdmlkZXI+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFNvY2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFNvY2tldFByb3ZpZGVyKTsgfQotICAgIHZpcnR1YWwgUmVmPFNvY2tldFN0cmVhbUhh
bmRsZT4gY3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhh
bmRsZUNsaWVudCYsIFNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9u
KTsKKyAgICB2aXJ0dWFsIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGU+IGNyZWF0ZVNvY2tldFN0cmVh
bUhhbmRsZShjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBQQUw6OlNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKTsKICAgICB2aXJ0dWFsIH5T
b2NrZXRQcm92aWRlcigpIHsgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0Nvb2tpZXNTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29va2ll
c1N0cmF0ZWd5LmgKaW5kZXggZTA0OWJlMzUwNTQuLjVkYzc1MmU3MTRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRl
ZiBDb29raWVzU3RyYXRlZ3lfaAogI2RlZmluZSBDb29raWVzU3RyYXRlZ3lfaAogCi0jaW5jbHVk
ZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zy
b21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYpID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uSUQsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgVVJMJikgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFVSTCYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UmF3Q29va2llcyhjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVS
TCYsIFZlY3RvcjxDb29raWU+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBj
b29raWVOYW1lKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dl
YkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJD
b3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDEyMWE4NmNiMTM2Li40MDM2NzZhOThlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29w
aWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwCkBAIC0zMSwxMiArMzEsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJXZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuaCIKIAotI2luY2x1ZGUgIlNlc3Npb25JRC5o
IgogI2luY2x1ZGUgIlRocmVhZFNhZmVEYXRhQnVmZmVyLmgiCisjaW5jbHVkZSA8cGFsL2lkZW50
aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi1Dcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFsc2UsIGZhbHNlLCBXZWJDb3JlOjpTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFk
Q29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6OlNlc3Npb25JRD46OmNvcHkoY29uc3Qg
V2ViQ29yZTo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCitDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIGZhbHNlLCBQQUw6OlNlc3Npb25JRD46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZh
bHNlLCBmYWxzZSwgUEFMOjpTZXNzaW9uSUQ+Ojpjb3B5KGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBz
ZXNzaW9uSUQpCiB7CiAgICAgcmV0dXJuIHNlc3Npb25JRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmgKaW5kZXggN2UzYjliYzEx
ODIuLmI0YzkyMzkxYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJD
b3JlQ3Jvc3NUaHJlYWRDb3BpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJD
b3JlQ3Jvc3NUaHJlYWRDb3BpZXIuaApAQCAtMzMsMTYgKzMzLDE5IEBACiAKICNpbmNsdWRlIDx3
dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNl
IFBBTCB7CiBjbGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IFRocmVhZFNhZmVEYXRhQnVmZmVyOwogfQogCiBuYW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgV2ViQ29yZTo6U2Vz
c2lvbklEPiB7Ci0gICAgdHlwZWRlZiBXZWJDb3JlOjpTZXNzaW9uSUQgVHlwZTsKLSAgICBzdGF0
aWMgVHlwZSBjb3B5KGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYpOwordGVtcGxhdGU8PiBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUEFMOjpTZXNzaW9uSUQ+IHsK
KyAgICB0eXBlZGVmIFBBTDo6U2Vzc2lvbklEIFR5cGU7CisgICAgc3RhdGljIFR5cGUgY29weShj
b25zdCBQQUw6OlNlc3Npb25JRCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJl
YWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgV2ViQ29yZTo6VGhyZWFkU2FmZURhdGFCdWZmZXI+
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0
aW9uLmNwcAppbmRleCBjNTI2YzQxN2ZlMy4uMjJiODMzMzMxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHAKQEAgLTMzOSw3
ICszMzksNyBAQCBDYWNoZUNvbnRyb2xEaXJlY3RpdmVzIHBhcnNlQ2FjaGVDb250cm9sRGlyZWN0
aXZlcyhjb25zdCBIVFRQSGVhZGVyTWFwJiBoZWFkZXJzKQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLXN0YXRpYyBTdHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBoZWFkZXJOYW1lLCBTZXNzaW9uSUQgc2Vzc2lvbklE
KQorc3RhdGljIFN0cmluZyBoZWFkZXJWYWx1ZUZvclZhcnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGhlYWRlck5hbWUsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKIHsKICAgICAvLyBFeHBsaWNpdCBoYW5kbGluZyBmb3IgY29va2llcyBpcyBuZWVkZWQg
YmVjYXVzZSB0aGV5IGFyZSBhZGRlZCBtYWdpY2FsbHkgYnkgdGhlIG5ldHdvcmtpbmcgbGF5ZXIu
CiAgICAgLy8gRklYTUU6IFRoZSB2YWx1ZSBtaWdodCBoYXZlIGNoYW5nZWQgYmV0d2VlbiBtYWtp
bmcgdGhlIHJlcXVlc3QgYW5kIHJldHJpZXZpbmcgdGhlIGNvb2tpZSBoZXJlLgpAQCAtMzQ4LDcg
KzM0OCw3IEBAIHN0YXRpYyBTdHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBoCiAgICAgaWYgKGhlYWRlck5hbWUgPT0g
aHR0cEhlYWRlck5hbWVTdHJpbmcoSFRUUEhlYWRlck5hbWU6OkNvb2tpZSkpIHsKICAgICAgICAg
YXV0byogY29va2llU3RyYXRlZ3kgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKSA/IHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKSA6IG51bGxwdHI7CiAgICAgICAgIGlmICghY29v
a2llU3RyYXRlZ3kpIHsKLSAgICAgICAgICAgIEFTU0VSVChzZXNzaW9uSUQgPT0gU2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgICAgICAgICAgQVNTRVJUKHNlc3Npb25JRCA9PSBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICAgICAgICAgIHJldHVybiBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1
bHRTdG9yYWdlU2Vzc2lvbigpLCByZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHJlcXVl
c3QudXJsKCkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBjb29raWVTdHJhdGVneS0+Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbklELCByZXF1ZXN0LmZpcnN0UGFydHlG
b3JDb29raWVzKCksIHJlcXVlc3QudXJsKCkpOwpAQCAtMzU2LDcgKzM1Niw3IEBAIHN0YXRpYyBT
dHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBoCiAgICAgcmV0dXJuIHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkKGhlYWRl
ck5hbWUpOwogfQogCi1WZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gY29sbGVjdFZh
cnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTZXNzaW9uSUQg
c2Vzc2lvbklEKQorVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNvbGxlY3RWYXJ5
aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogewogICAgIFN0cmluZyB2YXJ5VmFsdWUgPSByZXNwb25zZS5odHRwSGVh
ZGVyRmllbGQoV2ViQ29yZTo6SFRUUEhlYWRlck5hbWU6OlZhcnkpOwogICAgIGlmICh2YXJ5VmFs
dWUuaXNFbXB0eSgpKQpAQCAtMzczLDcgKzM3Myw3IEBAIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5n
LCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvbnN0IFdlYkNvcmU6OlJl
CiAgICAgcmV0dXJuIHZhcnlpbmdSZXF1ZXN0SGVhZGVyczsKIH0KIAotYm9vbCB2ZXJpZnlWYXJ5
aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+
JiB2YXJ5aW5nUmVxdWVzdEhlYWRlcnMsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK2Jvb2wgdmVyaWZ5VmFyeWluZ1JlcXVlc3RI
ZWFkZXJzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdmFyeWluZ1Jl
cXVlc3RIZWFkZXJzLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBmb3IgKGF1dG8mIHZhcnlpbmdSZXF1ZXN0
SGVhZGVyIDogdmFyeWluZ1JlcXVlc3RIZWFkZXJzKSB7CiAgICAgICAgIC8vIEZJWE1FOiBWYXJ5
OiAqIGluIHJlc3BvbnNlIHdvdWxkIGlkZWFsbHkgdHJpZ2dlciBhIGNhY2hlIGRlbGV0ZSBpbnN0
ZWFkIG9mIGEgc3RvcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0NhY2hlVmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9D
YWNoZVZhbGlkYXRpb24uaAppbmRleCA0NDNiMjMxZThkNi4uZWZlNTBlYWJiYmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uaApAQCAt
MjYsOCArMjYsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJQbGF0Zm9ybUV4cG9ydE1h
Y3Jvcy5oIgotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgPGNocm9ubz4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CkBAIC03MCw4ICs3MCw4IEBAIHN0cnVjdCBDYWNoZUNvbnRyb2xEaXJlY3RpdmVzIHsKIH07
CiBXRUJDT1JFX0VYUE9SVCBDYWNoZUNvbnRyb2xEaXJlY3RpdmVzIHBhcnNlQ2FjaGVDb250cm9s
RGlyZWN0aXZlcyhjb25zdCBIVFRQSGVhZGVyTWFwJik7CiAKLVdFQkNPUkVfRVhQT1JUIFZlY3Rv
cjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJz
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBTZXNzaW9u
SUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7Ci1XRUJDT1JFX0VYUE9SVCBib29s
IHZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPj4mIHZhcnlpbmdSZXF1ZXN0SGVhZGVycywgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgU2Vzc2lvbklEID0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworV0VCQ09SRV9F
WFBPUlQgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNvbGxlY3RWYXJ5aW5nUmVx
dWVzdEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYsIFBBTDo6U2Vzc2lvbklEID0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7
CitXRUJDT1JFX0VYUE9SVCBib29sIHZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBW
ZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHZhcnlpbmdSZXF1ZXN0SGVhZGVycywg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUEFMOjpTZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1N0YXR1c0NvZGVD
YWNoZWFibGVCeURlZmF1bHQoaW50IHN0YXR1c0NvZGUpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBp
c1N0YXR1c0NvZGVQb3RlbnRpYWxseUNhY2hlYWJsZShpbnQgc3RhdHVzQ29kZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5jcHAKaW5kZXggOThkYTA4MmFlZTYuLjQxNjg4YzA1Zjc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
Y3BwCkBAIC0yNiwyNyArMjYsMjcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaCIKIAotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgorI2luY2x1
ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2xvYmFsU2Vzc2lvbk1hcCgpCitIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2xv
YmFsU2Vzc2lvbk1hcCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U2Vz
c2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4+IG1hcDsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlx
dWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+PiBtYXA7CiAgICAgcmV0dXJuIG1hcDsKIH0K
IAotTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VT
ZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCitOZXR3b3JrU3RvcmFnZVNlc3Npb24qIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogewotICAgIGlmIChzZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
CisgICAgaWYgKHNlc3Npb25JRCA9PSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
KQogICAgICAgICByZXR1cm4gJmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogICAgIHJldHVybiBn
bG9iYWxTZXNzaW9uTWFwKCkuZ2V0KHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpkZXN0cm95U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKTsKKyAgICBBU1NFUlQoc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpOwogICAgIGdsb2JhbFNlc3Npb25NYXAoKS5yZW1vdmUoc2Vzc2lvbklEKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmgKaW5kZXggZGVkMjZjYWY0YzEuLmI0NTlmYzMzZTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ3JlZGVu
dGlhbFN0b3JhZ2UuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDxwYWwvaWRl
bnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNjIs
MTUgKzYyLDE1IEBAIGNsYXNzIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoTmV0d29ya1N0b3JhZ2VTZXNzaW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogc3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSA9IFN0cmluZygpKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uKFNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiBpZGVudGlmaWVyQmFzZSA9IFN0cmluZygpKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgdm9pZCBkZXN0cm95U2Vzc2lvbihTZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlID0g
U3RyaW5nKCkpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVuc3VyZVNlc3Npb24o
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UgPSBTdHJpbmcoKSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGZvckVhY2goY29uc3QgV1RG
OjpGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYpPiYp
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc3dpdGNoVG9OZXdUZXN0aW5nU2Vz
c2lvbigpOwogCi0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvbklEOyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4g
bV9zZXNzaW9uSUQ7IH0KICAgICBDcmVkZW50aWFsU3RvcmFnZSYgY3JlZGVudGlhbFN0b3JhZ2Uo
KSB7IHJldHVybiBtX2NyZWRlbnRpYWxTdG9yYWdlOyB9CiAKICNpZmRlZiBfX09CSkNfXwpAQCAt
NzgsOCArNzgsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBV
U0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVuc3Vy
ZVNlc3Npb24oU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlLCBSZXRhaW5Q
dHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4mJik7Ci0gICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
KFNlc3Npb25JRCwgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+JiYsIFJldGFpblB0
cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCBlbnN1cmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXJCYXNlLCBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4mJik7CisgICAgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vz
c2lvblJlZj4mJiwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYpOwogCiAgICAg
Ly8gTWF5IGJlIG51bGwsIGluIHdoaWNoIGNhc2UgYSBGb3VuZGF0aW9uIGRlZmF1bHQgc2hvdWxk
IGJlIHVzZWQuCiAgICAgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwbGF0Zm9ybVNlc3Npb24oKSB7
IHJldHVybiBtX3BsYXRmb3JtU2Vzc2lvbi5nZXQoKTsgfQpAQCAtOTEsNyArOTEsNyBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTaG91bGRQYXJ0aXRpb25Db29raWVzRm9y
SG9zdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb1JlbW92ZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRvbWFpbnNUb0FkZCwgYm9vbCBjbGVhckZpcnN0KTsKICNlbmRpZgogI2VsaWYg
VVNFKFNPVVApCi0gICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCwgc3RkOjp1bmlx
dWVfcHRyPFNvdXBOZXR3b3JrU2Vzc2lvbj4mJik7CisgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
KFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPiYmKTsK
ICAgICB+TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7CiAKICAgICBTb3VwTmV0d29ya1Nlc3Npb24q
IHNvdXBOZXR3b3JrU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbi5nZXQoKTsgfTsK
QEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRDcmVkZW50aWFsRnJvbVBl
cnNpc3RlbnRTdG9yYWdlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYsIEZ1bmN0aW9uPHZvaWQgKENy
ZWRlbnRpYWwmJik+IGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHNhdmVDcmVkZW50aWFs
VG9QZXJzaXN0ZW50U3RvcmFnZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50
aWFsJik7CiAjZWxzZQotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQsIE5ldHdv
cmtpbmdDb250ZXh0Kik7CisgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
LCBOZXR3b3JraW5nQ29udGV4dCopOwogICAgIH5OZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKIAog
ICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CkBAIC0xMTcsOCArMTE3LDgg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmx1c2hDb29raWVTdG9yZSgpOwog
CiBwcml2YXRlOgotICAgIHN0YXRpYyBIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRy
PE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBnbG9iYWxTZXNzaW9uTWFwKCk7Ci0gICAgU2Vzc2lv
bklEIG1fc2Vzc2lvbklEOworICAgIHN0YXRpYyBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIGdsb2JhbFNlc3Npb25NYXAoKTsK
KyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSB8
fCBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9u
UmVmPiBtX3BsYXRmb3JtU2Vzc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCmluZGV4IDRl
MWUzM2U2YmRjLi5iMmE2NTdmMmJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCkBAIC0z
NCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgTmV0d29ya2lu
Z0NvbnRleHQqIGNvbnRleHQpCitOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0KQogICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCiB7CkBAIC00OSwxMiArNDksMTIgQEAgTmV0d29ya2luZ0NvbnRleHQqIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29udGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsK
IH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKFNlc3Npb25JRCwgY29uc3QgU3RyaW5nJikKK3Zv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpAQCAtNjgsNyAr
NjgsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4mIGRl
ZmF1bHRTZXNzaW9uKCkKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKQogewogICAgIGlmICghZGVmYXVsdFNlc3Npb24o
KSkKLSAgICAgICAgZGVmYXVsdFNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0
b3JhZ2VTZXNzaW9uPihTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgbnVsbHB0cik7Cisg
ICAgICAgIGRlZmF1bHRTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbj4oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgbnVsbHB0cik7CiAg
ICAgcmV0dXJuICpkZWZhdWx0U2Vzc2lvbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q0ZOZXQuY3BwCmluZGV4IDNlMDg1NGY0Zjc5Li43ZTkwMzJjMzQzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5l
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25DRk5ldC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgc3RhdGljIFJldGFpblB0cjxD
RlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiBjcmVhdGVDRlN0b3JhZ2VTZXNzaW9uRm9ySWRlbnRpZmll
cihDRlMKICAgICByZXR1cm4gc3RvcmFnZVNlc3Npb247CiB9CiAKLU5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIFJldGFpblB0
cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiYmIHBsYXRmb3JtU2Vzc2lvbiwgUmV0YWluUHRyPENG
SFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYgcGxhdGZvcm1Db29raWVTdG9yYWdlKQorTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4mJiBwbGF0Zm9ybVNlc3Npb24s
IFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiYmIHBsYXRmb3JtQ29va2llU3RvcmFn
ZSkKICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fcGxhdGZvcm1TZXNzaW9u
KFdURk1vdmUocGxhdGZvcm1TZXNzaW9uKSkKIHsKQEAgLTk5LDIzICs5OSwyMyBAQCB2b2lkIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpCiAgICAgaWYg
KHNlc3Npb24pCiAgICAgICAgIGNvb2tpZVN0b3JhZ2UgPSBhZG9wdENGKF9DRlVSTFN0b3JhZ2VT
ZXNzaW9uQ29weUNvb2tpZVN0b3JhZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc2Vzc2lvbi5nZXQo
KSkpOwogCi0gICAgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpID0gc3RkOjptYWtlX3Vu
aXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCBXVEZNb3ZlKHNlc3Npb24pLCBXVEZNb3ZlKGNvb2tpZVN0b3JhZ2UpKTsKKyAgICBkZWZhdWx0
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbj4oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgV1RGTW92ZShzZXNz
aW9uKSwgV1RGTW92ZShjb29raWVTdG9yYWdlKSk7CiB9CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKQogewogICAg
IGlmICghZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpKQotICAgICAgICBkZWZhdWx0TmV0
d29ya1N0b3JhZ2VTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbj4oU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIsIG51bGxwdHIpOwor
ICAgICAgICBkZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVl
PE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgcmV0dXJuICpkZWZhdWx0TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRp
ZmllckJhc2UpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRp
ZmllckJhc2UpCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsKICAgICBl
bnN1cmVTZXNzaW9uKHNlc3Npb25JRCwgaWRlbnRpZmllckJhc2UpOwogfQogCi12b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlLCBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJl
Zj4mJiBjb29raWVTdG9yYWdlKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJC
YXNlLCBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4mJiBjb29raWVTdG9yYWdlKQog
ewogICAgIGF1dG8gYWRkUmVzdWx0ID0gZ2xvYmFsU2Vzc2lvbk1hcCgpLmFkZChzZXNzaW9uSUQs
IG51bGxwdHIpOwogICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCkBAIC0xMzksNyArMTM5
LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24oU2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGUKICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZh
bHVlID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KHNlc3Npb25JRCwg
V1RGTW92ZShzdG9yYWdlU2Vzc2lvbiksIFdURk1vdmUoY29va2llU3RvcmFnZSkpOwogfQogCi12
b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlKQordm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmVuc3VyZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXJCYXNlKQogewogICAgIGVuc3VyZVNlc3Npb24oc2Vzc2lvbklELCBpZGVu
dGlmaWVyQmFzZSwgbnVsbHB0cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCmluZGV4IDA5ZDJh
ODcxYjYwLi41ZDZmMjNmODU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgKQEAgLTMxLDggKzMx
LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRl
ICJTb2NrZXRTdHJlYW1IYW5kbGUuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmVhbUJ1
ZmZlci5oPgogCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVu
dDsKIAogY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlSW1wbCA6IHB1YmxpYyBTb2NrZXRTdHJlYW1I
YW5kbGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4g
Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwg
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCBT
b3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU29ja2V0U3RyZWFtSGFuZGxlSW1wbCh1cmwsIGNsaWVudCwgc2Vzc2lvbklELCBjcmVk
ZW50aWFsUGFydGl0aW9uLCBXVEZNb3ZlKGF1ZGl0RGF0YSkpKTsgfQorICAgIHN0YXRpYyBSZWY8
U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gY3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYm
IGF1ZGl0RGF0YSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBs
KHVybCwgY2xpZW50LCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFdURk1vdmUoYXVk
aXREYXRhKSkpOyB9CiAKICAgICB2aXJ0dWFsIH5Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsKCk7CiAK
QEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gcGxh
dGZvcm1TZW5kSW50ZXJuYWwoY29uc3QgY2hhciosIHNpemVfdCk7CiAgICAgYm9vbCBzZW5kUGVu
ZGluZ0RhdGEoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFNvY2tldFN0cmVhbUhhbmRsZUltcGwo
Y29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgU2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsKGNvbnN0IFVSTCYs
IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmKTsKICAg
ICB2b2lkIGNyZWF0ZVN0cmVhbXMoKTsKICAgICB2b2lkIHNjaGVkdWxlU3RyZWFtcygpOwogICAg
IHZvaWQgY2hvb3NlUHJveHkoKTsKQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICBSZXRh
aW5QdHI8Q0ZXcml0ZVN0cmVhbVJlZj4gbV93cml0ZVN0cmVhbTsKIAogICAgIFJldGFpblB0cjxD
RlVSTFJlZj4gbV9odHRwc1VSTDsgLy8gd3Mocyk6IHJlcGxhY2VkIHdpdGggaHR0cHM6Ci0gICAg
U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwog
ICAgIFN0cmluZyBtX2NyZWRlbnRpYWxQYXJ0aXRpb247CiAgICAgU291cmNlQXBwbGljYXRpb25B
dWRpdFRva2VuIG1fYXVkaXREYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5j
cHAKaW5kZXggMzM2NmFhNjA2ZGEuLjA5OThhMWU4NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5k
bGVJbXBsQ0ZOZXQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIGV4dGVybiAiQyIgY29uc3QgQ0ZTdHJp
bmdSZWYgX2tDRlN0cmVhbVNvY2tldFNldE5vRGVsYXk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbChjb25zdCBV
UkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgU291cmNlQXBwbGljYXRp
b25BdWRpdFRva2VuJiYgYXVkaXREYXRhKQorU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29ja2V0
U3RyZWFtSGFuZGxlSW1wbChjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50
aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEpCiAg
ICAgOiBTb2NrZXRTdHJlYW1IYW5kbGUodXJsLCBjbGllbnQpCiAgICAgLCBtX2Nvbm5lY3RpbmdT
dWJzdGF0ZShOZXcpCiAgICAgLCBtX2Nvbm5lY3Rpb25UeXBlKFVua25vd24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVh
bUhhbmRsZUltcGwuaAppbmRleCBkYjMwOTBlODhhNi4uODBiOTgwYmRhY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0
cmVhbUhhbmRsZUltcGwuaApAQCAtMzcsOCArMzcsOCBAQAogI2luY2x1ZGUgPHdpbnNvY2syLmg+
CiAjZW5kaWYKIAotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgPGN1cmwvY3VybC5o
PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50OwogCiBj
bGFzcyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsIDogcHVibGljIFNvY2tldFN0cmVhbUhhbmRsZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBjcmVhdGUo
Y29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBTZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFNvY2tldFN0cmVhbUhhbmRsZUltcGwodXJsLCBjbGllbnQpKTsgfQor
ICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gY3JlYXRlKGNvbnN0IFVSTCYg
dXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYsIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmKSB7IHJldHVybiBhZG9w
dFJlZigqbmV3IFNvY2tldFN0cmVhbUhhbmRsZUltcGwodXJsLCBjbGllbnQpKTsgfQogCiAgICAg
dmlydHVhbCB+U29ja2V0U3RyZWFtSGFuZGxlSW1wbCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHAKaW5kZXggNWM1ZmQ3NTQxM2QuLjBkZmM2NjU0MGZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05l
dHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC00OSw3ICs0OSw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24oU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3b3JrU2Vzc2lv
bj4mJiBzZXNzaW9uKQorTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtT
ZXNzaW9uPiYmIHNlc3Npb24pCiAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBt
X3Nlc3Npb24oV1RGTW92ZShzZXNzaW9uKSkKIHsKQEAgLTc1LDI1ICs3NSwyNSBAQCBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4mIGRlZmF1bHRTZXNzaW9uKCkK
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3Rv
cmFnZVNlc3Npb24oKQogewogICAgIGlmICghZGVmYXVsdFNlc3Npb24oKSkKLSAgICAgICAgZGVm
YXVsdFNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgbnVsbHB0cik7CisgICAgICAgIGRlZmF1bHRT
ZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4oUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgbnVsbHB0cik7CiAgICAgcmV0dXJuICpkZWZh
dWx0U2Vzc2lvbigpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQor
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQogewotICAgIEFTU0VSVChz
ZXNzaW9uSUQgIT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIEFTU0VSVChz
ZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgQVNT
RVJUKCFnbG9iYWxTZXNzaW9uTWFwKCkuY29udGFpbnMoc2Vzc2lvbklEKSk7CiAgICAgZ2xvYmFs
U2Vzc2lvbk1hcCgpLmFkZChzZXNzaW9uSUQsIHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uPihzZXNzaW9uSUQsIHN0ZDo6bWFrZV91bmlxdWU8U291cE5ldHdvcmtTZXNzaW9u
PigpKSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKFNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1
cmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQogewogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQKIH0KIAogdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3
VGVzdGluZ1Nlc3Npb24oKQogewotICAgIGRlZmF1bHRTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5p
cXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4oU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCks
IHN0ZDo6bWFrZV91bmlxdWU8U291cE5ldHdvcmtTZXNzaW9uPigpKTsKKyAgICBkZWZhdWx0U2Vz
c2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHN0ZDo6bWFrZV91bmlxdWU8U291cE5ldHdvcmtT
ZXNzaW9uPigpKTsKIH0KIAogU291cE5ldHdvcmtTZXNzaW9uJiBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmdldE9yQ3JlYXRlU291cE5ldHdvcmtTZXNzaW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbC5oCmluZGV4IDkzNzg5OTUwYTBmLi5mZTAyNDIzZWFlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oCkBAIC0zNiw3ICszNiw3IEBACiAKICNpZiBVU0UoU09VUCkKIAotI2luY2x1
ZGUgIlNlc3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9TdHJlYW1CdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRy
Lmg+CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Owog
CiBjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsIGZpbmFsIDogcHVibGljIFNvY2tldFN0cmVh
bUhhbmRsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBs
PiBjcmVhdGUoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgU2Vzc2lvbklE
LCBjb25zdCBTdHJpbmcmLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CisgICAgc3Rh
dGljIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBjcmVhdGUoY29uc3QgVVJMJiwgU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYsIFNvdXJj
ZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmKTsKICAgICBzdGF0aWMgUmVmPFNvY2tldFN0cmVhbUhh
bmRsZT4gY3JlYXRlKEdTb2NrZXRDb25uZWN0aW9uKiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
Jik7CiAKICAgICB2aXJ0dWFsIH5Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcAppbmRleCBlODU5NGU5NDNjMS4uOGU1MGJkNmMzNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcApAQCAtNjMsNyArNjMsNyBA
QCBzdGF0aWMgdm9pZCB3c3NTb2NrZXRDbGllbnRFdmVudENhbGxiYWNrKEdTb2NrZXRDbGllbnQq
LCBHU29ja2V0Q2xpZW50RXZlbnQgZXZlbgogICAgIGdfc2lnbmFsX2Nvbm5lY3QoY29ubmVjdGlv
biwgImFjY2VwdC1jZXJ0aWZpY2F0ZSIsIEdfQ0FMTEJBQ0sod3NzQ29ubmVjdGlvbkFjY2VwdENl
cnRpZmljYXRlQ2FsbGJhY2spLCBudWxscHRyKTsKIH0KIAotUmVmPFNvY2tldFN0cmVhbUhhbmRs
ZUltcGw+IFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiwg
U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYpCitSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1w
bD4gU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRT
dHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYs
IFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmKQogewogICAgIFJlZjxTb2NrZXRTdHJlYW1I
YW5kbGVJbXBsPiBzb2NrZXQgPSBhZG9wdFJlZigqbmV3IFNvY2tldFN0cmVhbUhhbmRsZUltcGwo
dXJsLCBjbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCA3YjczZjU5MzNkYS4uMTIxMDU4NTMzODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1l
IHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJv
eHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgU2Vzc2lvbklEIHNlc3Npb25JRCkK
K1JlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGlt
ZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblBy
b3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlKHVybCwgaWRlbnRpZmllciwgdXNlckFnZW50LCB0aHJlYWQsIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgV1RGTW92ZSh0b3BPcmlnaW4pLCB0
aW1lT3JpZ2luLCBjb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBzZXNzaW9uSUQpKTsK
ICAgICBpZiAoIXNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSkKQEAg
LTQ5LDcgKzQ5LDcgQEAgUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXIKICAgICByZXR1cm4gY29udGV4
dDsKIH0KIAotRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJD
b25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFBy
b3ZpZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6
OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQmIHRocmVhZCwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29j
a2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAg
ICAgOiBXb3JrZXJHbG9iYWxTY29wZSh1cmwsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgdGhyZWFk
LCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFdURk1vdmUodG9w
T3JpZ2luKSwgdGltZU9yaWdpbiwgY29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgc2Vz
c2lvbklEKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDJkNTA4ZjFhODkzLi4zNGVkZWMwNmQ2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKIGNsYXNz
IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGZpbmFsIDogcHVibGljIFdvcmtlckdsb2JhbFNj
b3BlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
PiBjcmVhdGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2Nr
ZXRQcm92aWRlciosIFNlc3Npb25JRCk7CisgICAgc3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZT4gY3JlYXRlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGNvbnN0IENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3Jp
Z2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblBy
b3h5KiwgU29ja2V0UHJvdmlkZXIqLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RN
ZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2UsIFZlY3RvcjxKU0M6
OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJik7CkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgdXNpbmcgQmFzZSA9IFdvcmtlckdsb2JhbFNjb3BlOwogCi0gICAgRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9y
aWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIFNlc3Npb25JRCk7CisgICAgRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50
OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIFBBTDo6U2Vzc2lvbklEKTsK
IAogICAgIGJvb2wgaXNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KICAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbXBvcnRTY3JpcHRzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiB1cmxzKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcAppbmRleCBhNDgzOGI0NzBiMy4uNTA5MmJjOWNi
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhy
ZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVh
ZC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZWRpY2F0
ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdv
cmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
IHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3Jp
Z2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblBy
b3h5KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgSlND
OjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdzLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorRGVkaWNh
dGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBX
b3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9k
ZSBzdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYg
Y29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9y
aWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Q
cm94eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIEpT
Qzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIDogV29ya2VyVGhyZWFkKHVybCwgaWRlbnRpZmllciwgdXNlckFnZW50LCBzb3VyY2VDb2Rl
LCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgY29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIHRvcE9yaWdpbiwgdGltZU9yaWdpbiwgY29ubmVjdGlvblByb3h5
LCBzb2NrZXRQcm92aWRlciwgcnVudGltZUZsYWdzLCBzZXNzaW9uSUQpCiAgICAgLCBtX3dvcmtl
ck9iamVjdFByb3h5KHdvcmtlck9iamVjdFByb3h5KQogewpAQCAtNDgsNyArNDgsNyBAQCBEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQ6On5EZWRpY2F0ZWRXb3JrZXJUaHJlYWQoKQogewogfQogCi1SZWY8
V29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyR2xv
YmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBTZXNzaW9uSUQgc2Vzc2lvbklE
KQorUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9y
aWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogewogICAgIHJldHVybiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6
Y3JlYXRlKHVybCwgaWRlbnRpZmllciwgdXNlckFnZW50LCAqdGhpcywgY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIFdURk1vdmUodG9wT3JpZ2luKSwgdGltZU9yaWdpbiwgaWRiQ29ubmVjdGlvblBy
b3h5KCksIHNvY2tldFByb3ZpZGVyKCksIHNlc3Npb25JRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaAppbmRleCBlYzAxMmY1YmZhMC4uNzc1
YjBjMDliNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29y
a2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJU
aHJlYWQuaApAQCAtNDksMTEgKzQ5LDExIEBAIHB1YmxpYzoKICAgICBXb3JrZXJPYmplY3RQcm94
eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5
OyB9CiAKIHByb3RlY3RlZDoKLSAgICBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBS
ZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4s
IFNlc3Npb25JRCkgb3ZlcnJpZGU7CisgICAgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVX
b3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3Jp
Z2luLCBQQUw6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBydW5FdmVudExvb3AoKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlck9iamVjdFBy
b3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0
aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVy
KiwgSlNDOjpSdW50aW1lRmxhZ3MsIFNlc3Npb25JRCk7CisgICAgRGVkaWNhdGVkV29ya2VyVGhy
ZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBX
b3JrZXJPYmplY3RQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1v
bm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBT
b2NrZXRQcm92aWRlciosIEpTQzo6UnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCk7CiAKICAg
ICBXb3JrZXJPYmplY3RQcm94eSYgbV93b3JrZXJPYmplY3RQcm94eTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlci5jcHAKaW5kZXggNDM2MTJkMjMzZGQuLjgyOTAzMTQwNWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXb3JrZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UKIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgYXV0byogY29udGV4
dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0g
Y29udGV4dCA/IGNvbnRleHQtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEKCk7CisgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEID0gY29udGV4dCA/IGNvbnRleHQtPnNlc3Npb25JRCgpIDogUEFM
OjpTZXNzaW9uSUQoKTsKIAogICAgIGlmIChtX3NjcmlwdExvYWRlci0+ZmFpbGVkKCkgfHwgIXNl
c3Npb25JRC5pc1ZhbGlkKCkpCiAgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZmFsc2UsIHRydWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggMTgwZjg4ZTY5NTguLjc2MmI0MTE2
YzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApA
QCAtNTIsNyArNTIsNyBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVdvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgV29ya2VyVGhyZWFkJiB0aHJlYWQsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9u
aWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBjb25uZWN0
aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKK1dvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29y
a2VyVGhyZWFkJiB0aHJlYWQsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1l
IHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJv
eHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogICAgIDogbV91cmwodXJsKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAg
ICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmgKaW5kZXggYzViMGQ1MmFiNGMuLjY3MDczNDQ3N2U0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0yOSwxMyArMjksMTMgQEAK
ICNpbmNsdWRlICJCYXNlNjRVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQu
aCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1
ZGUgIldvcmtlckV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8bWVt
b3J5PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVB
bGxFdmVudExpc3RlbmVycygpIGZpbmFsOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2Nr
ZXRQcm92aWRlciosIFNlc3Npb25JRCk7CisgICAgV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29y
a2VyVGhyZWFkJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIFBB
TDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgYXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMoY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJik7
CiAKQEAgLTEzMCw3ICsxMzAsNyBAQCBwcml2YXRlOgogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGNvbnN0
X2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPih0aGlzKTsgfQogICAgIFVSTCBjb21wbGV0ZVVSTChj
b25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIFN0cmluZyB1
c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlRXZhbChj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlV2ViQXNz
ZW1ibHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIGZpbmFsOwpAQCAtMTgyLDcgKzE4Miw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogICAg
IG11dGFibGUgUmVmUHRyPENyeXB0bz4gbV9jcnlwdG87CiAKLSAgICBTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGVQcm94eS5oCmluZGV4IDY3YWRmNzAxNDc3Li5jMWRmNDljNmQzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAgLTM1LDEwICszNSwx
MyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8d3RmL01v
bm90b25pY1RpbWUuaD4KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzOwotY2xhc3MgU2Vzc2lvbklEOwogY2xhc3MgVVJMOwogY2xhc3MgV29ya2VyOwog
CkBAIC00Nyw3ICs1MCw3IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlUHJveHkgewogcHVibGlj
OgogICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZVByb3h5JiBjcmVhdGUoV29ya2VyJik7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlw
dFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgSlNDOjpSdW50aW1lRmxhZ3MsIFNlc3Npb25JRCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6OlJ1bnRp
bWVGbGFncywgUEFMOjpTZXNzaW9uSUQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRl
V29ya2VyR2xvYmFsU2NvcGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9X
b3JrZXJHbG9iYWxTY29wZShSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVu
aXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KSA9IDA7CiAgICAgdmlydHVhbCBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMTk2NTNkOGMyYjUuLjRiMmFjMTMw
YmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcApAQCAtNzAsNyArNzAsNyBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3Nh
Z2luZ1Byb3h5KCkKICAgICAgICAgfHwgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KSAmJiBjdXJyZW50VGhyZWFkKCkgPT0gZG93bmNhc3Q8V29ya2VyR2xv
YmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLnRocmVhZCgpLnRocmVhZElEKCkp
KTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29w
ZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW4sIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncywgU2Vzc2lvbklEIHNlc3Npb25JRCkK
K3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
VVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNv
dXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6
OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsK
ICAgICAvLyBGSVhNRTogVGhpcyBuZWVkIHRvIGJlIHJldmlzaXRlZCB3aGVuIHdlIHN1cHBvcnQg
bmVzdGVkIHdvcmtlciBvbmUgZGF5CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1By
b3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5k
ZXggNzkzYTRjNTA2NTEuLmMxMjNlM2Y5MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAg
ICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2VyIG9iamVjdCB0aHJl
YWQuKQotICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29u
c3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgSlNDOjpSdW50aW1lRmxhZ3MsIFNlc3Npb25JRCkgZmluYWw7CisgICAgdm9pZCBzdGFydFdv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6OlJ1bnRpbWVGbGFncywg
UEFMOjpTZXNzaW9uSUQpIGZpbmFsOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyR2xvYmFsU2Nv
cGUoKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRD
aGFubmVsQXJyYXk+KSBmaW5hbDsKICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IGY2YWI5
ZTRlZmUxLi5hNmI3MTEyMjQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcApAQCAtNzIsNyArNzIsNyBAQCB1bnNpZ25lZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVh
ZENvdW50KCkKIHN0cnVjdCBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YSB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV29ya2VyVGhyZWFkU3RhcnR1cERhdGEpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwmIHNj
cmlwdFVSTCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9w
T3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFNlc3Npb25JRCk7CisgICAgV29ya2Vy
VGhyZWFkU3RhcnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29k
ZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1l
T3JpZ2luLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBVUkwgbV9zY3JpcHRVUkw7CiAgICAgU3Ry
aW5nIG1faWRlbnRpZmllcjsKQEAgLTgzLDEwICs4MywxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBt
X3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsKICAgICBSZWY8U2Vj
dXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwogICAgIE1vbm90b25pY1RpbWUgbV90aW1lT3JpZ2lu
OwotICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Np
b25JRDsKIH07CiAKLVdvcmtlclRocmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVw
RGF0YShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJl
YWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKK1dvcmtlclRocmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0
b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogICAgIDogbV9zY3JpcHRVUkwoc2NyaXB0VVJMLmlzb2xhdGVkQ29weSgpKQogICAgICwg
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3VzZXJBZ2Vu
dCh1c2VyQWdlbnQuaXNvbGF0ZWRDb3B5KCkpCkBAIC0xMDAsNyArMTAwLDcgQEAgV29ya2VyVGhy
ZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0
VVJMLCBjb25zdCBTdHIKIHsKIH0KIAotV29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQoY29uc3Qg
VVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdv
cmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJv
eHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29u
c3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92
aWRlciogc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncywgU2Vz
c2lvbklEIHNlc3Npb25JRCkKK1dvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IFVSTCYg
c2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJM
b2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBX
b3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
Ym9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIq
IHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fd29ya2VyTG9hZGVyUHJveHkod29ya2VyTG9hZGVy
UHJveHkpCiAgICAgLCBtX3dvcmtlclJlcG9ydGluZ1Byb3h5KHdvcmtlclJlcG9ydGluZ1Byb3h5
KQogICAgICwgbV9ydW50aW1lRmxhZ3MocnVudGltZUZsYWdzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmgKaW5kZXggYzU5MzIyOTY3ZmQuLmNmZTM0M2VlZjRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTMxLDEzICszMSwxNiBAQAogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAorbmFtZXNwYWNl
IFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOwogY2xhc3MgVVJMOwogY2xh
c3MgTm90aWZpY2F0aW9uQ2xpZW50OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXNz
aW9uSUQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwog
Y2xhc3MgV29ya2VyTG9hZGVyUHJveHk7CkBAIC04MSwxMCArODQsMTAgQEAgcHVibGljOgogICAg
IEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fcnVudGlt
ZUZsYWdzOyB9CiAKIHByb3RlY3RlZDoKLSAgICBXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5
JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1l
T3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwg
SlNDOjpSdW50aW1lRmxhZ3MsIFNlc3Npb25JRCk7CisgICAgV29ya2VyVGhyZWFkKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNv
bnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRp
bmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1Rp
bWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92
aWRlciosIEpTQzo6UnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICAvLyBGYWN0
b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBuZXcgd29ya2VyIGNvbnRleHQgZm9yIHRoZSB0aHJl
YWQuCi0gICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2Jh
bFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFNlc3Np
b25JRCkgPSAwOworICAgIHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3Jr
ZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwg
UmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
LCBQQUw6OlNlc3Npb25JRCkgPSAwOwogCiAgICAgLy8gRXhlY3V0ZXMgdGhlIGV2ZW50IGxvb3Ag
Zm9yIHRoZSB3b3JrZXIgdGhyZWFkLiBEZXJpdmVkIGNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHBl
cmZvcm0gYWN0aW9ucyBiZWZvcmUvYWZ0ZXIgZW50ZXJpbmcgdGhlIGV2ZW50IGxvb3AuCiAgICAg
dmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggMTAyYzJmY2Zm
YzMuLjBlNDJiYzRjZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNs
dWRlICJTZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25z
LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGJhNzQzNGEw
ZTUyLi4xZjkyYTdmZDIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25QYXJhbWV0ZXJz
LmgKQEAgLTI5LDEzICsyOSwxMyBAQAogCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCIKLSNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJVUkwuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvblBhcmFtZXRlcnMgewotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQ7Cisg
ICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIFVSTCBzY3JpcHRVUkw7CiAgICAgVVJM
IGNsaWVudENyZWF0aW9uVVJMOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGEwOGY0YTI3MTcwLi41ZWNmYmEwM2IyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwy
ODEgQEAKIDIwMTctMDgtMTUgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4K
IAorICAgICAgICBbUEFMXSBNb3ZlIFNlc3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6RG93bmxvYWQpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOgorICAgICAgICAo
V2ViS2l0OjpEb3dubG9hZDo6RG93bmxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1h
bmFnZXI6OnN0YXJ0RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6
OnJlc3VtZURvd25sb2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6c3RhcnRE
b3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y3JlYXRlU29ja2V0U3RyZWFtKToKKyAgICAgICAgKFdlYktpdDo6c3RvcmFnZVNlc3Np
b24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3Rh
cnREb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURP
TSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29r
aWVzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlbGV0ZUNvb2tpZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVMZWdhY3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6c3RhcnREb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZXN0
cm95U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OmZldGNoRGlza0NhY2hlRW50cmllcyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkb3dubG9hZFJlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cmVzdW1lRG93bmxvYWQpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTb2NrZXRTdHJlYW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU29ja2V0U3RyZWFt
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU29ja2V0U3RyZWFtOjpOZXR3b3Jr
U29ja2V0U3RyZWFtKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3Ry
ZWFtLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2
ZUxvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9h
ZDo6U3BlY3VsYXRpdmVMb2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6Y29uZmlndXJhdGlvbkZvclNlc3Np
b25JRCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmRlZmF1bHRTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNzaW9uU291cCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaDoKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKGZvcndhcmRfZGVj
bGFyYXRpb25zX2FuZF9oZWFkZXJzLnRlbXBsYXRlcyk6IERlbGV0ZWQuCisgICAgICAgIChjbGFz
c190ZW1wbGF0ZV9oZWFkZXJzLnRlbXBsYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQv
Q2hpbGRQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjppbml0aWFs
aXplKToKKyAgICAgICAgKiBTaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpzdGF0aWNTZXNzaW9uTWFwKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6
Om5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNldFNl
c3Npb24pOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24p
OgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uVHJhY2tlci5oOgorICAgICAgICAqIFNoYXJlZC9T
dG9yYWdlL1N0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoK
KyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tOgorICAgICAgICAoV2ViS2l0Ojp3ZWJL
aXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwpOgorICAgICAgICAq
IFN0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50KToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50Lmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6aWRiU2VydmVyKToKKyAgICAg
ICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAg
ICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oOgorICAgICAgICAqIFN0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFN0b3JhZ2VQcm9j
ZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1Nl
cnZlcik6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25m
aWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldFdlYnNp
dGVEYXRhU3RvcmUpOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6c2Vzc2lvbklE
KToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldFNlc3Npb25JRCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChBUEk6OldlYnNp
dGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmUpOgorICAgICAgICAoQVBJOjpXZWJzaXRlRGF0
YVN0b3JlOjpjcmVhdGVMZWdhY3kpOgorICAgICAgICAoQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpX
ZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRh
U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdLQ29va2llTWFuYWdlckdldEhvc3RuYW1lc1dpdGhDb29raWVzKToKKyAgICAg
ICAgKFdLQ29va2llTWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSk6CisgICAgICAgIChX
S0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdl
ckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZSk6CisgICAgICAgIChXS0Nvb2tpZU1h
bmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdLQ29va2llTWFuYWdl
ckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU3Rh
cnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclN0b3BP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3NldENvb2tpZUFjY2Vw
dFBvbGljeTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9pbml0V2l0aENvbmZpZ3Vy
YXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFn
ZXIuY3BwOgorICAgICAgICAod2Via2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9hY2NlcHRfcG9saWN5
KToKKyAgICAgICAgKHdlYmtpdF9jb29raWVfbWFuYWdlcl9nZXRfYWNjZXB0X3BvbGljeSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OlBsdWdJbkF1
dG9TdGFydFByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXI6OmFkZEF1dG9TdGFydE9yaWdpbkhhc2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRv
U3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmlnaW5zVGFi
bGVXaXRoSXRlbXNQYXNzaW5nVGVzdCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFy
dFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29va2llTWFuYWdlclByb3h5OjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVBbGxDb29raWVz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVDb29raWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tp
ZXNNb2RpZmllZFNpbmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5
OjpzZXRDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNl
dENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEFs
bENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldENv
b2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0YXJ0T2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZU9ic2VydmVyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyT2JzZXJ2ZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnVucmVnaXN0ZXJPYnNlcnZlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Y29va2llc0RpZENoYW5nZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBhZ2VBZGRlZFRvUHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpwYWdlUmVtb3ZlZEZyb21Qcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OnJlc3VtZURvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OmFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNJbkFsbFBlcnNpc3RlbnREYXRhU3RvcmVz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluc1dpdGhXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlTm9u
UGVyc2lzdGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXI6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29va2llcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6Z2V0QWxsQ29va2llcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmdldENvb2tpZXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb29raWVNYW5hZ2VyOjpzZXRDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29raWVNYW5hZ2VyOjpzZXRDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFu
YWdlcjo6bm90aWZ5Q29va2llc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tp
ZU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvb2tpZU1hbmFnZXI6OnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
V2ViRGF0YWJhc2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFiYXNlUHJv
dmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpjcmVhdGVQaW5nSGFu
ZGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFt
SGFuZGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU29ja2V0U3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTb2NrZXRTdHJlYW06OldlYlNvY2tldFN0cmVhbSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNz
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJ
bkNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdJbkNsaWVudDo6ZGlkU3RhcnRG
cm9tT3JpZ2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJ
bkNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWU6OnN0YXJ0RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y29udmVy
dE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFNlc3Npb25JRCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXNzaW9uSUQgY29u
c3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
aXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cGx1Z0luRGlkU3RhcnRGcm9tT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisyMDE3LTA4LTE1ICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CisKICAgICAgICAgW1BBTF0gTW92ZSBTbGVlcCBjbGFzc2VzIGlu
dG8gUEFMCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzU0NTYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWQuY3BwCmluZGV4IGJmODQ0M2I1NzE4Li5jZDkyMTk1MjFjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAt
NDUsNyArNDUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLURvd25sb2FkOjpEb3dubG9hZChEb3dubG9h
ZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBOZXR3b3Jr
RGF0YVRhc2smIGRvd25sb2FkLCBjb25zdCBTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiBzdWdnZXN0ZWROYW1lKQorRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYg
ZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIE5ldHdvcmtEYXRhVGFzayYg
ZG93bmxvYWQsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
c3VnZ2VzdGVkTmFtZSkKICAgICA6IG1fZG93bmxvYWRNYW5hZ2VyKGRvd25sb2FkTWFuYWdlcikK
ICAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQogICAgICwgbV9kb3dubG9hZCgmZG93bmxv
YWQpCkBAIC01Nyw3ICs1Nyw3IEBAIERvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXIm
IGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBOZXR3CiAgICAgbV9kb3du
bG9hZE1hbmFnZXIuZGlkQ3JlYXRlRG93bmxvYWQoKTsKIH0KICNpZiBQTEFURk9STShDT0NPQSkK
LURvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93
bmxvYWRJRCBkb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sqIGRvd25sb2FkLCBj
b25zdCBTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQor
RG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3du
bG9hZElEIGRvd25sb2FkSUQsIE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayogZG93bmxvYWQsIGNv
bnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFt
ZSkKICAgICA6IG1fZG93bmxvYWRNYW5hZ2VyKGRvd25sb2FkTWFuYWdlcikKICAgICAsIG1fZG93
bmxvYWRJRChkb3dubG9hZElEKQogICAgICwgbV9kb3dubG9hZFRhc2soZG93bmxvYWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAppbmRl
eCBhZTRkN2NmZjZjZi4uYmM5ZWE0ZjUyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaApAQCAtMzIsOCArMzIsOCBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
SGFuZGxlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRl
IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTc2LDkgKzc2LDkgQEAgY2xhc3Mg
RG93bmxvYWQgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShEb3dubG9hZCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogI2lm
IFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93
bmxvYWRJRCwgTmV0d29ya0RhdGFUYXNrJiwgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBzZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUgPSB7IH0pOworICAgIERvd25s
b2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIE5ldHdvcmtEYXRhVGFzayYsIGNvbnN0
IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5h
bWUgPSB7IH0pOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIERvd25sb2FkKERvd25sb2FkTWFu
YWdlciYsIERvd25sb2FkSUQsIE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayosIGNvbnN0IFdlYkNv
cmU6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1l
ID0geyB9KTsKKyAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBOU1VS
TFNlc3Npb25Eb3dubG9hZFRhc2sqLCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKICNlbmRpZgogI2Vsc2UKICAg
ICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsK
QEAgLTE0Myw3ICsxNDMsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJl
dGFpblB0cjxOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2s+IG1fZG93bmxvYWRUYXNrOwogI2VuZGlm
Ci0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogI2Vsc2UgLy8gVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5
cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAppbmRleCBiNzZiYTQ3YmQxMC4uZWYxNTMwMTlhMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRNYW5hZ2VyLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIlBlbmRpbmdE
b3dubG9hZC5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTQ1LDcgKzQ1LDcgQEAgRG93
bmxvYWRNYW5hZ2VyOjpEb3dubG9hZE1hbmFnZXIoQ2xpZW50JiBjbGllbnQpCiB7CiB9CiAKLXZv
aWQgRG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKiBjb25uZWN0aW9uLCBTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25s
b2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWROYW1lKQordm9pZCBEb3dubG9hZE1hbmFnZXI6OnN0YXJ0RG93bmxvYWQoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkKIHsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9O
KQogICAgIGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNz
aW9uKHNlc3Npb25JRCk7CkBAIC0xNjIsNyArMTYyLDcgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6
OmNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCBkb3du
bG8KICNlbmRpZgogfQogCi12b2lkIERvd25sb2FkTWFuYWdlcjo6cmVzdW1lRG93bmxvYWQoU2Vz
c2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
cmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCit2b2lkIERvd25sb2FkTWFuYWdlcjo6cmVz
dW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKIHsKICNp
ZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5oCmluZGV4IGI0ZDUyNWI3MmQ0Li4xNjNjMDBhNWI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKQEAg
LTM1LDEyICszNSwxNSBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iRGF0YUZpbGVSZWZlcmVuY2U7CiBjbGFz
cyBSZXNvdXJjZUhhbmRsZTsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNl
UmVzcG9uc2U7Ci1jbGFzcyBTZXNzaW9uSUQ7CiB9CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNzUs
NyArNzgsNyBAQCBwdWJsaWM6CiAKICAgICBleHBsaWNpdCBEb3dubG9hZE1hbmFnZXIoQ2xpZW50
Jik7CiAKLSAgICB2b2lkIHN0YXJ0RG93bmxvYWQoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MqLCBXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CisgICAgdm9p
ZCBzdGFydERvd25sb2FkKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiwgUEFMOjpTZXNz
aW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikK
ICAgICB2b2lkIGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKERvd25sb2FkSUQsIHN0ZDo6dW5p
cXVlX3B0cjxEb3dubG9hZD4mJik7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxM
QkFDSykKQEAgLTg3LDcgKzkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgY29udmVydE5ldHdvcmtM
b2FkVG9Eb3dubG9hZChEb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0xvYWQ+JiYs
IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPj4mJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOwogICAgIHZvaWQgY29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihE
b3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIGNvbnN0IFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSYsIGJvb2wgYWxsb3dPdmVyd3JpdGUpOwogCi0gICAgdm9pZCByZXN1bWVEb3dubG9hZChX
ZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
cmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmKTsKKyAgICB2b2lkIHJlc3VtZURvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9h
ZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYg
cGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CiAKICAgICB2b2lkIGNhbmNl
bERvd25sb2FkKERvd25sb2FkSUQpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKaW5kZXggNjUy
MmQ5ODI2ODQuLmFlOTQ3NGE1MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKQEAgLTMxLDcgKzMx
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlVHlwZXMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXNwb25zZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFs
L2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHN0cnVjdCBQ
YXJhbWV0ZXJzIHsKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVx
dWVzdDsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBzb3VyY2VPcmlnaW47
Ci0gICAgICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CisgICAgICAgIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRDsKICAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMgYWxs
b3dTdG9yZWRDcmVkZW50aWFsczsKICAgICB9OwogICAgIGVudW0gY2xhc3MgUmVzdWx0IHsgU3Vj
Y2VzcywgRmFpbHVyZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA3M2JhNjBj
MjdlMy4uZDI0MWMwZDczNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01MSw3
ICs1MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1
ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lP
TikKICNpbmNsdWRlICJQaW5nTG9hZC5oIgpAQCAtMTczLDcgKzE3Myw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJCiB7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNyZWF0ZVNvY2tldFN0cmVhbShVUkwmJiB1cmwsIFNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmlu
ZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVNvY2tldFN0cmVhbShVUkwmJiB1cmwsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlm
aWVyKQogewogICAgIEFTU0VSVCghbV9uZXR3b3JrU29ja2V0U3RyZWFtcy5jb250YWlucyhpZGVu
dGlmaWVyKSk7CiAgICAgV2ViQ29yZTo6U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuIHRva2Vu
ID0geyB9OwpAQCAtMjYzLDEwICsyNjMsMTAgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKICAgICBOZXR3b3Jr
UHJvY2Vzczo6c2luZ2xldG9uKCkucHJlZmV0Y2hETlMoaG9zdG5hbWUpOwogfQogCi1zdGF0aWMg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklE
KQorc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKLSAg
ICBpZiAoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CisgICAg
aWYgKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CiAg
ICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgICAgIHJldHVybiAqc3RvcmFnZVNl
c3Npb247CiAKQEAgLTI3NywxMiArMjc3LDEyIEBAIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgcmV0dXJuIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CiAKLXZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0RG93bmxvYWQoU2Vzc2lvbklEIHNlc3Np
b25JRCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3du
bG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWROYW1lKQogewogICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24o
KS5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKHRoaXMsIHNlc3Npb25JRCwgZG93bmxv
YWRJRCwgcmVxdWVzdCwgc3VnZ2VzdGVkTmFtZSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxv
YWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25sb2FkSUQg
ZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBhdXRvJiBuZXR3b3JrUHJvY2VzcyA9IE5ldHdv
cmtQcm9jZXNzOjpzaW5nbGV0b24oKTsKICAgICBpZiAoIW1haW5SZXNvdXJjZUxvYWRJZGVudGlm
aWVyKSB7CkBAIC0yOTksMzIgKzI5OSwzMiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoU2Vzc2lvbklECiAgICAg
bG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25zZSk7
CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00o
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVy
bCwgU3RyaW5nJiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gV2Vi
Q29yZTo6Y29va2llc0ZvckRPTShzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5
LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29r
aWVzRnJvbURPTShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKK3ZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBjb29raWVTdHJpbmcpCiB7CiAgICAgV2ViQ29yZTo6c2V0Q29va2llc0Zyb21ET00oc3Rv
cmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVTdHJpbmcpOwog
fQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZChT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJs
LCBib29sJiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29r
aWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgVVJMJiB1cmwsIGJvb2wmIHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBXZWJDb3Jl
Ojpjb29raWVzRW5hYmxlZChzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1
cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwg
U3RyaW5nJiByZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJs
KTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2ll
cyhTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYg
dXJsLCBWZWN0b3I8Q29va2llPiYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Z2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByZXN1bHQpCiB7
CiAgICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBm
aXJzdFBhcnR5LCB1cmwsIHJlc3VsdCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRlbGV0ZUNvb2tpZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKIHsKICAgICBXZWJDb3JlOjpkZWxldGVD
b29raWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgdXJsLCBjb29raWVOYW1lKTsKIH0KQEAg
LTQyMCw3ICs0MjAsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRD
YXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvbwogCiB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KCkKIHsKLSAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbih7U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCksIHsgfSwgeyB9
LCB7IH19KTsKKyAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbih7UEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSwg
eyB9LCB7IH0sIHsgfX0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAppbmRleCAzODRjY2U3NGM0Mi4uMjY3YTFhNmFhZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKQEAgLTg4LDE1ICs4OCwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3Zl
TG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgdm9pZCBzZXREZWZl
cnNMb2FkaW5nKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wpOwogICAgIHZvaWQgY3Jvc3NP
cmlnaW5SZWRpcmVjdFJlY2VpdmVkKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgcmVkaXJlY3RVUkwpOwotICAgIHZvaWQgc3RhcnREb3dubG9hZChXZWJDb3JlOjpT
ZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7Ci0gICAgdm9pZCBjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVz
b3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgc3Rh
cnREb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKKyAgICB2
b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Npb25JRCwgdWlu
dDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsK
IAotICAgIHZvaWQgY29va2llc0ZvckRPTShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1bHQp
OwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBX
ZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmlu
ZyYpOwotICAgIHZvaWQgY29va2llc0VuYWJsZWQoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBX
ZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wmIHJlc3Vs
dCk7Ci0gICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJM
JiwgU3RyaW5nJiByZXN1bHQpOwotICAgIHZvaWQgZ2V0UmF3Q29va2llcyhXZWJDb3JlOjpTZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJM
JiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZShXZWJD
b3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgY29va2ll
TmFtZSk7CisgICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0
KTsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYp
OworICAgIHZvaWQgY29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCYgcmVzdWx0KTsKKyAg
ICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYg
cmVzdWx0KTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIAogICAgIHZvaWQg
cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZl
Y3RvcjxXZWJDb3JlOjpCbG9iUGFydD4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CkBA
IC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0
d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sKTsKIAotICAgIHZvaWQgY3JlYXRlU29ja2V0U3Ry
ZWFtKFdlYkNvcmU6OlVSTCYmLCBXZWJDb3JlOjpTZXNzaW9uSUQsIFN0cmluZyBjYWNoZVBhcnRp
dGlvbiwgdWludDY0X3QpOworICAgIHZvaWQgY3JlYXRlU29ja2V0U3RyZWFtKFdlYkNvcmU6OlVS
TCYmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRfdCk7CiAg
ICAgdm9pZCBkZXN0cm95U29ja2V0U3RyZWFtKHVpbnQ2NF90KTsKICAgICAKICAgICB2b2lkIGVu
c3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGVlMjU4NGJjM2JjLi45NjA4YjQ5YmVlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yOSwxNSArMjks
MTUgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIFNldERlZmVyc0xvYWRpbmcodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgYm9vbCBkZWZlcnMpCiAgICAgUHJlZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQogCi0g
ICAgU3RhcnREb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRv
d25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0
cmluZyBzdWdnZXN0ZWROYW1lKQotICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9h
ZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQor
ICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRvd25s
b2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmlu
ZyBzdWdnZXN0ZWROYW1lKQorICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAKLSAgICBD
b29raWVzRm9yRE9NKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBm
aXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKLSAgICBTZXRD
b29raWVzRnJvbURPTShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwg
Zmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIGNvb2tpZVN0cmluZykKLSAgICBD
b29raWVzRW5hYmxlZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwg
Zmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKGJvb2wgZW5hYmxlZCkKLSAgICBDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1
bHQpCi0gICAgR2V0UmF3Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+IGNvb2tpZXMpCi0gICAgRGVsZXRlQ29va2llKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQorICAgIENvb2tp
ZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0
eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCisgICAgU2V0Q29va2llc0Zy
b21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwg
V2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIGNvb2tpZVN0cmluZykKKyAgICBDb29raWVzRW5hYmxl
ZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJD
b3JlOjpVUkwgdXJsKSAtPiAoYm9vbCBlbmFibGVkKQorICAgIENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFy
dHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJpbmcgcmVzdWx0KQorICAgIEdldFJhd0Nvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2Vi
Q29yZTo6VVJMIHVybCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpCisgICAg
RGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIHVybCwg
U3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3RlckZpbGVCbG9iVVJMKFdlYkNvcmU6OlVS
TCB1cmwsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBleHRl
bnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlwZSkKICAgICBSZWdpc3RlckJsb2JVUkwoV2Vi
Q29yZTo6VVJMIHVybCwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiBibG9iUGFydHMsIFN0cmlu
ZyBjb250ZW50VHlwZSkKQEAgLTUzLDcgKzUzLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0Q2FwdHVyZUV4dHJh
TmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sIGVuYWJsZWQpCiAKLSAgICBDcmVhdGVTb2Nr
ZXRTdHJlYW0oV2ViQ29yZTo6VVJMIHVybCwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlmaWVyKQorICAgIENyZWF0ZVNv
Y2tldFN0cmVhbShXZWJDb3JlOjpVUkwgdXJsLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0
cmluZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllcikKIAogICAgIEVuc3VyZUxl
Z2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCAwNDc0N2M0MGEwMi4uODVhNWIxMmU4NTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC0zNSw4
ICszNSw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVx
dWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oCmluZGV4IGQwNjRiZWJlY2VhLi4xNGE1ZTkzYjVjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC0yOSw3
ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNp
bmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHsKIHB1Ymxp
YzoKICAgICB1aW50NjRfdCB3ZWJQYWdlSUQgeyAwIH07CiAgICAgdWludDY0X3Qgd2ViRnJhbWVJ
RCB7IDAgfTsKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEIHsgV2ViQ29yZTo6U2Vz
c2lvbklEOjplbXB0eVNlc3Npb25JRCgpIH07CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
IHsgUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkgfTsKICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kg
Y29udGVudFNuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6U25pZmZDb250ZW50IH07CiAgICAgV2Vi
Q29yZTo6U3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscyB7IFdlYkNvcmU6
OkRvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAxYmUzOGEyNzIxOC4uZTFlZjE1MWJi
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCkBAIC02MSw5ICs2MSw5IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9VUkxQYXJzZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yMzcsNyArMjM3LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiYKIAogICAgIC8vIEZJWE1FOiBpbnN0ZWFkIG9mIGhhbmRsaW5nIHRoaXMg
aGVyZSwgYSBtZXNzYWdlIHNob3VsZCBiZSBzZW50IGxhdGVyIChzY2FsZXMgdG8gbXVsdGlwbGUg
c2Vzc2lvbnMpCiAgICAgaWYgKHBhcmFtZXRlcnMucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAg
ICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oe1Nlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCB7IH0sIHsgfSwgeyB9fSk7
CisgICAgICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKHtQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCB7IH0sIHsg
fSwgeyB9fSk7CiAKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nl
c3Npb24pCiAgICAgICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5n
U2Vzc2lvbigpOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdl
YnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAg
ICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9u
KFdURk1vdmUocGFyYW1ldGVycykpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95
U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJv
eVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFNlc3Npb25UcmFja2Vy
OjpkZXN0cm95U2Vzc2lvbihzZXNzaW9uSUQpOwogfQpAQCAtMzI1LDcgKzMyNSw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZ0ZvclRvcFByaXZhdGVseU93
bmVkRG9tYWlucyhjb25zdCBWCiB9CiAjZW5kaWYKIAotc3RhdGljIHZvaWQgZmV0Y2hEaXNrQ2Fj
aGVFbnRyaWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNo
T3B0aW9uPiBmZXRjaE9wdGlvbnMsIEZ1bmN0aW9uPHZvaWQgKFZlY3RvcjxXZWJzaXRlRGF0YTo6
RW50cnk+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3N0YXRpYyB2b2lkIGZldGNoRGlza0NhY2hl
RW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YUZl
dGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIEZ1bmN0aW9uPHZvaWQgKFZlY3RvcjxXZWJzaXRlRGF0
YTo6RW50cnk+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFCTEUoTkVUV09SS19D
QUNIRSkKICAgICBpZiAoYXV0byogY2FjaGUgPSBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCku
Y2FjaGUoKSkgewpAQCAtMzYwLDcgKzM2MCw3IEBAIHN0YXRpYyB2b2lkIGZldGNoRGlza0NhY2hl
RW50cmllcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjCiAg
ICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cywgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgdWludDY0
X3QgY2FsbGJhY2tJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25z
LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0b3Ig
ZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWxsYmFja0FnZ3JlZ2F0b3I+IHsKICAgICAgICAg
ZXhwbGljaXQgQ2FsbGJhY2tBZ2dyZWdhdG9yKEZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTQwMiw3ICs0MDIsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURh
dGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0
ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmll
ZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRl
V2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1l
X3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpIU1RTQ2FjaGUpKSB7CkBAIC00NjAsNyArNDYwLDcgQEAgc3RhdGljIHZvaWQgY2xlYXJE
aXNrQ2FjaGVFbnRyaWVzKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5z
LCBGdW4KICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vi
c2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgdWludDY0X3QgY2FsbGJhY2tJRCkK
IHsKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkNv
b2tpZXMpKSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC00NzksMTIg
KzQ3OSwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdp
bnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PAogICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRvd25sb2FkUmVxdWVzdChTZXNzaW9uSUQg
c2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSkKK3ZvaWQgTmV0d29ya1By
b2Nlc3M6OmRvd25sb2FkUmVxdWVzdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2Fk
SUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQogewogICAgIGRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93
bmxvYWQobnVsbHB0ciwgc2Vzc2lvbklELCBkb3dubG9hZElELCByZXF1ZXN0LCBzdWdnZXN0ZWRG
aWxlbmFtZSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc3VtZURvd25sb2FkKFNlc3Np
b25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQordm9pZCBOZXR3
b3JrUHJvY2Vzczo6cmVzdW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3du
bG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwg
Y29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKIHsKICAgICBkb3dubG9hZE1hbmFnZXIoKS5yZXN1
bWVEb3dubG9hZChzZXNzaW9uSUQsIGRvd25sb2FkSUQsIHJlc3VtZURhdGEsIHBhdGgsIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGRkZjFmYTIyNDk1Li5lZGUyYmYzZTk2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzAsOCArMzAs
OCBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlck1hcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaD4KQEAgLTQyLDEzICs0MiwxNiBAQAogI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlci5oIgogI2VuZGlmCiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklE
OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEb3dubG9hZElEOwogY2xhc3MgQ2Vy
dGlmaWNhdGVJbmZvOwogY2xhc3MgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOwogY2xhc3MgUHJvdGVj
dGlvblNwYWNlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXNzaW9uSUQ7CiBzdHJ1
Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogc3RydWN0IFNvdXBOZXR3b3JrUHJveHlTZXR0aW5nczsK
IH0KQEAgLTE3MSwxOSArMTc0LDE5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplTmV0
d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAgICAgdm9p
ZCBjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpOwogICAgIHZvaWQgYWRkV2Vi
c2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmKTsKLSAgICB2b2lkIGRl
c3Ryb3lTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkZXN0cm95U2Vzc2lv
bihQQUw6OlNlc3Npb25JRCk7CiAKLSAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhRmV0Y2hPcHRpb24+LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGRlbGV0ZVdl
YnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMo
V2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQg
ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgdWludDY0X3QgY2FsbGJhY2tJ
RCk7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQg
bW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgdWludDY0X3QgY2FsbGJhY2tJ
RCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKTsKIAogICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCB0YWtlIGEgc2Vzc2lvbiBJRCBzbyB3ZSBjYW4gaWRlbnRpZnkgd2hpY2gg
ZGlzayBjYWNoZSB0byBkZWxldGUuCiAgICAgdm9pZCBjbGVhckRpc2tDYWNoZShzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIEZ1bmN0aW9uPHZvaWQg
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogCi0gICAgdm9pZCBkb3dubG9hZFJlcXVlc3QoV2Vi
Q29yZTo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKTsKLSAgICB2b2lkIHJlc3VtZURv
d25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYpOworICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0KFBBTDo6U2Vzc2lvbklE
LCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJp
bmcmIHN1Z2dlc3RlZEZpbGVuYW1lKTsKKyAgICB2b2lkIHJlc3VtZURvd25sb2FkKFBBTDo6U2Vz
c2lvbklELCBEb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEs
IGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CiAg
ICAgdm9pZCBjYW5jZWxEb3dubG9hZChEb3dubG9hZElEKTsKICNpZiBVU0UoUFJPVEVDVElPTl9T
UEFDRV9BVVRIX0NBTExCQUNLKQogICAgIHZvaWQgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wg
Y2FuQXV0aGVudGljYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDM2ZTQ3Nzc4OWYyLi5hY2FmODFm
MmZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNywxNCArMzcsMTQgQEAgbWVzc2FnZXMgLT4gTmV0
d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgRW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyB3ZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycykKICAgICBBZGRXZWJzaXRlRGF0YVN0b3JlKHN0cnVjdCBXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
KTsKLSAgICBEZXN0cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAg
IERlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAotICAgIEZldGNoV2Vi
c2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJz
aXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0g
ICAgRGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCi0gICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucywgVmVj
dG9yPFN0cmluZz4gY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIEZl
dGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0
OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6Oldl
YnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgdWludDY0X3QgY2FsbGJhY2tJRCkK
KyAgICBEZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFj
a0lEKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucywgVmVjdG9yPFN0
cmluZz4gY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogCi0gICAgRG93bmxv
YWRSZXF1ZXN0KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJ
RCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1
Z2dlc3RlZEZpbGVuYW1lKQotICAgIFJlc3VtZURvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBJUEM6OkRhdGFSZWZlcmVu
Y2UgcmVzdW1lRGF0YSwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCisgICAgRG93bmxvYWRSZXF1ZXN0KFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUpCisgICAg
UmVzdW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRvd25sb2Fk
SUQgZG93bmxvYWRJRCwgSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VtZURhdGEsIFN0cmluZyBwYXRo
LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KQogICAgIENhbmNlbERvd25sb2FkKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElEKQogCiAj
aWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuaAppbmRleCAxY2ZlN2E4YmUzZi4uOGFmNDIxYTExMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVy
T3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3Rm
L1NlY29uZHMuaD4KIAogbmFtZXNwYWNlIElQQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA2ZWQ1ZjdmZjIxNC4u
ZGJlNTE5YzQyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBt
X3Jlc3BvbnNlOyB9CiAKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVj
dGlvblRvV2ViUHJvY2VzcygpIHsgcmV0dXJuIG1fY29ubmVjdGlvbjsgfQotICAgIFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuc2Vzc2lv
bklEOyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9w
YXJhbWV0ZXJzLnNlc3Npb25JRDsgfQogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyOyB9CiAgICAgdWlu
dDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9
CiAgICAgdWludDY0X3QgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcAppbmRleCA0OTgwMDVlZDFjOS4uNjc5NGQwMGRmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC00NSw3ICs0NSw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPE5ldHdv
cmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKFNlc3Npb25JRCBzZXNzaW9uSUQsIExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyKQorUmVmPE5l
dHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBjdXN0b21Qcm90b2NvbE1hbmFnZXIp
CiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgcmV0dXJuIE5ldHdvcmtTZXNzaW9uQ29jb2E6
OmNyZWF0ZShzZXNzaW9uSUQsIGN1c3RvbVByb3RvY29sTWFuYWdlcik7CkBAIC02Miw3ICs2Miw3
IEBAIE5ldHdvcmtTZXNzaW9uJiBOZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKQogICAg
IHJldHVybiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpkZWZhdWx0U2Vzc2lvbigpOwogI2Vsc2UKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIHN0YXRpYyBOZXR3b3JrU2Vzc2lvbiog
c2Vzc2lvbiA9ICZOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKS5sZWFrUmVmKCk7CisgICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uID0g
Jk5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSkubGVha1JlZigpOwogICAgIHJldHVybiAqc2Vzc2lvbjsKICNlbmRpZgogfQpAQCAtNzQsNyAr
NzQsNyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtTZXNzaW9uOjpuZXR3b3JrU3Rv
cmFnZVNlc3Npb24oKSBjb25zdAogICAgIHJldHVybiAqc3RvcmFnZVNlc3Npb247CiB9CiAKLU5l
dHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQorTmV0d29y
a1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCBhYzIzMDkxNDNiNy4uNWEzZmU2Y2UzMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTI3
LDcgKzI3LDcgQEAKIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAKLSNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MywyMyArNDMsMjMgQEAgY2xhc3MgTmV0d29ya0RhdGFU
YXNrOwogCiBjbGFzcyBOZXR3b3JrU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtT
ZXNzaW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRl
KFdlYkNvcmU6OlNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiA9IG51bGxw
dHIpOworICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShQQUw6OlNlc3Npb25J
RCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBO
ZXR3b3JrU2Vzc2lvbiYgZGVmYXVsdFNlc3Npb24oKTsKICAgICB2aXJ0dWFsIH5OZXR3b3JrU2Vz
c2lvbigpOwogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVBbmRDYW5jZWwoKTsKICAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJDcmVkZW50aWFscygpIHsgfTsKIAotICAgIFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKSBj
b25zdDsKIAogICAgIHZvaWQgcmVnaXN0ZXJOZXR3b3JrRGF0YVRhc2soTmV0d29ya0RhdGFUYXNr
JiB0YXNrKSB7IG1fZGF0YVRhc2tTZXQuYWRkKCZ0YXNrKTsgfQogICAgIHZvaWQgdW5yZWdpc3Rl
ck5ldHdvcmtEYXRhVGFzayhOZXR3b3JrRGF0YVRhc2smIHRhc2spIHsgbV9kYXRhVGFza1NldC5y
ZW1vdmUoJnRhc2spOyB9CiAKIHByb3RlY3RlZDoKLSAgICBOZXR3b3JrU2Vzc2lvbihXZWJDb3Jl
OjpTZXNzaW9uSUQpOworICAgIE5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKIAotICAg
IFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nl
c3Npb25JRDsKIAogICAgIEhhc2hTZXQ8TmV0d29ya0RhdGFUYXNrKj4gbV9kYXRhVGFza1NldDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2Nr
ZXRTdHJlYW0uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0
U3RyZWFtLmNwcAppbmRleCAzMzE3MGRhODNmMi4uYzExNjA4MzFjMGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmNwcApAQCAt
MzUsMTIgKzM1LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotUmVmPE5ldHdvcmtTb2NrZXRTdHJlYW0+IE5ldHdvcmtTb2NrZXRTdHJlYW06OmNy
ZWF0ZShXZWJDb3JlOjpVUkwmJiB1cmwsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllciwgSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBh
dWRpdERhdGEpCitSZWY8TmV0d29ya1NvY2tldFN0cmVhbT4gTmV0d29ya1NvY2tldFN0cmVhbTo6
Y3JlYXRlKFdlYkNvcmU6OlVSTCYmIHVybCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIsIElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVk
aXREYXRhKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtTb2NrZXRTdHJlYW0o
V1RGTW92ZSh1cmwpLCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIGlkZW50aWZpZXIs
IGNvbm5lY3Rpb24sIFdURk1vdmUoYXVkaXREYXRhKSkpOwogfQogCi1OZXR3b3JrU29ja2V0U3Ry
ZWFtOjpOZXR3b3JrU29ja2V0U3RyZWFtKFVSTCYmIHVybCwgU2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlmaWVyLCBJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYm
IGF1ZGl0RGF0YSkKK05ldHdvcmtTb2NrZXRTdHJlYW06Ok5ldHdvcmtTb2NrZXRTdHJlYW0oVVJM
JiYgdXJsLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlh
bFBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEpCiAgICAgOiBtX2lk
ZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAg
ICwgbV9pbXBsKFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0ZSh1cmwsICp0aGlzLCBzZXNz
aW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFdURk1vdmUoYXVkaXREYXRhKSkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5oCmluZGV4
IDdkYzNkMGNlM2U5Li5lNDY1MDczYmM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmgKQEAgLTI3LDkgKzI3LDkgQEAKIAogI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0U3Ry
ZWFtSGFuZGxlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFj
ZSBJUEMgewogY2xhc3MgQ29ubmVjdGlvbjsKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIE5ldHdvcmtTb2NrZXRTdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxO
ZXR3b3JrU29ja2V0U3RyZWFtPiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtTb2NrZXRTdHJlYW0+IGNyZWF0
ZShXZWJDb3JlOjpVUkwmJiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90LCBJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpTb3Vy
Y2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CisgICAgc3RhdGljIFJlZjxOZXR3b3JrU29ja2V0
U3RyZWFtPiBjcmVhdGUoV2ViQ29yZTo6VVJMJiYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90LCBJUEM6OkNvbm5lY3Rpb24mLCBXZWJD
b3JlOjpTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CiAgICAgfk5ldHdvcmtTb2NrZXRT
dHJlYW0oKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFsOwogICAgIHVpbnQ2NF90IG1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgZmluYWw7CiAKLSAgICBOZXR3b3JrU29ja2V0U3Ry
ZWFtKFdlYkNvcmU6OlVSTCYmLCBXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3Jl
ZGVudGlhbFBhcnRpdGlvbiwgdWludDY0X3QsIElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNv
dXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmKTsKKyAgICBOZXR3b3JrU29ja2V0U3RyZWFtKFdl
YkNvcmU6OlVSTCYmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFy
dGl0aW9uLCB1aW50NjRfdCwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U291cmNlQXBwbGlj
YXRpb25BdWRpdFRva2VuJiYpOwogCiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwogICAgIElQ
Qzo6Q29ubmVjdGlvbiYgbV9jb25uZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IGFiM2VmYmI0MjE3
Li4yZTRlN2M5NTIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjgsNyArMjgsNyBAQAogI2RlZmluZSBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdD
b250ZXh0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwv
aWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM2LDcg
KzM2LDcgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCiBjbGFzcyBSZW1v
dGVOZXR3b3JraW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29u
dGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4g
Y3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0aWMgUmVmPFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0PiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgewogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChzZXNzaW9uSUQsIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKICAgICB9CkBAIC00OSw3ICs0OSw3
IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3Q7IH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QpCiAgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICAgICAs
IG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKQEAgLTY2LDcgKzY2LDcgQEAgcHJp
dmF0ZToKICAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgV2Vi
Q29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lv
bklEOwogICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5j
cHAKaW5kZXggZTM3NTdjOTE5MTAuLjhkNmVkMDRmMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZUxvYWQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hl
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZp
ZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIApAQCAtNTIsNyArNTIsNyBAQCBTcGVjdWxhdGl2ZUxvYWQ6OlNwZWN1
bGF0aXZlTG9hZChDYWNoZSYgY2FjaGUsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNv
bgogICAgIEFTU0VSVCghbV9jYWNoZUVudHJ5IHx8IG1fY2FjaGVFbnRyeS0+bmVlZHNWYWxpZGF0
aW9uKCkpOwogCiAgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Ci0gICAgcGFy
YW1ldGVycy5zZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBw
YXJhbWV0ZXJzLnNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7
CiAgICAgcGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gQWxsb3dTdG9yZWRDcmVk
ZW50aWFsczsKICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IERvTm90U25p
ZmZDb250ZW50OwogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IG1fb3JpZ2luYWxSZXF1ZXN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EuaAppbmRleCAzNTE2NDEyYzA0OC4uNDkwMDFlNjA1YTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTmV0d29y
a1Nlc3Npb25Db2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrU2Vzc2lvbiB7CiAgICAgZnJpZW5k
IGNsYXNzIE5ldHdvcmtEYXRhVGFza0NvY29hOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0
d29ya1Nlc3Npb24+IGNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQsIExlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlciopOworICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShQQUw6
OlNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKik7CiAgICAgc3RhdGljIE5l
dHdvcmtTZXNzaW9uJiBkZWZhdWx0U2Vzc2lvbigpOwogICAgIH5OZXR3b3JrU2Vzc2lvbkNvY29h
KCk7CiAKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIERvd25sb2FkSUQgdGFrZURvd25s
b2FkSUQoTmV0d29ya0RhdGFUYXNrQ29jb2E6OlRhc2tJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToK
LSAgICBOZXR3b3JrU2Vzc2lvbkNvY29hKFdlYkNvcmU6OlNlc3Npb25JRCwgTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyKik7CisgICAgTmV0d29ya1Nlc3Npb25Db2NvYShQQUw6OlNlc3Npb25J
RCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKik7CiAKICAgICB2b2lkIGludmFsaWRhdGVB
bmRDYW5jZWwoKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQ3JlZGVudGlhbHMoKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCAwZjg1ZDA3MGFlYy4uODc1NDgyMTczNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KQEAgLTQ1NSw3ICs0NTUsNyBAQCBzdGF0aWMgTGVnYWN5Q3VzdG9tUHJv
dG9jb2xNYW5hZ2VyKiBsZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXI7CiBzdGF0aWMgYm9vbCBz
ZXNzaW9uc0NyZWF0ZWQgPSBmYWxzZTsKICNlbmRpZgogCi1zdGF0aWMgTlNVUkxTZXNzaW9uQ29u
ZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbkZvclNlc3Npb25JRChjb25zdCBXZWJDb3JlOjpTZXNz
aW9uSUQmIHNlc3Npb24pCitzdGF0aWMgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqY29uZmln
dXJhdGlvbkZvclNlc3Npb25JRChjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbikKIHsKICAg
ICBpZiAoc2Vzc2lvbi5pc0VwaGVtZXJhbCgpKSB7CiAgICAgICAgIE5TVVJMU2Vzc2lvbkNvbmZp
Z3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiBlcGhl
bWVyYWxTZXNzaW9uQ29uZmlndXJhdGlvbl07CkBAIC01MzMsNyArNTMzLDcgQEAgdm9pZCBOZXR3
b3JrU2Vzc2lvbkNvY29hOjpzZXRDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlKQogfQogI2VuZGlmCiAKLVJlZjxOZXR3b3JrU2Vzc2lvbj4gTmV0d29ya1Nlc3Np
b25Db2NvYTo6Y3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIExlZ2FjeUN1c3Rv
bVByb3RvY29sTWFuYWdlciogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyKQorUmVmPE5ldHdvcmtTZXNz
aW9uPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIqIGN1c3RvbVByb3RvY29sTWFuYWdlcikKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU2Vzc2lvbkNvY29hKHNlc3Npb25JRCwg
Y3VzdG9tUHJvdG9jb2xNYW5hZ2VyKSk7CiB9CkBAIC01NDEsMTEgKzU0MSwxMSBAQCBSZWY8TmV0
d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBMZQogTmV0d29ya1Nlc3Npb24mIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmRl
ZmF1bHRTZXNzaW9uKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIHN0
YXRpYyBOZXR3b3JrU2Vzc2lvbiogc2Vzc2lvbiA9ICZOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVh
dGUoV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIGxlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlcikubGVha1JlZigpOworICAgIHN0YXRpYyBOZXR3b3JrU2Vzc2lvbiogc2Vz
c2lvbiA9ICZOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSwgbGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKS5sZWFrUmVmKCk7CiAg
ICAgcmV0dXJuICpzZXNzaW9uOwogfQogCi1OZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vz
c2lvbkNvY29hKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIExlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlciogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyKQorTmV0d29ya1Nlc3Npb25Db2NvYTo6
TmV0d29ya1Nlc3Npb25Db2NvYShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIExlZ2FjeUN1c3Rv
bVByb3RvY29sTWFuYWdlciogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyKQogICAgIDogTmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKQogewogICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9u
U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Np
b25Tb3VwLmNwcAppbmRleCBmNmJhZWRhYzE3Mi4uZGM2OWNjNmRmM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAu
Y3BwCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotTmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3b3JrU2Vzc2lvblNvdXAoU2Vz
c2lvbklEIHNlc3Npb25JRCkKK05ldHdvcmtTZXNzaW9uU291cDo6TmV0d29ya1Nlc3Npb25Tb3Vw
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IE5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCkKIHsKICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zZXRDb29raWVPYnNlcnZlckhhbmRs
ZXIoW3RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrU2Vzc2lvblNvdXAuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrU2Vzc2lvblNvdXAuaAppbmRleCBlMDE5NjAyOWExYS4uZjU4Y2Q4MTJlMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lv
blNvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nl
c3Npb25Tb3VwLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IE5ldHdvcmtTZXNzaW9uU291cCBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrU2Vzc2lvbiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5ldHdvcmtTZXNzaW9uU291cChzZXNzaW9uSUQpKTsKICAgICB9CkBAIC00Miw3ICs0Miw3
IEBAIHB1YmxpYzoKICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb24oKSBjb25zdDsKIAogcHJp
dmF0ZToKLSAgICBOZXR3b3JrU2Vzc2lvblNvdXAoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBO
ZXR3b3JrU2Vzc2lvblNvdXAoUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBjbGVhckNyZWRl
bnRpYWxzKCkgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKaW5kZXggZmU2YmY4OTZkZDguLmM1ZmU1MDZhNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM1Miw2ICszNTIsNyBAQCBkZWYgaGVhZGVyc19m
b3JfdHlwZSh0eXBlKToKIAogICAgIHNwZWNpYWxfY2FzZXMgPSB7CiAgICAgICAgICdTdHJpbmcn
OiBbJzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKKyAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzog
Wyc8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpBdXRv
cGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMnOiBbJzxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFu
ZGxpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MnOiBbJzxX
ZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNw
cAppbmRleCBhNmE4NjM0N2Q4Ny4uYzgxMDJhMDlmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hp
bGRQcm9jZXNzLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTczLDggKzcz
LDggQEAgdm9pZCBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemUoY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWUKICAgICBTYW5kYm94SW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzIHNhbmRib3hQYXJhbWV0ZXJzOwogICAgIGluaXRpYWxpemVTYW5kYm94KHBhcmFt
ZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsKIAotICAgIC8vIEluIFdlYktpdDIsIG9ubHkgdGhl
IFVJIHByb2Nlc3Mgc2hvdWxkIGV2ZXIgYmUgZ2VuZXJhdGluZyBub24tZGVmYXVsdCBTZXNzaW9u
SURzLgotICAgIFdlYkNvcmU6OlNlc3Npb25JRDo6ZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24o
KTsKKyAgICAvLyBJbiBXZWJLaXQyLCBvbmx5IHRoZSBVSSBwcm9jZXNzIHNob3VsZCBldmVyIGJl
IGdlbmVyYXRpbmcgbm9uLWRlZmF1bHQgUEFMOjpTZXNzaW9uSURzLgorICAgIFBBTDo6U2Vzc2lv
bklEOjplbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOwogCiAgICAgbV9jb25uZWN0aW9uID0g
SVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKHBhcmFtZXRlcnMuY29ubmVj
dGlvbklkZW50aWZpZXIsICp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNldERpZENsb3NlT25D
b25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCmluZGV4IDQ4YWU4YTU2YWRk
Li5kNzM4MzU3ZDdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcApA
QCAtNTYsMjkgKzU2LDI5IEBAIHZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldElkZW50aWZpZXJCYXNl
KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKIH0KIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
Ci1zdGF0aWMgSGFzaE1hcDxTZXNzaW9uSUQsIFJlZlB0cjxOZXR3b3JrU2Vzc2lvbj4+JiBzdGF0
aWNTZXNzaW9uTWFwKCkKK3N0YXRpYyBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBSZWZQdHI8TmV0
d29ya1Nlc3Npb24+PiYgc3RhdGljU2Vzc2lvbk1hcCgpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFNlc3Npb25J
RCwgUmVmUHRyPE5ldHdvcmtTZXNzaW9uPj4+IG1hcDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8SGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmUHRyPE5ldHdvcmtTZXNzaW9uPj4+IG1hcDsK
ICAgICByZXR1cm4gbWFwOwogfQogCi1OZXR3b3JrU2Vzc2lvbiogU2Vzc2lvblRyYWNrZXI6Om5l
dHdvcmtTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCitOZXR3b3JrU2Vzc2lvbiogU2Vzc2lv
blRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAg
ICBpZiAoc2Vzc2lvbklEID09IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgIGlm
IChzZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKICAgICAg
ICAgcmV0dXJuICZOZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKTsKICAgICByZXR1cm4g
c3RhdGljU2Vzc2lvbk1hcCgpLmdldChzZXNzaW9uSUQpOwogfQogCi12b2lkIFNlc3Npb25UcmFj
a2VyOjpzZXRTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lvbj4m
JiBzZXNzaW9uKQordm9pZCBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lvbj4mJiBzZXNzaW9uKQogewotICAgIEFTU0VS
VChzZXNzaW9uSUQgIT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIEFTU0VS
VChzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAg
c3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIFdURk1vdmUoc2Vzc2lvbikpOwogfQog
I2VuZGlmCiAKLXZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCit2b2lkIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICNpZiBV
U0UoTkVUV09SS19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vz
c2lvblRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKaW5k
ZXggOWY3YTZjMDcwMDEuLmJmZTE1MDk3YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TZXNzaW9uVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25U
cmFja2VyLmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOwogfQogCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
KyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtNDYsMTAgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBzZXRJZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKICAgICAKICNpZiBVU0UoTkVUV09S
S19TRVNTSU9OKQotICAgIHN0YXRpYyB2b2lkIHNldFNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklE
LCBSZWY8TmV0d29ya1Nlc3Npb24+JiYpOwotICAgIHN0YXRpYyBOZXR3b3JrU2Vzc2lvbiogbmV0
d29ya1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTZXNz
aW9uKFBBTDo6U2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Npb24+JiYpOworICAgIHN0YXRpYyBO
ZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogI2VuZGlmCi0g
ICAgc3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBz
dGF0aWMgdm9pZCBkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2Uv
U3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBlMGYzNTM2
NDExOS4uNDYxNzM3OGQ1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3Jh
Z2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTI3
LDcgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZp
ZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBJUEMgewpAQCAtNDMsNyArNDMsNyBAQCBzdHJ1Y3QgU3RvcmFnZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAg
IHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYpOwogCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAgICAgU3RyaW5nIGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDk5YzM5NTRkYzk1Li4x
NGE4MjNjYmIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC02MSw3ICs2MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdD
b25zdHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
U2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltaW5n
RnVuY3Rpb24uaD4KQEAgLTcwLDYgKzY5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTdHls
ZVNoZWV0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA5MjNhYjc5ZmJlZi4uMGMz
OTAxYjI5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCkBAIC00NCw2ICs0NCwxMCBAQCBjbGFzcyBNb25vdG9uaWNUaW1lOwogY2xhc3MgU2Vjb25k
czsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlOwpAQCAtNzgsNyArODIsNiBAQCBjbGFzcyBSZWdpb247CiBjbGFzcyBSZXNvdXJj
ZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsK
LWNsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFNwcmluZ1RpbWluZ0Z1bmN0aW9uOwogY2xhc3MgU3Rl
cHNUaW1pbmdGdW5jdGlvbjsKIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aAppbmRleCAzNzYzYzg3NTg1Mi4uYzllNTlhODRiNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQxLDggKzQxLDggQEAKICNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2lu
YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJJbnRlcmZhY2VMYXlvdXRE
aXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBA
IC04OCw3ICs4OCw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBT
dHJpbmcgdXNlckFnZW50OwogCiAgICAgVmVjdG9yPEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4g
aXRlbVN0YXRlczsKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICB1aW50NjRfdCBoaWdoZXN0VXNlZEJhY2tGb3J3YXJk
SXRlbUlEOwogCiAgICAgdWludDY0X3QgdXNlckNvbnRlbnRDb250cm9sbGVySUQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5k
ZXggOWMxMThmZDNiMWUuLmNmMjAyM2QzYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0yOSw3ICsyOSw3IEBACiAj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUu
aCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdIYXNoLmg+CkBAIC0xNTMsNyArMTUzLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPiBub3RpZmljYXRpb25QZXJt
aXNzaW9uczsKICNlbmRpZgogCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hN
YXA8dW5zaWduZWQsIGRvdWJsZT4+IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKKyAgICBI
YXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiBwbHVnSW5B
dXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAgICAgVmVjdG9yPFN0cmluZz4gcGx1Z0luQXV0b1N0YXJ0
T3JpZ2luczsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKaW5kZXggZTkyYzA3
ZjJjMjcuLmU0MDFhOTYzYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyB7CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJik7CiAK
LSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRDsKICAgICBWZWN0b3I8dWludDhfdD4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50
aWZpZXI7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGNvb2tpZVN0b3JhZ2VQYXRoRXh0
ZW5zaW9uSGFuZGxlOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGlt
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCmluZGV4
IDUyOTEyZmFkMzQ4Li4zNDI3NDhkZThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9Db29raWVTdG9yYWdlU2hpbS5tbQpAQCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRl
IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHdlYktp
dENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTChDRkhUVFBDbwogewog
ICAgIFN0cmluZyBjb29raWVzOwogICAgIFVSTCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTDsKLSAg
ICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCksIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMp
LCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSwgZmlyc3RQYXJ0eUZvckNvb2tpZXNVUkwsIGluUmVxdWVzdFVSTCks
IE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTTo6
UmVwbHkoY29va2llcyksIDApKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmIChjb29raWVz
LmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggMWZm
N2JlODFhZTkuLmJkMDQ1MDEwNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHAKQEAgLTQ1LDEyICs0NSwxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IFdlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKK1JlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudChjb25uZWN0aW9uLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
c2Vzc2lvbklEKSk7CiB9CiAKLVdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6V2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50KFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKK1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6V2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50KFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
IDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW50aWZpZXIoc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IGYzNDNlMTNkMWUwLi44ODMzODFkNWUxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTMwLDcgKzMwLDcgQEAKICNp
bmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIv
U2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElEQkN1cnNvckluZm87
CkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25u
ZWN0aW9uVG9DbGllbnREZWxlZ2F0ZSwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGlj
IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IGNyZWF0ZShTdG9yYWdlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyBSZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
PiBjcmVhdGUoU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdmlydHVhbCB+V2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50KCk7CiAKQEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKIAogcHJpdmF0ZToKLSAgICBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoU3RvcmFnZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
V2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoU3RvcmFn
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGZpbmFsOwogCkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWY8U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAogICAg
IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9u
SUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50PiBtX2Nvbm5lY3Rpb25Ub0NsaWVudDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5j
cHAKaW5kZXggMWNjN2E2YmQ0MGUuLjk5NDZhNjhlZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApAQCAtMzUsOCArMzUsOCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCS2V5RGF0
YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEVuY29kaW5nLmg+CisjaW5j
bHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhy
ZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTg5LDcgKzg5LDcg
QEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIKIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQotSURCU2VydmVyOjpJREJTZXJ2ZXImIFN0b3JhZ2VQcm9jZXNzOjppZGJTZXJ2ZXIoU2Vz
c2lvbklEIHNlc3Npb25JRCkKK0lEQlNlcnZlcjo6SURCU2VydmVyJiBTdG9yYWdlUHJvY2Vzczo6
aWRiU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBhdXRvIGFkZFJlc3Vs
dCA9IG1faWRiU2VydmVycy5hZGQoc2Vzc2lvbklELCBudWxscHRyKTsKICAgICBpZiAoIWFkZFJl
c3VsdC5pc05ld0VudHJ5KSB7CkBAIC05OCw4ICs5OCw4IEBAIElEQlNlcnZlcjo6SURCU2VydmVy
JiBTdG9yYWdlUHJvY2Vzczo6aWRiU2VydmVyKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgfQog
CiAgICAgYXV0byBwYXRoID0gbV9pZGJEYXRhYmFzZVBhdGhzLmdldChzZXNzaW9uSUQpOwotICAg
IC8vIFRoZXJlIHNob3VsZCBhbHJlYWR5IGJlIGEgcmVnaXN0ZXJlZCBwYXRoIGZvciB0aGlzIFNl
c3Npb25JRC4KLSAgICAvLyBJZiB0aGVyZSdzIG5vdCwgdGhlbiB3aGVyZSBkaWQgdGhpcyBTZXNz
aW9uSUQgY29tZSBmcm9tPworICAgIC8vIFRoZXJlIHNob3VsZCBhbHJlYWR5IGJlIGEgcmVnaXN0
ZXJlZCBwYXRoIGZvciB0aGlzIFBBTDo6U2Vzc2lvbklELgorICAgIC8vIElmIHRoZXJlJ3Mgbm90
LCB0aGVuIHdoZXJlIGRpZCB0aGlzIFBBTDo6U2Vzc2lvbklEIGNvbWUgZnJvbT8KICAgICBBU1NF
UlQoIXBhdGguaXNFbXB0eSgpKTsKIAogICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBJ
REJTZXJ2ZXI6OklEQlNlcnZlcjo6Y3JlYXRlKHBhdGgsIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0
b24oKSk7CkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6Y3JlYXRlU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogI2VuZGlmCiB9CiAKLXZvaWQgU3RvcmFnZVBy
b2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3Zv
aWQgU3RvcmFnZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRf
dCBjYWxsYmFja0lEKQogewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGF1dG8g
Y29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgY2FsbGJhY2tJRF0oY29uc3QgV2Vic2l0ZURhdGEm
IHdlYnNpdGVEYXRhKSB7CkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6
ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGEKICNlbmRpZgogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3
ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1v
ZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpk
ZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6
OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3Ro
aXMsIGNhbGxiYWNrSURdKCkgewpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgU3RvcmFnZVByb2Nl
c3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
blNldDxXCiAjZW5kaWYKIH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURh
dGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdp
bkRhdGE+JiBzZWN1cml0eU9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBT
dG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
Y29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIHNlY3VyaXR5T3JpZ2luRGF0YXMsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAg
YXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBjYWxsYmFja0lEXSgpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaAppbmRleCAzYmM3MmUyMDZh
Mi4uYjhjN2Y3NzY0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U3RvcmFnZVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VQcm9jZXNzLmgKQEAgLTI5LDggKzI5LDggQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9u
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JREJCYWNraW5nU3RvcmUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0lEQlNlcnZlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9VbmlxdWVJREJEYXRhYmFzZS5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVy
L1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KICNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KIApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgflN0b3Jh
Z2VQcm9jZXNzKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBXZWJDb3Jl
OjpJREJTZXJ2ZXI6OklEQlNlcnZlciYgaWRiU2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCk7Cisg
ICAgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXImIGlkYlNlcnZlcihQQUw6OlNlc3Npb25J
RCk7CiAjZW5kaWYKIAogICAgIFdvcmtRdWV1ZSYgcXVldWUoKSB7IHJldHVybiBtX3F1ZXVlLmdl
dCgpOyB9CkBAIC05Miw5ICs5Miw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplV2Vi
c2l0ZURhdGFTdG9yZShjb25zdCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwog
ICAgIHZvaWQgY3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIAotICAgIHZv
aWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZv
aWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAg
IHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9p
ZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9w
b2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0
ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogI2lmIEVOQUJMRShT
QU5EQk9YX0VYVEVOU0lPTlMpCiAgICAgdm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zRm9yQmxv
YnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGVBcnJheSYpOwogICAgIHZvaWQgZGlkR2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmls
ZXModWludDY0X3QgcmVxdWVzdElELCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmKTsK
QEAgLTExMyw4ICsxMTMsOCBAQCBwcml2YXRlOgogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7
CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNl
c3Npb25JRCwgU3RyaW5nPiBtX2lkYkRhdGFiYXNlUGF0aHM7Ci0gICAgSGFzaE1hcDxXZWJDb3Jl
OjpTZXNzaW9uSUQsIFJlZlB0cjxXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcj4+IG1faWRi
U2VydmVyczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBTdHJpbmc+IG1faWRiRGF0YWJh
c2VQYXRoczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBSZWZQdHI8V2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI+PiBtX2lkYlNlcnZlcnM7CiAjZW5kaWYKICAgICBIYXNoTWFwPFN0
cmluZywgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+PiBtX2Jsb2JUZW1wb3JhcnlGaWxlU2FuZGJv
eEV4dGVuc2lvbnM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkIChT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmKT4+IG1fc2FuZGJveEV4dGVuc2lvbkZvckJs
b2JzQ29tcGxldGlvbkhhbmRsZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNGJkZWM3M2U2NGYuLmM5
ZGVhZGYyN2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI3LDkgKzI3LDkgQEAgbWVzc2FnZXMgLT4g
U3RvcmFnZVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rp
b24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MKICAgICBDcmVhdGVTdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCiAKLSAgICBGZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4g
d2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBEZWxldGVXZWJzaXRl
RGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJz
aXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6
OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBEZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lE
KQorICAgIEZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCisgICAgRGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0
X3QgY2FsbGJhY2tJRCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNp
dGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKICAg
ICBHcmFudFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYnMoVmVjdG9yPFN0cmluZz4gcGF0aHMsIFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgZXh0ZW5zaW9ucykKICAgICBEaWRH
ZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgZXh0ZW5zaW9ucykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKaW5kZXggNGFjYzI2NDA0NGYuLmRlOTE5MTFlZWUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRpYyB1aW50NjRfdCBn
ZW5lcmF0ZUNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKQogICAgIHJldHVybiArK2lkZW50
aWZpZXI7CiB9CiAKLXZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlz
aElEQkNvbm5lY3Rpb25Ub1NlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50
NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCit2b2lkIFN0b3JhZ2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7CiAg
ICAgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0ZUNvbm5lY3Rpb25Ub1NlcnZl
cklkZW50aWZpZXIoKTsKICAgICBMT0coSW5kZXhlZERCLCAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlciAtICUiIFBSSXU2NCwgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDEy
ZmZlOTVkODIyLi41YmU5ODMyY2YwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMjgs
NyArMjgsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9p
ZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAgICAgLy8gTWVzc2FnZXMgaGFuZGxlcnMgKE1vZGVybiBJREIpCi0g
ICAgdm9pZCBlc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklE
LCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIHZvaWQgZXN0YWJs
aXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlSURCQ29ubmVjdGlvblRvU2Vy
dmVyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAogICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+PiBtX3dlYklEQkNvbm5l
Y3Rpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXgg
NTg3NjEyMDIwNWUuLjhkMTA4ZjY0NTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IFN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKICAgICAjIENyZWF0ZXMgYSBjb25uZWN0aW9uIGZvciBjb21tdW5pY2F0aW9uIHdp
dGggYSBXZWJQcm9jZXNzCi0gICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcikKKyAgICBFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKSAtPiAodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAg
ICAgUmVtb3ZlSURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBmMDNhNGU5ZmE0MC4uMmZlM2ZhNmZi
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmln
dXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25m
aWd1cmF0aW9uLmNwcApAQCAtMTUwLDE3ICsxNTAsMTcgQEAgdm9pZCBQYWdlQ29uZmlndXJhdGlv
bjo6c2V0V2Vic2l0ZURhdGFTdG9yZShBUEk6OldlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRh
U3QKICAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKQogICAgICAgICBtX3Nlc3Npb25JRCA9IG1f
d2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpOwogICAgIGVs
c2UKLSAgICAgICAgbV9zZXNzaW9uSUQgPSBXZWJDb3JlOjpTZXNzaW9uSUQoKTsKKyAgICAgICAg
bV9zZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRCgpOwogfQogCi1XZWJDb3JlOjpTZXNzaW9uSUQg
UGFnZUNvbmZpZ3VyYXRpb246OnNlc3Npb25JRCgpCitQQUw6OlNlc3Npb25JRCBQYWdlQ29uZmln
dXJhdGlvbjo6c2Vzc2lvbklEKCkKIHsKLSAgICBBU1NFUlQoIW1fd2Vic2l0ZURhdGFTdG9yZSB8
fCBtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSA9PSBt
X3Nlc3Npb25JRCB8fCBtX3Nlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSk7CisgICAgQVNTRVJUKCFtX3dlYnNpdGVEYXRhU3RvcmUgfHwgbV93ZWJzaXRlRGF0
YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkgPT0gbV9zZXNzaW9uSUQgfHwg
bV9zZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7
CiAKICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CiB9CiAKLXZvaWQgUGFnZUNvbmZpZ3VyYXRpb246
OnNldFNlc3Npb25JRChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBQYWdlQ29u
ZmlndXJhdGlvbjo6c2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAg
ICBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggYjJhZTI0NzJkZTMuLjIzYzAx
MWU0NGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKQEAgLTgxLDggKzgx
LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0
b3JlKik7CiAKICAgICAvLyBGSVhNRTogT25jZSBQYWdlQ29uZmlndXJhdGlvbnMgKmFsd2F5cyog
aGF2ZSBhIGRhdGEgc3RvcmUsIGdldCByaWQgb2YgdGhlIHNlcGFyYXRlIHNlc3Npb25JRC4KLSAg
ICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCk7Ci0gICAgdm9pZCBzZXRTZXNzaW9uSUQo
V2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKTsKKyAg
ICB2b2lkIHNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCk7CiAKICAgICBib29sIHRyZWF0c1NI
QTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlKCkgeyByZXR1cm4gbV90cmVhdHNTSEExU2ln
bmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZTsgfQogICAgIHZvaWQgc2V0VHJlYXRzU0hBMVNpZ25l
ZENlcnRpZmljYXRlc0FzSW5zZWN1cmUoYm9vbCB0cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVz
QXNJbnNlY3VyZSkgeyBtX3RyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlID0g
dHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmU7IH0gCkBAIC0xMTksNyArMTE5
LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWJzaXRlRGF0
YVN0b3JlOwogICAgIC8vIEZJWE1FOiBXZSBjdXJyZW50bHkgaGF2ZSB0byBwYXNzIHRoZSBzZXNz
aW9uIElEIHNlcGFyYXRlbHkgaGVyZSB0byBzdXBwb3J0IHRoZSBsZWdhY3kgcHJpdmF0ZSBicm93
c2luZyBzZXNzaW9uLgogICAgIC8vIE9uY2Ugd2UgZ2V0IHJpZCBvZiBpdCB3ZSBzaG91bGQgZ2V0
IHJpZCBvZiB0aGlzIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGFzIHdlbGwuCi0gICAgV2ViQ29y
ZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklE
OwogCiAgICAgYm9vbCBtX3RyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlID0g
dHJ1ZTsKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMGRiNWRkOTJjNTQuLjUwZmE2MGJl
ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURh
dGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVE
YXRhU3RvcmUuY3BwCkBAIC0zNSw3ICszNSw3IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJz
aXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlKCkKIHsKICAgICBXZWJLaXQ6OkluaXRpYWxp
emVXZWJLaXQyKCk7CiAKLSAgICBzdGF0aWMgV2Vic2l0ZURhdGFTdG9yZSogZGVmYXVsdERhdGFT
dG9yZSA9IGFkb3B0UmVmKG5ldyBXZWJzaXRlRGF0YVN0b3JlKGRlZmF1bHREYXRhU3RvcmVDb25m
aWd1cmF0aW9uKCksIFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSkubGVh
a1JlZigpOworICAgIHN0YXRpYyBXZWJzaXRlRGF0YVN0b3JlKiBkZWZhdWx0RGF0YVN0b3JlID0g
YWRvcHRSZWYobmV3IFdlYnNpdGVEYXRhU3RvcmUoZGVmYXVsdERhdGFTdG9yZUNvbmZpZ3VyYXRp
b24oKSwgUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpLmxlYWtSZWYoKTsKIAog
ICAgIHJldHVybiAqZGVmYXVsdERhdGFTdG9yZTsKIH0KQEAgLTQ3LDcgKzQ3LDcgQEAgUmVmPFdl
YnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnREYXRh
U3RvcmUoKQogCiBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRl
TGVnYWN5KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmlndXJhdGlvbiBjb25maWd1cmF0
aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3RvcmUoV1RGTW92
ZShjb25maWd1cmF0aW9uKSwgV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0b3JlKFdURk1vdmUoY29u
ZmlndXJhdGlvbiksIFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpKTsKIH0KIAog
V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZSgpCkBAIC01NSw3ICs1NSw3IEBAIFdl
YnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoKQogewogfQogCi1XZWJzaXRlRGF0YVN0
b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorV2Vic2l0
ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
IDogbV93ZWJzaXRlRGF0YVN0b3JlKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKFdU
Rk1vdmUoY29uZmlndXJhdGlvbiksIHNlc3Npb25JRCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaAppbmRleCAyMzhjNmM0ZDdi
NC4uNDRiMWQzZGU4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElXZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJSFRU
UENvb2tpZVN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBBUEkgewpA
QCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3Jl
PiBjcmVhdGVOb25QZXJzaXN0ZW50RGF0YVN0b3JlKCk7CiAgICAgc3RhdGljIFJlZjxXZWJzaXRl
RGF0YVN0b3JlPiBjcmVhdGVMZWdhY3koV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1
cmF0aW9uKTsKIAotICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmUoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpDb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIGV4cGxp
Y2l0IFdlYnNpdGVEYXRhU3RvcmUoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0
aW9uLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+V2Vic2l0ZURhdGFTdG9yZSgpOwog
CiAgICAgYm9vbCBpc1BlcnNpc3RlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDE5MGY1NTFjOWFhLi5hYTYyZjI2Yzdl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFn
ZXIuY3BwCkBAIC00NCwxNyArNDQsMTcgQEAgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQo
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IFdLQ29va2kKIAogdm9p
ZCBXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJS
ZWYgY29va2llTWFuYWdlclJlZiwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyR2V0Q29v
a2llSG9zdG5hbWVzRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFn
ZXJSZWYpLT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSwgdG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFj
aykpOworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+Z2V0SG9zdG5hbWVzV2l0aENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9HZW5lcmljQ2FsbGJhY2tG
dW5jdGlvbihjb250ZXh0LCBjYWxsYmFjaykpOwogfQogCiB2b2lkIFdLQ29va2llTWFuYWdlckRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJl
ZiwgV0tTdHJpbmdSZWYgaG9zdG5hbWUpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYp
LT5kZWxldGVDb29raWVzRm9ySG9zdG5hbWUoV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCksIHRvSW1wbChob3N0bmFtZSktPnN0cmluZygpKTsKKyAgICB0b0ltcGwoY29va2ll
TWFuYWdlclJlZiktPmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCB0b0ltcGwoaG9zdG5hbWUpLT5zdHJpbmcoKSk7CiB9CiAKIHZvaWQg
V0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlclJlZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENv
b2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIHRvSW1w
bChjb29raWVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsQ29va2llcyhQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29r
aWVzTW9kaWZpZWRBZnRlckRhdGUoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYs
IGRvdWJsZSBkYXRlKQpAQCAtNjIsMTcgKzYyLDE3IEBAIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVs
ZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVN
CiAgICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25vOwogCiAgICAgYXV0byB0aW1lID0gc3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50KGR1cmF0aW9uX2Nhc3Q8c3lzdGVtX2Nsb2NrOjpkdXJhdGlv
bj4oZHVyYXRpb248ZG91YmxlPihkYXRlKSkpOwotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVm
KS0+ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksIHRpbWUsIFtdKENhbGxiYWNrQmFzZTo6RXJyb3Ipe30pOworICAgIHRv
SW1wbChjb29raWVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFM
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdGltZSwgW10oQ2FsbGJhY2tCYXNlOjpF
cnJvcil7fSk7CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSkKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRv
SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbXShDYWxsYmFja0Jhc2U6OkVycm9yKXt9
KTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
UEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9IVFRQQ29va2llQWNjZXB0UG9s
aWN5KHBvbGljeSksIFtdKENhbGxiYWNrQmFzZTo6RXJyb3Ipe30pOwogfQogCiB2b2lkIFdLQ29v
a2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmIGNv
b2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjaykKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdl
ciktPmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCksIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb248V0tIVFRQQ29va2llQWNjZXB0
UG9saWN5LCBIVFRQQ29va2llQWNjZXB0UG9saWN5Pihjb250ZXh0LCBjYWxsYmFjaykpOworICAg
IHRvSW1wbChjb29raWVNYW5hZ2VyKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uPFdL
SFRUUENvb2tpZUFjY2VwdFBvbGljeSwgSFRUUENvb2tpZUFjY2VwdFBvbGljeT4oY29udGV4dCwg
Y2FsbGJhY2spKTsKIH0KIAogdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDb29raWVTdG9yYWdlUGFy
dGl0aW9uaW5nRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgYm9vbCBl
bmFibGVkKQpAQCAtODIsMTAgKzgyLDEwIEBAIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0Q29va2ll
U3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpCiAKIHZv
aWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFu
YWdlclJlZiBjb29raWVNYW5hZ2VyKQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+c3Rh
cnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0YXJ0T2JzZXJ2aW5nQ29va2ll
Q2hhbmdlcyhQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBX
S0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJS
ZWYgY29va2llTWFuYWdlcikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0b3BPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
KTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCA0ZGQ4YTBk
NTU0Yy4uMWY1OTc0ZGY1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljIFdlYktp
dDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koTlNIVFRQ
Q29va2llQWNjZXAKIAogLSAodm9pZClfc2V0Q29va2llQWNjZXB0UG9saWN5OihOU0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kpcG9saWN5CiB7Ci0gICAgX3Byb2Nlc3NQb29sLT5zdXBwbGVtZW50PFdl
YktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kocG9saWN5KSwgW10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKXt9KTsKKyAg
ICBfcHJvY2Vzc1Bvb2wtPnN1cHBsZW1lbnQ8V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk+
KCktPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSwgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSksIFtdKFdlYktpdDo6Q2Fs
bGJhY2tCYXNlOjpFcnJvcil7fSk7CiB9CiAKIC0gKGlkKV9vYmplY3RGb3JCdW5kbGVQYXJhbWV0
ZXI6KE5TU3RyaW5nICopcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCA0MWIxOGQwNjEyYy4u
OGMxMjEyYmU0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBW
ZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJlY29yZHMoTlNB
cnJheSAqZGF0YVJlY29yCiAgICAgaWYgKGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VGaWxl
KQogICAgICAgICBjb25maWcuY29va2llU3RvcmFnZUZpbGUgPSBjb25maWd1cmF0aW9uLl9jb29r
aWVTdG9yYWdlRmlsZS5wYXRoOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBl
cjxBUEk6OldlYnNpdGVEYXRhU3RvcmU+KHNlbGYsIGNvbmZpZywgV2ViQ29yZTo6U2Vzc2lvbklE
OjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKSk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0
cnVjdEluV3JhcHBlcjxBUEk6OldlYnNpdGVEYXRhU3RvcmU+KHNlbGYsIGNvbmZpZywgUEFMOjpT
ZXNzaW9uSUQ6OmdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25JRCgpKTsKIAogICAgIHJldHVybiBz
ZWxmOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0Q29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRDb29raWVNYW5hZ2VyLmNwcAppbmRleCBkN2VhYzg0Yzc1NC4uMmVmNTQyZWRhMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENv
b2tpZU1hbmFnZXIuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0
ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYnNpdGVEYXRhUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhUmVjb3JkLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9T
ZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xODAsNyArMTgwLDcgQEAgdm9pZCB3
ZWJraXRfY29va2llX21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3koV2ViS2l0Q29va2llTWFuYWdl
ciogbWFuYWdlciwgV2ViS2kKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19DT09LSUVf
TUFOQUdFUihtYW5hZ2VyKSk7CiAKICAgICBmb3IgKGF1dG8qIHByb2Nlc3NQb29sIDogd2Via2l0
V2Vic2l0ZURhdGFNYW5hZ2VyR2V0UHJvY2Vzc1Bvb2xzKG1hbmFnZXItPnByaXYtPmRhdGFNYW5h
Z2VyKSkKLSAgICAgICAgcHJvY2Vzc1Bvb2wtPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclBy
b3h5PigpLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW10oQ2Fs
bGJhY2tCYXNlOjpFcnJvcil7fSk7CisgICAgICAgIHByb2Nlc3NQb29sLT5zdXBwbGVtZW50PFdl
YkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9s
aWN5KSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7CiB9CiAKIC8qKgpAQCAtMjA4LDcgKzIw
OCw3IEBAIHZvaWQgd2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2dldF9hY2NlcHRfcG9saWN5KFdlYktp
dENvb2tpZU1hbmFnZXIqIG1hbmFnZXIsIEdDYW5jCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBwcm9jZXNzUG9vbHNbMF0tPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5Pigp
LT5nZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpLCBbdGFzayA9IFdURk1vdmUodGFzayldKEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
cG9saWN5LCBDYWxsYmFja0Jhc2U6OkVycm9yKSB7CisgICAgcHJvY2Vzc1Bvb2xzWzBdLT5zdXBw
bGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBbdGFzayA9IFdURk1vdmUodGFz
ayldKEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDYWxsYmFja0Jhc2U6OkVycm9yKSB7
CiAgICAgICAgIGdfdGFza19yZXR1cm5faW50KHRhc2suZ2V0KCksIHRvV2ViS2l0Q29va2llQWNj
ZXB0UG9saWN5KHBvbGljeSkpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggY2YzOTZm
NGIxMGYuLjkxYmE5YTA2NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBE
b3dubG9hZFByb3h5KiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjcmVhdGVEb3dubG9hZFByb3h5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcgogICAgIHJldHVybiBtX2Rvd25sb2FkUHJveHlNYXAtPmNy
ZWF0ZURvd25sb2FkUHJveHkobV9wcm9jZXNzUG9vbCwgcmVzb3VyY2VSZXF1ZXN0KTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgV1RGOjpGdW5jdGlvbjx2b2lkIChX
ZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0
aW9uPiBmZXRjaE9wdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKIApAQCAt
MTM3LDcgKzEzNyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0
YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0CiAgICAgc2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OkZldGNoV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMs
IGZldGNoT3B0aW9ucywgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4gZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlm
aWVkU2luY2UsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhdXRvIGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKICAgICBSRUxFQVNF
X0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQg
YXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRl
IGRhdGEiLCB0aGlzKTsKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
bgogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZWxldGVXZWJzaXRlRGF0YShz
ZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJhY2tJRCksIDApOwogfQog
Ci12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhPiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1l
cywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKGNhblNlbmRNZXNzYWdlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDkyM2RkMmE5MDg3Li40MGVk
NmIwOGMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTM1LDYgKzM1LDEwIEBACiAjaW5jbHVkZSA8bWVtb3J5
PgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Np
b25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2U7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CkBAIC00Miw3ICs0Niw2IEBAIGNsYXNzIFJl
c291cmNlUmVxdWVzdDsKIGVudW0gY2xhc3MgU2hvdWxkU2FtcGxlOwogY2xhc3MgU2VjdXJpdHlP
cmlnaW47CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwotY2xhc3MgU2Vzc2lvbklEOwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY0LDkgKzY3LDkgQEAgcHVibGljOgogCiAgICAgRG93
bmxvYWRQcm94eSogY3JlYXRlRG93bmxvYWRQcm94eShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9w
dGlvbj4sIFdURjo6RnVuY3Rpb248dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9w
b2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vz
c2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGNvb2tpZUhvc3ROYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwg
V1RGOjpGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7Cisg
ICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZp
ZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAg
IHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3RO
YW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJv
b2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5B
dXRvU3RhcnRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcAppbmRleCAzYzBjYTJkNzI5Yi4uMjIyNWUzMzI1NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0
YXJ0UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCkBAIC00Miw4ICs0Miw4IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyKFdl
YlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICA6IG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bv
b2wpCiB7Ci0gICAgbV9oYXNoVG9PcmlnaW5NYXAuYWRkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+KCkpOwotICAgIG1fYXV0b1N0YXJ0VGFi
bGUuYWRkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBBdXRvU3RhcnRUYWJsZSgpKTsK
KyAgICBtX2hhc2hUb09yaWdpbk1hcC5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPigpKTsKKyAgICBtX2F1dG9TdGFydFRhYmxl
LmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBBdXRvU3RhcnRUYWJsZSgp
KTsKIH0KIAogc3RhdGljIGRvdWJsZSBleHBpcmF0aW9uVGltZUZyb21Ob3coKQpAQCAtNTEsMTQg
KzUxLDE0IEBAIHN0YXRpYyBkb3VibGUgZXhwaXJhdGlvblRpbWVGcm9tTm93KCkKICAgICByZXR1
cm4gY3VycmVudFRpbWUoKSArIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVGhyZXNob2xk
OwogfQogCi12b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphZGRBdXRvU3RhcnRPcmlnaW5I
YXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwg
U2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmFkZEF1
dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1bnNpZ25lZCBwbHVn
SW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgYXV0byBzZXNz
aW9uSXRlcmF0b3IgPSBtX2hhc2hUb09yaWdpbk1hcC5maW5kKHNlc3Npb25JRCk7CiAgICAgaWYg
KHNlc3Npb25JdGVyYXRvciA9PSBtX2hhc2hUb09yaWdpbk1hcC5lbmQoKSkgewotICAgICAgICBp
ZiAobV9oYXNoVG9PcmlnaW5NYXAuZ2V0KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKS5j
b250YWlucyhwbHVnSW5PcmlnaW5IYXNoKSkKKyAgICAgICAgaWYgKG1faGFzaFRvT3JpZ2luTWFw
LmdldChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKS5jb250YWlucyhwbHVnSW5P
cmlnaW5IYXNoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgc2Vzc2lvbkl0ZXJhdG9y
ID0gbV9oYXNoVG9PcmlnaW5NYXAuc2V0KHNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgU3Ry
aW5nPigpKS5pdGVyYXRvcjsKLSAgICB9IGVsc2UgaWYgKHNlc3Npb25JdGVyYXRvci0+dmFsdWUu
Y29udGFpbnMocGx1Z0luT3JpZ2luSGFzaCkgfHwgbV9oYXNoVG9PcmlnaW5NYXAuZ2V0KFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKS5jb250YWlucyhwbHVnSW5PcmlnaW5IYXNoKSkKKyAg
ICB9IGVsc2UgaWYgKHNlc3Npb25JdGVyYXRvci0+dmFsdWUuY29udGFpbnMocGx1Z0luT3JpZ2lu
SGFzaCkgfHwgbV9oYXNoVG9PcmlnaW5NYXAuZ2V0KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpLmNvbnRhaW5zKHBsdWdJbk9yaWdpbkhhc2gpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBBdXRvU3RhcnRUYWJsZTo6aXRlcmF0b3IgaXQgPSBtX2F1dG9TdGFydFRhYmxlLmFkZChz
ZXNzaW9uSUQsIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1ZS5hZGQocGFnZU9yaWdp
biwgUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwKCkpLml0ZXJhdG9yOwpAQCAtOTIsNyArOTIsNyBA
QCBSZWY8QVBJOjpEaWN0aW9uYXJ5PiBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0
T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0CiAgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1h
cDsKIAogICAgIGRvdWJsZSBub3cgPSBjdXJyZW50VGltZSgpOwotICAgIGZvciAoY29uc3QgYXV0
byYgc3RyaW5nT3JpZ2luSGFzaCA6IG1fYXV0b1N0YXJ0VGFibGUuZ2V0KFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKSkgeworICAgIGZvciAoY29uc3QgYXV0byYgc3RyaW5nT3JpZ2luSGFz
aCA6IG1fYXV0b1N0YXJ0VGFibGUuZ2V0KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpKSB7CiAgICAgICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBoYXNoTWFwOwogICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIG9yaWdpbkhhc2ggOiBzdHJpbmdPcmlnaW5IYXNoLnZhbHVlKSB7
CiAgICAgICAgICAgICBpZiAobm93IDw9IG9yaWdpbkhhc2gudmFsdWUpCkBAIC0xMjcsOCArMTI3
LDggQEAgdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2luc1Rh
YmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QoQVBJOjoKICAgICBtX2hhc2hUb09yaWdpbk1hcC5jbGVh
cigpOwogICAgIG1fYXV0b1N0YXJ0VGFibGUuY2xlYXIoKTsKICAgICBIYXNoTWFwPHVuc2lnbmVk
LCBkb3VibGU+IGhhc2hNYXA7Ci0gICAgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPiYgaGFzaFRv
T3JpZ2luTWFwID0gbV9oYXNoVG9PcmlnaW5NYXAuYWRkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+KCkpLml0ZXJhdG9yLT52YWx1ZTsKLSAg
ICBBdXRvU3RhcnRUYWJsZSYgYXN0ID0gbV9hdXRvU3RhcnRUYWJsZS5hZGQoU2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCksIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAg
ICBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+JiBoYXNoVG9PcmlnaW5NYXAgPSBtX2hhc2hUb09y
aWdpbk1hcC5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1
bnNpZ25lZCwgU3RyaW5nPigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgQXV0b1N0YXJ0VGFibGUm
IGFzdCA9IG1fYXV0b1N0YXJ0VGFibGUuYWRkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCksIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAogICAgIGZvciAoYXV0
byYgc3RyRGljdCA6IHRhYmxlLm1hcCgpKSB7CiAgICAgICAgIFBsdWdJbkF1dG9TdGFydE9yaWdp
bk1hcCBoYXNoZXM7CkBAIC0xNjQsOSArMTY0LDkgQEAgdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92
aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2luc0FycmF5KEFQSTo6QXJyYXkmIG9yaWdpbkxpc3QpCiAg
ICAgICAgIG1fYXV0b1N0YXJ0T3JpZ2lucy5hcHBlbmQoc3RyaW5nLT5zdHJpbmcoKSk7CiB9CiAK
LXZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24o
dW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgUGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odW5zaWduZWQg
cGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEhhc2hN
YXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+Pjo6Y29uc3Rf
aXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9oYXNoVG9PcmlnaW5NYXAuZmluZChzZXNzaW9u
SUQpOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFN0cmlu
Zz4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX2hhc2hUb09yaWdpbk1hcC5m
aW5kKHNlc3Npb25JRCk7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPjo6Y29uc3RfaXRl
cmF0b3IgaXQ7CiAgICAgYm9vbCBjb250YWlucyA9IGZhbHNlOwogICAgIGlmIChzZXNzaW9uSXRl
cmF0b3IgIT0gbV9oYXNoVG9PcmlnaW5NYXAuZW5kKCkpIHsKQEAgLTE3NCw3ICsxNzQsNyBAQCB2
b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVu
c2lnbmVkIHBsdWdJbk9yaWdpbkhhcwogICAgICAgICBjb250YWlucyA9IGl0ICE9IHNlc3Npb25J
dGVyYXRvci0+dmFsdWUuZW5kKCk7CiAgICAgfQogICAgIGlmICghY29udGFpbnMpIHsKLSAgICAg
ICAgc2Vzc2lvbkl0ZXJhdG9yID0gbV9oYXNoVG9PcmlnaW5NYXAuZmluZChTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CisgICAgICAgIHNlc3Npb25JdGVyYXRvciA9IG1faGFzaFRvT3Jp
Z2luTWFwLmZpbmQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgICAg
IGl0ID0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5maW5kKHBsdWdJbk9yaWdpbkhhc2gpOwogICAg
ICAgICBpZiAoaXQgPT0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSkgewogICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgKaW5kZXggY2ExYjAwNDA5
MjcuLjQ0Yjg0ZjdmNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAj
aWZuZGVmIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyX2gKICNkZWZpbmUgUGx1Z0luQXV0b1N0YXJ0
UHJvdmlkZXJfaAogCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxw
YWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00
NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiAK
IHR5cGVkZWYgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPiBQbHVnSW5BdXRvU3RhcnRPcmlnaW5N
YXA7Ci10eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBQbHVnSW5BdXRvU3RhcnRP
cmlnaW5NYXA+IFNlc3Npb25QbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA7Cit0eXBlZGVmIEhhc2hN
YXA8UEFMOjpTZXNzaW9uSUQsIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcD4gU2Vzc2lvblBsdWdJ
bkF1dG9TdGFydE9yaWdpbk1hcDsKIHR5cGVkZWYgVmVjdG9yPFN0cmluZz4gUGx1Z0luQXV0b1N0
YXJ0T3JpZ2luczsKIAogY2xhc3MgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIgewpAQCAtNTIsOCAr
NTIsOCBAQCBjbGFzcyBQbHVnSW5BdXRvU3RhcnRQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgZXhw
bGljaXQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIoV2ViUHJvY2Vzc1Bvb2wqKTsKIAotICAgIHZv
aWQgYWRkQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIHVuc2ln
bmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdlYkNvcmU6
OlNlc3Npb25JRCk7CisgICAgdm9pZCBhZGRBdXRvU3RhcnRPcmlnaW5IYXNoKGNvbnN0IFN0cmlu
ZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQp
OworICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5Pcmln
aW5IYXNoLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBSZWY8QVBJOjpEaWN0aW9uYXJ5PiBhdXRv
U3RhcnRPcmlnaW5zVGFibGVDb3B5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBdXRvU3RhcnRPcmln
aW5zVGFibGUoQVBJOjpEaWN0aW9uYXJ5Jik7CkBAIC02OSwxMCArNjksMTAgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KEFQ
STo6RGljdGlvbmFyeSYsIFdURjo6RnVuY3Rpb248Ym9vbChkb3VibGUgZXhwaXJhdGlvblRpbWVz
dGFtcCk+JiYpOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUGx1Z0luQXV0b1N0YXJ0
T3JpZ2luTWFwLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IEF1dG9TdGFydFRhYmxlOwotICAg
IHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEF1dG9TdGFydFRhYmxlPiBTZXNz
aW9uQXV0b1N0YXJ0VGFibGU7CisgICAgdHlwZWRlZiBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBB
dXRvU3RhcnRUYWJsZT4gU2Vzc2lvbkF1dG9TdGFydFRhYmxlOwogICAgIFNlc3Npb25BdXRvU3Rh
cnRUYWJsZSBtX2F1dG9TdGFydFRhYmxlOwogCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9u
SUQsIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz4+IG1faGFzaFRvT3JpZ2luTWFwOworICAgIEhh
c2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz4+IG1faGFzaFRv
T3JpZ2luTWFwOwogCiAgICAgUGx1Z0luQXV0b1N0YXJ0T3JpZ2lucyBtX2F1dG9TdGFydE9yaWdp
bnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9y
YWdlUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3Rv
cmFnZVByb2Nlc3NQcm94eS5jcHAKaW5kZXggMjBkMjBlMGVlM2MuLmE1YWE4MTE4YzExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nl
c3NQcm94eS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGUKICAg
ICB9CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdU
Rjo6RnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXVEY6OkZ1bmN0
aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NF
UlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBTdG9yYWdlUHJv
Y2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXQKICAgICBzZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6RmV0Y2hXZWJzaXRl
RGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFN0
b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHJv
bm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6
OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1l
X3BvaW50IG1vZGlmaWVkU2luY2UsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsK
IApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vi
c2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uCiAgICAgc2VuZChN
ZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0
YVR5cGVzLCBtb2RpZmllZFNpbmNlLCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgU3RvcmFn
ZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIFdURjo6RnVuY3Rpb248dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmgK
aW5kZXggNWMxMTA2ZDM2OGIuLmMyZDJlYmE2MDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuaApAQCAtMzEsOSArMzEs
MTIgQEAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
CituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXNzaW9uSUQ7CiBzdHJ1Y3QgU2Vj
dXJpdHlPcmlnaW5EYXRhOwogfQogCkBAIC00OCw5ICs1MSw5IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFN0b3JhZ2VQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCopOwogICAg
IH5TdG9yYWdlUHJvY2Vzc1Byb3h5KCk7CiAKLSAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV1RGOjpGdW5jdGlv
bjx2b2lkKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBkZWxl
dGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2Us
IFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICB2b2lkIGRl
bGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
PiYsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lk
IGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBt
b2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7
CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhPiYsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsK
IAogICAgIHZvaWQgZ2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4m
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IDNmNjc4OTY4YzY1Li5lNjVjNGZjOTM2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xMDcsNyArMTA3
LDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1l
bnQoKQogICAgIEFQSTo6T2JqZWN0OjpkZXJlZigpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgRnVu
Y3Rpb248dm9pZCAoQVBJOjpBcnJheSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNr
RnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5
KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRv
IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7
CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lm
TmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRIb3N0bmFtZXNXaXRoQ29v
a2llcyhzZXNzaW9uSUQsIGNhbGxiYWNrSUQpKTsKQEAgLTEyNCw0NyArMTI0LDQ3IEBAIHZvaWQg
V2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgaG9zCiAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1
cm5WYWx1ZShBUEk6OkFycmF5OjpjcmVhdGVTdHJpbmdBcnJheShob3N0bmFtZXMpLnB0cigpKTsK
IH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFt
ZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQordm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiB7CiAgICAgcHJvY2Vzc1Bvb2wo
KS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2Vz
OjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVDb29raWVzRm9ySG9zdG5hbWUoc2Vzc2lvbklELCBo
b3N0bmFtZSkpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29v
a2llcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRl
bGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHByb2Nlc3NQ
b29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNz
YWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQWxsQ29va2llcyhzZXNzaW9uSUQpKTsKIH0K
IAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZShTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBDb29raWUmIGNvb2tpZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNl
OjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5
OjpkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNv
b2tpZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5j
dGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShj
YWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1By
b2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpE
ZWxldGVDb29raWUoc2Vzc2lvbklELCBjb29raWUsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFNlc3Np
b25JRCBzZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdGlt
ZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlv
bikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVBbGxDb29raWVzTW9kaWZpZWRT
aW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6
OnRpbWVfcG9pbnQgdGltZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYg
Y2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5w
dXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRv
TmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29r
aWVNYW5hZ2VyOjpEZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShzZXNzaW9uSUQsIHRpbWUs
IGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tp
ZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNvb2tpZSwgRnVuY3Rpb248dm9p
ZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpzZXRDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBDb29raWUmIGNvb2tpZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYg
Y2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5w
dXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRv
TmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29r
aWVNYW5hZ2VyOjpTZXRDb29raWUoc2Vzc2lvbklELCBjb29raWUsIGNhbGxiYWNrSUQpKTsKIH0K
IAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZXMoU2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBVUkwmIG1haW5Eb2N1bWVudFVSTCwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRD
b29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVjdG9yPENvb2tpZT4mIGNv
b2tpZXMsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIG1haW5Eb2N1bWVudFVSTCwgRnVuY3Rp
b248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAg
ICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0
aW9uKSk7CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5j
aGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRDb29raWVzKHNl
c3Npb25JRCwgY29va2llcywgdXJsLCBtYWluRG9jdW1lbnRVUkwsIGNhbGxiYWNrSUQpKTsKIH0K
IAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEFsbENvb2tpZXMoU2Vzc2lvbklEIHNl
c3Npb25JRCwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPENvb2tpZT4mLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OmdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGdW5jdGlvbjx2b2lk
IChjb25zdCBWZWN0b3I8Q29va2llPiYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNr
RnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1v
dmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtp
bmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
cjo6R2V0QWxsQ29va2llcyhzZXNzaW9uSUQsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OmdldENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VVJMJiB1cmwsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxDb29raWU+JiwgQ2FsbGJhY2tC
YXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclBy
b3h5OjpnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmws
IEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxDb29raWU+JiwgQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxi
YWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vzc1Bvb2woKS0+
c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyOjpHZXRDb29raWVzKHNlc3Npb25JRCwgdXJsLCBjYWxsYmFja0lEKSk7
CkBAIC0xODUsMTggKzE4NSwxOCBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkRGVs
ZXRlQ29va2llcyhXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBtX2NhbGxiYWNr
cy50YWtlPFZvaWRDYWxsYmFjaz4oY2FsbGJhY2tJRCktPnBlcmZvcm1DYWxsYmFjaygpOwogfQog
Ci12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c3RhcnRP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBw
cm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nh
cnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdl
cyhzZXNzaW9uSUQpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0b3BPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVs
YXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U3RvcE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXMoc2Vzc2lvbklEKSk7CiB9CiAKIAotdm9pZCBXZWJDb29raWVNYW5h
Z2VyUHJveHk6OnNldENvb2tpZU9ic2VydmVyQ2FsbGJhY2soV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZU9ic2VydmVyQ2FsbGJhY2soUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYgY2FsbGJhY2spCiB7CiAgICAgaWYg
KGNhbGxiYWNrKQogICAgICAgICBtX2xlZ2FjeUNvb2tpZU9ic2VydmVycy5zZXQoc2Vzc2lvbklE
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBXZWJDb29raWVN
YW5hZ2VyUHJveHk6OnNldENvb2tpZU9ic2VydmVyQ2FsbGJhY2soV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb24KICAgICAgICAgbV9sZWdhY3lDb29raWVPYnNlcnZlcnMucmVtb3ZlKHNlc3Npb25J
RCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpyZWdpc3Rlck9ic2VydmVyKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9ic2VydmVyJiBvYnNlcnZlcikKK3ZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5OjpyZWdpc3Rlck9ic2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT2JzZXJ2ZXImIG9ic2VydmVyKQogewogICAgIGF1dG8gcmVzdWx0ID0gbV9jb29raWVP
YnNlcnZlcnMuc2V0KHNlc3Npb25JRCwgSGFzaFNldDxPYnNlcnZlcio+KCkpOwogICAgIHJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUuYWRkKCZvYnNlcnZlcik7CkBAIC0yMTMsNyArMjEzLDcgQEAgdm9p
ZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyT2JzZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgT2JzZXIKICAgICAgICAgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojp1bnJlZ2lzdGVy
T2JzZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT2JzZXJ2ZXImIG9ic2VydmVy
KQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnVucmVnaXN0ZXJPYnNlcnZlcihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9ic2VydmVyJiBvYnNlcnZlcikKIHsKICAgICBhdXRvIGl0ZXJh
dG9yID0gbV9jb29raWVPYnNlcnZlcnMuZmluZChzZXNzaW9uSUQpOwogICAgIGlmIChpdGVyYXRv
ciA9PSBtX2Nvb2tpZU9ic2VydmVycy5lbmQoKSkKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6dW5yZWdpc3Rlck9ic2VydmVyKFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9icwogICAgIHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKHNlc3Npb25J
RCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpjb29raWVzRGlkQ2hhbmdlKFNl
c3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Y29va2llc0Rp
ZENoYW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgbV9jbGllbnQuY29va2ll
c0RpZENoYW5nZSh0aGlzKTsKICAgICBhdXRvIGxlZ2FjeUl0ZXJhdG9yID0gbV9sZWdhY3lDb29r
aWVPYnNlcnZlcnMuZmluZChzZXNzaW9uSUQpOwpAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5Ojpjb29raWVzRGlkQ2hhbmdlKFNlc3Npb25JRCBzZXNzaW9uSUQp
CiAgICAgICAgIG9ic2VydmVyLT5jb29raWVzRGlkQ2hhbmdlKCk7CiB9CiAKLXZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFNlc3Npb25JRCwgSFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrRnVuY3Rpb24pCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKCFwcm9jZXNz
UG9vbCgpLT5pc1VzaW5nVGVzdGluZ05ldHdvcmtTZXNzaW9uKCkpCkBAIC0yNjEsNyArMjYxLDcg
QEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXAKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3
b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShwb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJRChjYWxsYmFja0lEKSkpOwogfQog
Ci12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShT
ZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgRnVuY3Rpb248
dm9pZCAoSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQo
V1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0
d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVN
YW5hZ2VyOjpHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNhbGxiYWNrSUQpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKaW5kZXggMzdmMjYz
NzdkZDUuLjczZGM0ZjQ3NzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJD
b29raWVNYW5hZ2VyUHJveHkuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAi
V2ViQ29va2llTWFuYWdlclByb3h5Q2xpZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC02NCwyNyArNjQsMjcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLQ29va2llTWFu
YWdlckNsaWVudEJhc2UqKTsKICAgICAKLSAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVz
KFdlYkNvcmU6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoQVBJOjpBcnJheSosIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZShXZWJDb3JlOjpTZXNzaW9u
SUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXZWJDb3JlOjpT
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpOwotICAgIHZvaWQgZGVsZXRlQWxsQ29v
a2llcyhXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgZGVsZXRlQWxsQ29va2llc01vZGlm
aWVkU2luY2UoV2ViQ29yZTo6U2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CisgICAg
dm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9p
ZCAoQVBJOjpBcnJheSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGRlbGV0
ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q29va2llJiwgRnVuY3Rpb248
dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZvaWQgZGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKKyAgICB2
b2lkIGRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgZGVsZXRlQWxs
Q29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
KTsKIAotICAgIHZvaWQgc2V0Q29va2llKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6Q29va2llJiwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwotICAg
IHZvaWQgc2V0Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBtYWlu
RG9jdW1lbnRVUkwsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAg
ICB2b2lkIHNldENvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q29va2llJiwg
RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZvaWQgc2V0Q29v
a2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIG1haW5Eb2N1bWVudFVSTCwgRnVu
Y3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogCi0gICAgdm9pZCBnZXRBbGxD
b29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjb21wbGV0aW9uSGFuZGxl
cik7Ci0gICAgdm9pZCBnZXRDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBD
YWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBnZXRB
bGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KTsKKyAgICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVS
TCYsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogCi0gICAgdm9pZCBzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBv
bGljeSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwotICAgIHZvaWQg
Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZv
aWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAg
ICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsK
KyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEZ1bmN0
aW9uPHZvaWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
KTsKIAogICAgIHZvaWQgc2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoYm9vbCk7
CiAKLSAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9u
SUQpOwotICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6U2Vzc2lv
bklEKTsKKyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25J
RCk7CisgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7
CiAKLSAgICB2b2lkIHNldENvb2tpZU9ic2VydmVyQ2FsbGJhY2soV2ViQ29yZTo6U2Vzc2lvbklE
LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYpOworICAgIHZvaWQgc2V0Q29va2llT2JzZXJ2ZXJD
YWxsYmFjayhQQUw6OlNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmKTsKIAogICAg
IGNsYXNzIE9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC05Myw4ICs5Myw4IEBAIHB1YmxpYzoK
ICAgICAgICAgdmlydHVhbCB2b2lkIG1hbmFnZXJEZXN0cm95ZWQoKSA9IDA7CiAgICAgfTsKIAot
ICAgIHZvaWQgcmVnaXN0ZXJPYnNlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQsIE9ic2VydmVyJik7
Ci0gICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklELCBPYnNlcnZl
ciYpOworICAgIHZvaWQgcmVnaXN0ZXJPYnNlcnZlcihQQUw6OlNlc3Npb25JRCwgT2JzZXJ2ZXIm
KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJPYnNlcnZlcihQQUw6OlNlc3Npb25JRCwgT2JzZXJ2ZXIm
KTsKIAogI2lmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2Uo
Y29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgdWludDMyX3Qgc3RvcmFnZVR5cGUpOwpAQCAtMTE1
LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRHZXRDb29raWVzKGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+JiwgV2ViS2l0OjpDYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZERl
bGV0ZUNvb2tpZXMoV2ViS2l0OjpDYWxsYmFja0lEKTsKIAotICAgIHZvaWQgY29va2llc0RpZENo
YW5nZShXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgY29va2llc0RpZENoYW5nZShQQUw6
OlNlc3Npb25JRCk7CiAKICAgICAvLyBXZWJDb250ZXh0U3VwcGxlbWVudAogICAgIHZvaWQgcHJv
Y2Vzc1Bvb2xEZXN0cm95ZWQoKSBvdmVycmlkZTsKQEAgLTEzMyw4ICsxMzMsOCBAQCBwcml2YXRl
OgogCiAgICAgQ2FsbGJhY2tNYXAgbV9jYWxsYmFja3M7CiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6
OlNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPj4gbV9sZWdhY3lDb29raWVPYnNlcnZl
cnM7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hTZXQ8T2JzZXJ2ZXIqPj4g
bV9jb29raWVPYnNlcnZlcnM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgV1RGOjpGdW5j
dGlvbjx2b2lkICgpPj4gbV9sZWdhY3lDb29raWVPYnNlcnZlcnM7CisgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgSGFzaFNldDxPYnNlcnZlcio+PiBtX2Nvb2tpZU9ic2VydmVyczsKIAogICAg
IFdlYkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudCBtX2NsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IGE1ZDc3Yjk2Mjk5Li4zM2RmNDk1YzM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjksNSArMjksNSBAQCBtZXNzYWdlcyAtPiBXZWJDb29raWVNYW5hZ2VyUHJveHkgewogICAgIERp
ZFNldENvb2tpZXMoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpOwogICAgIERpZEdldENv
b2tpZXMoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcywgV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpOwogCi0gICAgQ29va2llc0RpZENoYW5nZShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQorICAgIENvb2tpZXNEaWRDaGFuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2NDRlZDc1YzQ4
My4uMDlmNDk2OGVkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0yOTUsNyArMjk1LDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGFnZUlEOyB9CiAKICAgICAvLyBGSVhNRTogRG9uJ3Qga2VlcCBhIHNlcGFyYXRl
IHNlc3Npb25JRCAtIFJlbHkgb24gdGhlIFdlYnNpdGVEYXRhU3RvcmUKLSAgICBXZWJDb3JlOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQog
CiAgICAgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJh
bWUuZ2V0KCk7IH0KICAgICBXZWJGcmFtZVByb3h5KiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX2ZvY3VzZWRGcmFtZS5nZXQoKTsgfQpAQCAtMTg0Nyw3ICsxODQ3LDcgQEAgcHJpdmF0
ZToKICAgICBjb25zdCB1aW50NjRfdCBtX3BhZ2VJRDsKIAogICAgIC8vIEZJWE1FOiBEb24ndCBr
ZWVwIGEgc2VwYXJhdGUgc2Vzc2lvbklEIC0gUmVseSBvbiB0aGUgV2Vic2l0ZURhdGFTdG9yZQot
ICAgIGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBjb25zdCBQQUw6
OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIAogICAgIGJvb2wgbV9pc1BhZ2VTdXNwZW5kZWQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9hZGRzVmlzaXRlZExpbmtzIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDQ2NTFjOTI0YjI3Li4xMzRj
MzQ4NTEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApA
QCAtNzYsOCArNzYsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVVJMUGFyc2VyLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTU4NCwxNSArNTg0LDE1IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93
c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlCiB7CiAgICAgaWYgKG5ldHdvcmtQcm9jZXNzKCkpIHsK
ICAgICAgICAgaWYgKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgICAgICBuZXR3b3Jr
UHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbih7U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCksIHsgfSwg
eyB9LCB7IH19KSwgMCk7CisgICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih7UEFMOjpT
ZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgeyB9LCB7IH0sIHsgfX0pLCAwKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKSwgMCk7CisgICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSksIDApOwogICAgIH0KIAogICAgIGlmIChwcml2YXRlQnJv
d3NpbmdFbmFibGVkKQotICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKCkpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKICAgICBlbHNlCi0gICAgICAgIHNlbmRUb0FsbFBy
b2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiB9CiAKIHZvaWQgKCpzX2ludmFsaWRNZXNzYWdlQ2FsbGJh
Y2spKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lKTsKQEAgLTc3NCw3ICs3NzQsNyBAQCBXZWJQcm9j
ZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRh
U3RvcmUmIHdlYnNpdGVEYQogI2VuZGlmCiAKICAgICBpZiAoV2ViUHJlZmVyZW5jZXM6OmFueVBh
Z2VzQXJlVXNpbmdQcml2YXRlQnJvd3NpbmcoKSkKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSksIDApOworICAgICAgICBwcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKIAogICAgIGlmIChtX2F1dG9t
YXRpb25TZXNzaW9uKQogICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpFbnN1cmVBdXRvbWF0aW9uU2Vzc2lvblByb3h5KG1fYXV0b21hdGlvblNlc3Npb24tPnNlc3Np
b25JZGVudGlmaWVyKCkpLCAwKTsKQEAgLTkyNiw3ICs5MjYsNyBAQCBSZWY8V2ViUGFnZVByb3h5
PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBS
ZWY8QVBJOgogICAgIGlmICghcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKSkg
ewogICAgICAgICBBU1NFUlQoIXBhZ2VDb25maWd1cmF0aW9uLT5zZXNzaW9uSUQoKS5pc1ZhbGlk
KCkpOwogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0V2Vic2l0ZURhdGFTdG9yZShtX3dl
YnNpdGVEYXRhU3RvcmUucHRyKCkpOwotICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0U2Vz
c2lvbklEKHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdF
bmFibGVkKCkgPyBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSA6IG1fd2Vic2l0
ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpKTsKKyAgICAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnNldFNlc3Npb25JRChwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5j
ZXMoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQoKSA6IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgp
LnNlc3Npb25JRCgpKTsKICAgICB9CiAKICAgICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBwcm9j
ZXNzOwpAQCAtOTU0LDcgKzk1NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBhZ2VBZGRlZFRv
UHJvY2VzcyhXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgICAgIEFTU0VSVChwYWdlLndlYnNpdGVE
YXRhU3RvcmUoKS5wYXJhbWV0ZXJzKCkuc2Vzc2lvbklEID09IHNlc3Npb25JRCk7CiAgICAgICAg
IHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihwYWdlLndlYnNpdGVEYXRhU3RvcmUoKS5wYXJhbWV0ZXJz
KCkpKTsKICAgICAgICAgcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihzZXNzaW9uSUQpLCAwKTsKLSAgICB9IGVsc2Ug
aWYgKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgeworICAgIH0g
ZWxzZSBpZiAoc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
IHsKICAgICAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlKHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLnBhcmFtZXRl
cnMoKSkpOwogICAgICAgICBwYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpBZGRXZWJzaXRlRGF0YVN0b3JlKHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLnBhcmFtZXRlcnMo
KSksIDApOwogCkBAIC05NzgsMTAgKzk3OCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwYWdl
UmVtb3ZlZEZyb21Qcm9jZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSkKICAgICBpZiAoaXRlcmF0b3It
PnZhbHVlLmlzRW1wdHkoKSkgewogICAgICAgICBtX3Nlc3Npb25Ub1BhZ2VzTWFwLnJlbW92ZShp
dGVyYXRvcik7CiAKLSAgICAgICAgaWYgKHNlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSkKKyAgICAgICAgaWYgKHNlc3Npb25JRCA9PSBQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIFRoZSBs
YXN0IHVzZXIgb2YgdGhpcyBub24tZGVmYXVsdCBTZXNzaW9uSUQgaXMgZ29uZSwgc28gY2xlYW4g
aXQgdXAgaW4gdGhlIGNoaWxkIHByb2Nlc3Nlcy4KKyAgICAgICAgLy8gVGhlIGxhc3QgdXNlciBv
ZiB0aGlzIG5vbi1kZWZhdWx0IFBBTDo6U2Vzc2lvbklEIGlzIGdvbmUsIHNvIGNsZWFuIGl0IHVw
IGluIHRoZSBjaGlsZCBwcm9jZXNzZXMuCiAgICAgICAgIGlmIChuZXR3b3JrUHJvY2VzcygpKQog
ICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCksIDApOwogICAgICAgICBwYWdlLnByb2Nlc3Mo
KS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihzZXNzaW9uSUQpLCAw
KTsKQEAgLTk5MSw3ICs5OTEsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwYWdlUmVtb3ZlZEZy
b21Qcm9jZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSkKIERvd25sb2FkUHJveHkqIFdlYlByb2Nlc3NQ
b29sOjpkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCiB7CiAg
ICAgRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9IGNyZWF0ZURvd25sb2FkUHJveHkocmVx
dWVzdCk7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IGluaXRpYXRpbmdQYWdlID8gaW5pdGlh
dGluZ1BhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7Cisg
ICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gaW5pdGlhdGluZ1BhZ2UgPyBpbml0aWF0aW5n
UGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwog
CiAgICAgaWYgKGluaXRpYXRpbmdQYWdlKQogICAgICAgICBpbml0aWF0aW5nUGFnZS0+aGFuZGxl
RG93bmxvYWRSZXF1ZXN0KGRvd25sb2FkUHJveHkpOwpAQCAtMTAyMSw3ICsxMDIxLDcgQEAgRG93
bmxvYWRQcm94eSogV2ViUHJvY2Vzc1Bvb2w6OnJlc3VtZURvd25sb2FkKGNvbnN0IEFQSTo6RGF0
YSogcmVzdW1lRGF0YSwgY29uc3QKIAogICAgIGlmIChuZXR3b3JrUHJvY2VzcygpKSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBJZiB3ZSBzdGFydGVkIGEgZG93bmxvYWQgaW4gYW4gZXBoZW1lcmFsIHNl
c3Npb24gYW5kIHRoYXQgc2Vzc2lvbiBzdGlsbCBleGlzdHMsIHdlIHNob3VsZCBmaW5kIGEgd2F5
IHRvIHVzZSB0aGF0IHNhbWUgc2Vzc2lvbi4KLSAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc3VtZURvd25sb2FkKFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBkb3dubG9hZFByb3h5LT5kb3dubG9hZElEKCksIHJlc3VtZURhdGEt
PmRhdGFSZWZlcmVuY2UoKSwgcGF0aCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIDApOworICAg
ICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVz
dW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgZG93bmxvYWRQ
cm94eS0+ZG93bmxvYWRJRCgpLCByZXN1bWVEYXRhLT5kYXRhUmVmZXJlbmNlKCksIHBhdGgsIHNh
bmRib3hFeHRlbnNpb25IYW5kbGUpLCAwKTsKICAgICAgICAgcmV0dXJuIGRvd25sb2FkUHJveHk7
CiAgICAgfQogCkBAIC0xNTM0LDEyICsxNTM0LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNl
dEphdmFTY3JpcHRHYXJiYWdlQ29sbGVjdG9yVGltZXJFbmFibGVkKGJvb2wgZmxhZykKICAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEphdmFTY3JpcHRHYXJi
YWdlQ29sbGVjdG9yVGltZXJFbmFibGVkKGZsYWcpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9v
bDo6YWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4s
IHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdl
YlByb2Nlc3NQb29sOjphZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKGNvbnN0IFN0cmluZyYg
cGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewogICAgIG1fcGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuYWRkQXV0b1N0YXJ0T3Jp
Z2luSGFzaChwYWdlT3JpZ2luLCBwbHVnSW5PcmlnaW5IYXNoLCBzZXNzaW9uSUQpOwogfQogCi12
b2lkIFdlYlByb2Nlc3NQb29sOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2ln
bmVkIHBsdWdJbk9yaWdpbkhhc2gsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nl
c3NQb29sOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9y
aWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBtX3BsdWdJbkF1dG9T
dGFydFByb3ZpZGVyLmRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24ocGx1Z0luT3JpZ2luSGFzaCwg
c2Vzc2lvbklEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmlu
ZGV4IGM3MDA3ZGE1ZDBmLi5jYzA4MjJjMzUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCkBAIC00NSw3ICs0NSw3IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dENv
bm5lY3Rpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0xpbmtIYXNoLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNp
bmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
QEAgLTQ1Nyw4ICs0NTcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgdW5yZWdpc3Rlck5vdGlmaWNh
dGlvbk9ic2VydmVycygpOwogI2VuZGlmCiAKLSAgICB2b2lkIGFkZFBsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1bnNpZ25lZCBwbHVnSW5PcmlnaW5I
YXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJ
bnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQp
OworICAgIHZvaWQgYWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcmIHBh
Z2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEKTsKKyAg
ICB2b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odW5zaWduZWQgcGx1Z0luT3Jp
Z2luSGFzaCwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBzZXRBbnlQYWdlR3JvdXBNaWdo
dEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wpOwogCkBAIC02MTAsNyArNjEwLDcgQEAg
cHJpdmF0ZToKICAgICB9OwogICAgIFBhdGhzIG1fcmVzb2x2ZWRQYXRoczsKIAotICAgIEhhc2hN
YXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoU2V0PFdlYlBhZ2VQcm94eSo+PiBtX3Nlc3Npb25U
b1BhZ2VzTWFwOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hTZXQ8V2ViUGFnZVBy
b3h5Kj4+IG1fc2Vzc2lvblRvUGFnZXNNYXA7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5p
bgppbmRleCBlMGJiMjY5NGFhNS4uNjBhYThlMjI0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCkBAIC0zMiw4ICszMiw4IEBA
IG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQb29sIHsKICNlbmRpZgogCiAgICAgIyBQbHVnLWluIG1l
c3NhZ2VzLgotICAgIHZvaWQgQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChTdHJpbmcgcGFn
ZU9yaWdpbiwgdWludDMyX3QgaGFzaCwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLSAg
ICB2b2lkIFBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odWludDMyX3QgaGFzaCwgV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICB2b2lkIEFkZFBsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2goU3RyaW5nIHBhZ2VPcmlnaW4sIHVpbnQzMl90IGhhc2gsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKKyAgICB2b2lkIFBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odWlu
dDMyX3QgaGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCiAgICAgUmVwb3J0V2ViQ29u
dGVudENQVVRpbWUoU2Vjb25kcyBjcHVUaW1lLCB1aW50NjRfdCBhY3Rpdml0eVN0YXRlKQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNzA4NWNl
OTI0MDYuLjcyZWFlNjJiNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVs
ZXRlV2Vic2l0ZURhdGFGb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc0luQWxsUGVycwog
ICAgIAogICAgIFJlZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRvciA9
IGFkb3B0UmVmKG5ldyBDYWxsYmFja0FnZ3JlZ2F0b3IoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpKTsKIAotICAgIEhhc2hTZXQ8V2ViQ29yZTo6U2Vzc2lvbklEPiB2aXNpdGVkU2Vzc2lvbklE
czsKKyAgICBIYXNoU2V0PFBBTDo6U2Vzc2lvbklEPiB2aXNpdGVkU2Vzc2lvbklEczsKICAgICBm
b3IgKGF1dG8mIHBhZ2UgOiBnbG9iYWxQYWdlTWFwKCkpIHsKICAgICAgICAgYXV0byYgZGF0YVN0
b3JlID0gcGFnZS52YWx1ZS0+d2Vic2l0ZURhdGFTdG9yZSgpOwogICAgICAgICBpZiAoIWRhdGFT
dG9yZS5pc1BlcnNpc3RlbnQoKSB8fCB2aXNpdGVkU2Vzc2lvbklEcy5jb250YWlucyhkYXRhU3Rv
cmUuc2Vzc2lvbklEKCkpKQpAQCAtMzA5LDcgKzMwOSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
Ojp0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc1dpdGhXZWJzaXRlRGF0YShPcHRpb25TZXQ8
V2ViCiAgICAgCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdh
dG9yID0gYWRvcHRSZWYobmV3IENhbGxiYWNrQWdncmVnYXRvcihXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSkpOwogICAgIAotICAgIEhhc2hTZXQ8V2ViQ29yZTo6U2Vzc2lvbklEPiB2aXNpdGVk
U2Vzc2lvbklEczsKKyAgICBIYXNoU2V0PFBBTDo6U2Vzc2lvbklEPiB2aXNpdGVkU2Vzc2lvbklE
czsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBnbG9iYWxQYWdlTWFwKCkpIHsKICAgICAgICAgYXV0
byYgZGF0YVN0b3JlID0gcGFnZS52YWx1ZS0+d2Vic2l0ZURhdGFTdG9yZSgpOwogICAgICAgICBp
ZiAoIWRhdGFTdG9yZS5pc1BlcnNpc3RlbnQoKSB8fCB2aXNpdGVkU2Vzc2lvbklEcy5jb250YWlu
cyhkYXRhU3RvcmUuc2Vzc2lvbklEKCkpKQpAQCAtODM0LDcgKzgzNCw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5Ojp3aW5kb3dTZXJ2ZXJDb25uZWN0aW9uU3RhdGVDaGFuZ2VkKCkKICAgICAgICAg
cGFnZS0+YWN0aXZpdHlTdGF0ZURpZENoYW5nZShBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRs
ZSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgRnVuY3Rp
b248dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgRnVuY3Rpb248dm9pZChXZWJzaXRlRGF0
YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkp
OwogCkBAIC04NTIsNyArODUyLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0
ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXQKICAgICB9KTsK
IH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHJv
bm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vi
c2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9k
aWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKIApAQCAtODY1LDcgKzg2NSw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhPiYgb3JpZ2lucywgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBl
cywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIEZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2Vu
ZE1lc3NhZ2UoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
aW5kZXggMWVlNDhmN2NiMmQuLjU1OTBkYWYyYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzksOCArMzksOCBAQAogI2luY2x1ZGUgIldlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTEzOCw5ICsxMzgsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRTYXZlVG9QYWdlQ2FjaGUoKTsKICAgICB2b2lkIHJlbGVhc2VQYWdl
Q2FjaGUoKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4m
JiBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJDb3Jl
OjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIEZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMo
V2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIEZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBB
TDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpOwogICAgIHN0YXRpYyB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yVG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbnNJbkFsbFBlcnNpc3RlbnREYXRhU3RvcmVzKE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBWZWN0b3I8U3RyaW5nPiYmIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW5zLCBib29sIHNob3VsZE5vdGlmeVBhZ2VzLCBGdW5jdGlvbjx2b2lkIChjb25zdCBIYXNo
U2V0PFN0cmluZz4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgc3RhdGljIHZvaWQgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNXaXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIEZ1bmN0aW9uPHZv
aWQoSGFzaFNldDxTdHJpbmc+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICBzdGF0aWMg
dm9pZCBub3RpZnlQYWdlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2VkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCmluZGV4IDk1ODY1NjYxMzI3Li4yYzM5YTRjYjkyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAKQEAgLTYzLDE1ICs2MywxNSBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVJZGVudGlmaWVy
KCkKIAogUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBl
cnNpc3RlbnQoKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3RvcmUo
V2ViQ29yZTo6U2Vzc2lvbklEOjpnZW5lcmF0ZUVwaGVtZXJhbFNlc3Npb25JRCgpKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vic2l0ZURhdGFTdG9yZShQQUw6OlNlc3Npb25JRDo6Z2Vu
ZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQoKSkpOwogfQogCi1SZWY8V2Vic2l0ZURhdGFTdG9yZT4g
V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1JlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRl
RGF0YVN0b3JlOjpjcmVhdGUoQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vic2l0ZURhdGFT
dG9yZShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBzZXNzaW9uSUQpKTsKIH0KIAotV2Vic2l0ZURh
dGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24sIFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0
YVN0b3JlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRpZmllcigpKQogICAgICwgbV9z
ZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmln
dXJhdGlvbikpCkBAIC04MSw3ICs4MSw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRh
U3RvcmUoQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZXNzaW9uCiAgICAg
cGxhdGZvcm1Jbml0aWFsaXplKCk7CiB9CiAKLVdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRh
U3RvcmUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1dlYnNpdGVEYXRhU3RvcmU6Oldl
YnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9pZGVudGlm
aWVyKGdlbmVyYXRlSWRlbnRpZmllcigpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQog
ICAgICwgbV9jb25maWd1cmF0aW9uKCkKQEAgLTk0LDcgKzk0LDcgQEAgV2Vic2l0ZURhdGFTdG9y
ZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogewogICAgIHBsYXRmb3JtRGVzdHJveSgpOwogCi0gICAg
aWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSAmJiBtX3Nlc3Npb25JRCAhPSBXZWJDb3JlOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgeworICAgIGlmIChtX3Nlc3Npb25JRC5pc1ZhbGlk
KCkgJiYgbV9zZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkg
ewogICAgICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFBy
b2Nlc3NQb29scygpKQogICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRUb05ldHdvcmtpbmdQ
cm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVNlc3Npb24obV9zZXNzaW9u
SUQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggODBlOGYwN2UyNTAuLjAyZjExMzM3OTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYv
RnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRp
b25TZXQuaD4KQEAgLTgxLDEzICs4MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBjb29r
aWVTdG9yYWdlRmlsZTsKICAgICB9OwogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4g
Y3JlYXRlTm9uUGVyc2lzdGVudCgpOwotICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4g
Y3JlYXRlKENvbmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgc3RhdGljIFJl
ZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGUoQ29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9uSUQp
OwogICAgIHZpcnR1YWwgfldlYnNpdGVEYXRhU3RvcmUoKTsKIAogICAgIHVpbnQ2NF90IGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgIGJvb2wgaXNQZXJz
aXN0ZW50KCkgY29uc3QgeyByZXR1cm4gIW1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCk7IH0KLSAg
ICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9u
SUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nl
c3Npb25JRDsgfQogCiAgICAgYm9vbCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIGNv
bnN0OwogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCk7CkBA
IC0xMzEsOCArMTMxLDggQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0FuZFNldFRlc3RpbmdDYWxsYmFjayhGdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcm
KT4mJiBjYWxsYmFjayk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9y
ZShXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmUoQ29u
ZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBleHBsaWNpdCBXZWJzaXRlRGF0
YVN0b3JlKFBBTDo6U2Vzc2lvbklEKTsKKyAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKENv
bmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgZmV0Y2hEYXRhQW5kQXBw
bHkoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNo
T3B0aW9uPiwgUmVmUHRyPFdvcmtRdWV1ZT4mJiwgRnVuY3Rpb248dm9pZChWZWN0b3I8V2Vic2l0
ZURhdGFSZWNvcmQ+KT4mJiBhcHBseSk7CiAKQEAgLTE1OSw3ICsxNTksNyBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyB2b2lkIHJlbW92ZU1lZGlhS2V5cyhjb25zdCBTdHJpbmcmIG1lZGlhS2V5c1N0
b3JhZ2VEaXJlY3RvcnksIGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
PiYpOwogCiAgICAgY29uc3QgdWludDY0X3QgbV9pZGVudGlmaWVyOwotICAgIGNvbnN0IFdlYkNv
cmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBjb25zdCBQQUw6OlNlc3Npb25JRCBtX3Nl
c3Npb25JRDsKIAogICAgIGNvbnN0IENvbmZpZ3VyYXRpb24gbV9jb25maWd1cmF0aW9uOwogICAg
IENvbmZpZ3VyYXRpb24gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDEy
MTNkM2E4NzNiLi45ZGM1NzcwNTdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgV2Vi
Q29va2llTWFuYWdlcjo6V2ViQ29va2llTWFuYWdlcihDaGlsZFByb2Nlc3MqIHByb2Nlc3MpCiAg
ICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOwogfQogCi12b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SG9zdG5hbWVzV2l0
aENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiB7CiAgICAgSGFzaFNldDxTdHJpbmc+IGhvc3RuYW1lczsKICAgICBpZiAoYXV0byogc3RvcmFn
ZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25J
RCkpCkBAIC02NiwyMCArNjYsMjAgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIb3N0bmFt
ZXNXaXRoQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxsYmFja0lEIGMKICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkR2V0SG9zdG5h
bWVzV2l0aENvb2tpZXMoaG9zdG5hbWVMaXN0LCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQg
V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgaG9zdG5hbWUpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBXZWJD
b3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKCpzdG9yYWdlU2Vzc2lvbiwgeyBob3N0bmFt
ZSB9KTsKIH0KIAogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMoU2Vz
c2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29va2ll
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNz
aW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQog
ICAgICAgICBXZWJDb3JlOjpkZWxldGVBbGxDb29raWVzKCpzdG9yYWdlU2Vzc2lvbik7CiB9CiAK
LXZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llKFNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IENvb2tpZSYgY29va2llLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYkNv
b2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IENvb2tpZSYgY29va2llLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgaWYgKGF1dG8q
IHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihz
ZXNzaW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+ZGVsZXRlQ29va2llKGNvb2tpZSk7
CkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llKFNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZSYgY29va2llLCBDCiAgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZERlbGV0ZUNvb2tpZXMo
Y2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENv
b2tpZXNNb2RpZmllZFNpbmNlKFNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpzeXN0
ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdGltZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBX
ZWJDb29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdGlt
ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lv
biA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAg
ICAgICAgV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoKnN0b3JhZ2VTZXNz
aW9uLCB0aW1lKTsKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxl
dGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmMKICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkRGVs
ZXRlQ29va2llcyhjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6
Z2V0QWxsQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Cit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgVmVjdG9yPENvb2tpZT4gY29v
a2llczsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBX
ZWJDb29raWVNYW5hZ2VyOjpnZXRBbGxDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6RGlkR2V0Q29va2llcyhjb29raWVzLCBjYWxsYmFja0lEKSwgMCk7CiB9
CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0Q29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBVUkwmIHVybCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1
cmwsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBWZWN0b3I8Q29va2llPiBjb29raWVz
OwogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIFdlYkNv
b2tpZU1hbmFnZXI6OmdldENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1
cmwsIENhbGxiYWNrSQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFu
YWdlclByb3h5OjpEaWRHZXRDb29raWVzKGNvb2tpZXMsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAot
dm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRDb29raWUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQg
V2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgQ29va2llJiBjb29raWUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0
byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9u
KHNlc3Npb25JRCkpCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5zZXRDb29raWUoY29va2llKTsK
QEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZShXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNvbwogICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRTZXRDb29raWVzKGNh
bGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRDb29raWVzKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxDb29raWU+JiBjb29raWVz
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwsIENhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxDb29raWU+JiBjb29raWVzLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
IHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5zZXRD
b29raWVzKGNvb2tpZXMsIHVybCwgbWFpbkRvY3VtZW50VVJMKTsKQEAgLTEyOSwxMyArMTI5LDEz
IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29vCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZFNldENvb2tpZXMoY2FsbGJhY2tJRCksIDApOwog
fQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6Om5vdGlmeUNvb2tpZXNEaWRDaGFuZ2UoU2Vzc2lv
bklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6bm90aWZ5Q29va2llc0RpZENo
YW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6Q29va2llc0RpZENoYW5nZShzZXNzaW9uSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoU2Vzc2lvbklEIHNlc3Npb25J
RCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24g
PSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAg
ICAgICAgV2ViQ29yZTo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCpzdG9yYWdlU2Vzc2lv
biwgW3RoaXMsIHNlc3Npb25JRF0gewpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgV2ViQ29va2ll
TWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFNlc3Npb25JRCBzZXNzaW9uSUQp
CiAgICAgfQogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnN0b3BPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnN0b3BP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBp
ZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIFdlYkNvcmU6OnN0b3BPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKCpzdG9yYWdlU2Vzc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKaW5kZXggODQ0ZjdhM2I0NmQuLjY4NzQxYWQw
ZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29r
aWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29v
a2llTWFuYWdlci5oCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NT
dXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiT3B0aW9uYWxDYWxsYmFja0lELmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPGNocm9ubz4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjQsMzAgKzY0LDMwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIHVp
bnQzMl90IHN0b3JhZ2VUeXBlKTsKICNlbmRpZgogCi0gICAgdm9pZCBub3RpZnlDb29raWVzRGlk
Q2hhbmdlKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBub3RpZnlDb29raWVzRGlkQ2hh
bmdlKFBBTDo6U2Vzc2lvbklEKTsKIAogcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdl
YkNvcmU6OlNlc3Npb25JRCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRo
Q29va2llcyhQQUw6OlNlc3Npb25JRCwgQ2FsbGJhY2tJRCk7CiAKLSAgICB2b2lkIGRlbGV0ZUNv
b2tpZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIENhbGxiYWNr
SUQpOwotICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdlYkNvcmU6OlNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBkZWxldGVBbGxDb29raWVzKFdlYkNvcmU6OlNl
c3Npb25JRCk7Ci0gICAgdm9pZCBkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShXZWJDb3Jl
OjpTZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQsIENhbGxi
YWNrSUQpOworICAgIHZvaWQgZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpDb29raWUmLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0
bmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkZWxldGVBbGxD
b29raWVzKFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXNNb2RpZmll
ZFNpbmNlKFBBTDo6U2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3Bv
aW50LCBDYWxsYmFja0lEKTsKIAotICAgIHZvaWQgc2V0Q29va2llKFdlYkNvcmU6OlNlc3Npb25J
RCwgY29uc3QgV2ViQ29yZTo6Q29va2llJiwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBzZXRDb29r
aWVzKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBj
b25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIG1haW5Eb2N1bWVudFVSTCwg
Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRBbGxDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwg
Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBzZXRDb29raWUoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIENhbGxiYWNrSUQpOworICAgIHZvaWQg
c2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4m
LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIG1haW5Eb2N1bWVudFVS
TCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBD
YWxsYmFja0lEKTsKKyAgICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlVSTCYsIENhbGxiYWNrSUQpOwogCiAgICAgdm9pZCBwbGF0Zm9ybVNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAgICAgdm9pZCBnZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KENhbGxiYWNrSUQpOwogICAgIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7CiAKLSAgICB2b2lkIHN0YXJ0
T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgc3Rv
cE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIHN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBzdG9w
T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7CiAKICAgICBDaGlsZFByb2Nl
c3MqIG1fcHJvY2VzczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA1ZmVlZmE3
MTJjOC4uNDNmNmE3YjI3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQsMjIg
KzI0LDIyIEBACiAgKi8KICAKICBtZXNzYWdlcyAtPiBXZWJDb29raWVNYW5hZ2VyIHsKLSAgICB2
b2lkIEdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHZvaWQgRGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBob3N0bmFtZSkK
LSAgICB2b2lkIERlbGV0ZUFsbENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
KyAgICB2b2lkIEdldEhvc3RuYW1lc1dpdGhDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVDb29raWVz
Rm9ySG9zdG5hbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgaG9zdG5hbWUpCisg
ICAgdm9pZCBEZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAotICAg
IHZvaWQgU2V0Q29va2llKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJD
b3JlOjpDb29raWUgY29va2llLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICB2
b2lkIFNldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4gY29va2llcywgV2ViQ29yZTo6VVJMIHVybCwgV2ViQ29yZTo6VVJMIG1haW5E
b2N1bWVudFVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgdm9pZCBHZXRB
bGxDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQotICAgIHZvaWQgR2V0Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpVUkwgdXJsLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
LSAgICB2b2lkIERlbGV0ZUNvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1
Y3QgV2ViQ29yZTo6Q29va2llIGNvb2tpZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci0gICAgdm9pZCBEZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IHRpbWUs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgU2V0Q29va2llKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tpZSBjb29raWUsIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgU2V0Q29va2llcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMsIFdlYkNvcmU6
OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBtYWluRG9jdW1lbnRVUkwsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQorICAgIHZvaWQgR2V0QWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgR2V0Q29va2ll
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCB1cmwsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tpZSBjb29raWUsIFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgRGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2Uo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1l
X3BvaW50IHRpbWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogCiAgICAgdm9pZCBT
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHVpbnQzMl90IHBvbGljeSwgV2ViS2l0OjpPcHRpb25h
bENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICB2b2lkIEdldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgCi0gICAgdm9pZCBTdGFydE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLSAgICB2
b2lkIFN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCisgICAgdm9pZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQorICAgIHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogCiAjaWYgVVNFKFNPVVApCiAgICAgU2V0Q29va2llUGVyc2lzdGVu
dFN0b3JhZ2UoU3RyaW5nIHN0b3JhZ2VQYXRoLCB1aW50MzJfdCBzdG9yYWdlVHlwZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IDRkNzZmYmI0
M2UwLi5jMTgzYzU0OTVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIuY3BwCkBAIC01NSwxMiArNTUsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShTZXNzaW9uSUQgc2Vzc2lvbklEKQorUmVm
PFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVh
dGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihzZXNzaW9uSUQpKTsKIH0KIAotV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoU2Vzc2lvbklEIHNlc3Npb25J
RCkKK1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKIHsK
ICAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggYzc5ZTA0MWQ0ZjEuLjI5NzU1OTU2MmZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0
YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtMzAsNyArMzAs
NyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5z
aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Np
b25JRC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBX
ZWJJREJSZXN1bHQ7CiAKIGNsYXNzIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLCBw
dWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcj4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgc3RhdGljIFJlZjxXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2aXJ0
dWFsIH5XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKTsKIApAQCAtMTA5LDE0ICsxMDksMTQgQEAg
cHVibGljOgogICAgIHZvaWQgY29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwogCiBwcml2YXRlOgot
ICAgIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCk7CiAKICAgICBJUEM6OkNvbm5l
Y3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWw7CiAKICAgICB1aW50NjRfdCBt
X2lkZW50aWZpZXIgeyAwIH07CiAgICAgYm9vbCBtX2lzT3BlbkluU2VydmVyIHsgZmFsc2UgfTsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1f
Y29ubmVjdGlvblRvU2VydmVyOwotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsK
KyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJE
YXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
V2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggMmI4N2JhZjk0ZTcuLmViMTUxZWRkMmZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNl
UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2Vi
RGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlICJXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIApAQCAtNjksNyArNjksNyBAQCBXZWJEYXRhYmFzZVByb3ZpZGVyOjp+V2Vi
RGF0YWJhc2VQcm92aWRlcigpCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotV2Vi
Q29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYkRhdGFiYXNlUHJvdmlk
ZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lv
bklEJiBzZXNzaW9uSUQpCitXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZl
ciYgV2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihj
b25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQogewogICAgIGlmIChzZXNzaW9uSUQuaXNF
cGhlbWVyYWwoKSkgewogICAgICAgICBhdXRvIHJlc3VsdCA9IG1faWRiRXBoZW1lcmFsQ29ubmVj
dGlvbk1hcC5hZGQoc2Vzc2lvbklELnNlc3Npb25JRCgpLCBudWxscHRyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVy
LmgKaW5kZXggYjcyYjIzNGZmMWYuLmY5ZGFhZjExYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaApAQCAt
MzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViRGF0YWJhc2VQcm92aWRlcigp
OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgV2ViQ29yZTo6SURCQ2xpZW50
OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24o
Y29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJikgZmluYWw7CisgICAgV2ViQ29yZTo6SURCQ2xpZW50
OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24o
Y29uc3QgUEFMOjpTZXNzaW9uSUQmKSBmaW5hbDsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKaW5kZXggOWE4YTYwYzE1MDkuLjRlYjAxNTllMWMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHAKQEAgLTcxLDExICs3MSwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29u
dHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
R2VzdHVyZUluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclNjcmlwdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaD4KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogI2luY2x1ZGUgIldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaCIKQEAgLTMxOSw5ICszMTksOSBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdl
R3JvdXAsIGJvbwogewogICAgIGlmIChlbmFibGVkKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb25Jbk5ldHdvcmtQcm9j
ZXNzKCk7Ci0gICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAg
ICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogICAgIH0gZWxz
ZQotICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNl
c3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAKICAgICBj
b25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3Jv
dXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRl
cmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGEyMzkzMDI3YWQxLi5kZDc4NjBiNTI4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC00MSw4ICs0MSw4IEBACiAjaW5jbHVkZSAi
V2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJlc291
cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXModWludDY0X3QgcmVxdWVzdElkZQogfQogCiAj
aWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLXZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlLCBTZXNzaW9uSUQgc2Vzc2lvbklE
KQordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxl
JiBoYW5kbGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UgPSBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVzb3VyY2VGb3JSZXF1ZXN0
KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAgICAgaWYgKCFyZXNvdXJjZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmgKaW5kZXggZmIzMDE1NmU4NDUuLjU2YWNhOGJmNGMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtMzUsMTEgKzM1LDE0IEBAIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRGF0YVJlZmVy
ZW5jZTsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgU2Vzc2lvbklEOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTczLDcgKzc2LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShT
SEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRp
ZENhY2hlUmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU2hh
cmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYsIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBk
aWRDYWNoZVJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNo
YXJlYWJsZVJlc291cmNlOjpIYW5kbGUmLCBQQUw6OlNlc3Npb25JRCk7CiAjZW5kaWYKIAogICAg
IC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBuZXR3b3JrIHBy
b2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggYTRm
YzQyNmQ4MDQuLjIzYTJlY2EwMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJD
RSkKLSAgICBEaWRDYWNoZVJlc291cmNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBXZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUgcmVzb3VyY2UsIFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCisgICAgRGlkQ2FjaGVSZXNvdXJjZShXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291
cmNlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjZW5kaWYKIAogICAgIERpZFdyaXRlQmxv
YnNUb1RlbXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8U3Ry
aW5nPiBmaWxlbmFtZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggOWQ5Nzc1YjA0OGYuLjRhNzVjZmM3NzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCkBAIC01OSw5ICs1OSw5IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZWZl
cnJlclBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
dWJyZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFVTRShRVUlDS19MT09LKQpA
QCAtMjIyLDcgKzIyMiw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChS
ZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgbG9hZFBhcmFt
ZXRlcnMuaWRlbnRpZmllciA9IGlkZW50aWZpZXI7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFn
ZUlEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogMDsKICAgICBsb2FkUGFyYW1ldGVy
cy53ZWJGcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMDsKLSAgICBs
b2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkg
OiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5zZXNz
aW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXNvdXJj
ZUxvYWRlci5yZXF1ZXN0KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9s
aWN5ID0gY29udGVudFNuaWZmaW5nUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLmFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMgPSBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOwpAQCAtMzY2LDcgKzM2Niw3
IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIHVuCiAgICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmll
ciA9IHJlc291cmNlTG9hZElkZW50aWZpZXI7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogMDsKICAgICBsb2FkUGFyYW1ldGVycy53
ZWJGcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMDsKLSAgICBsb2Fk
UGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9u
SUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0Owog
ICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IFNuaWZmQ29udGVudDsK
ICAgICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gc3RvcmVkQ3JlZGVu
dGlhbHM7CkBAIC00MDEsNyArNDAxLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6Y3JlYXRl
UGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQsIFIKICAgICBO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKICAgICBsb2FkUGFy
YW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmln
aW4gPSBXVEZNb3ZlKHNvdXJjZU9yaWdpbik7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBh
Z2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAg
ICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50
aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0ID8gRG9Ob3RBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzIDogQWxsb3dTdG9yZWRDcmVkZW50aWFsczsKICAgICBsb2FkUGFyYW1ldGVy
cy5tb2RlID0gb3B0aW9ucy5tb2RlOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZEZvbGxvd1Jl
ZGlyZWN0cyA9IG9wdGlvbnMucmVkaXJlY3QgPT0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9s
bG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0UHJvdmlkZXIuY3BwCmluZGV4IGUzMzNmNjRhMWJkLi45ODc2MDkyNzRkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVy
LmNwcApAQCAtMzcsNyArMzcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLVJlZjxTb2NrZXRTdHJlYW1IYW5kbGU+IFdlYlNvY2tldFByb3ZpZGVy
OjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhh
bmRsZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNy
ZWRlbnRpYWxQYXJ0aXRpb24pCitSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBXZWJTb2NrZXRQcm92
aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pCiB7CiAgICAgcmV0dXJuIFdlYlNvY2tldFN0cmVh
bTo6Y3JlYXRlKHVybCwgY2xpZW50LCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFBy
b3ZpZGVyLmgKaW5kZXggYTRhMTgyYzJkZmQuLjAyNDRlNWYyYzg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmgKQEAgLTMy
LDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJTb2NrZXRQcm92aWRlciBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTb2NrZXRQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxXZWJTb2NrZXRQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJTb2NrZXRQcm92aWRlcik7IH0KLSAgICBSZWY8V2ViQ29yZTo6U29ja2V0U3RyZWFtSGFu
ZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29y
ZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pIGZpbmFsOworICAgIFJlZjxXZWJDb3JlOjpTb2Nr
ZXRTdHJlYW1IYW5kbGU+IGNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBXZWJDb3JlOjpV
UkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBQQUw6OlNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKSBmaW5hbDsKICAgICB2aXJ0dWFsIH5X
ZWJTb2NrZXRQcm92aWRlcigpIHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5jcHAKaW5kZXggOGYyNDM1YWYxZGUuLmM5
ZjU3OWNjOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldFN0cmVhbS5jcHAKQEAgLTMyLDkgKzMyLDkgQEAKICNpbmNsdWRlICJOZXR3b3Jr
U29ja2V0U3RyZWFtTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvY2tldFN0cmVhbUVycm9yLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02NSwxMiArNjUsMTIgQEAgdm9pZCBXZWJTb2NrZXRTdHJl
YW06Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgpCiAgICAgZ2xvYmFsV2ViU29ja2V0U3RyZWFtTWFw
KCkuY2xlYXIoKTsKIH0KIAotUmVmPFdlYlNvY2tldFN0cmVhbT4gV2ViU29ja2V0U3RyZWFtOjpj
cmVhdGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pCitS
ZWY8V2ViU29ja2V0U3RyZWFtPiBXZWJTb2NrZXRTdHJlYW06OmNyZWF0ZShjb25zdCBVUkwmIHVy
bCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKQogewogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlNvY2tldFN0cmVhbSh1cmwsIGNsaWVudCwgc2Vzc2lvbklELCBjcmVk
ZW50aWFsUGFydGl0aW9uKSk7CiB9CiAKLVdlYlNvY2tldFN0cmVhbTo6V2ViU29ja2V0U3RyZWFt
KGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQmIGNsaWVudCwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBj
YWNoZVBhcnRpdGlvbikKK1dlYlNvY2tldFN0cmVhbTo6V2ViU29ja2V0U3RyZWFtKGNvbnN0IFdl
YkNvcmU6OlVSTCYgdXJsLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVu
dCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNhY2hlUGFydGl0aW9u
KQogICAgIDogU29ja2V0U3RyZWFtSGFuZGxlKHVybCwgY2xpZW50KQogICAgICwgbV9pZGVudGlm
aWVyKG5leHRBdmFpbGFibGVJZGVudGlmaWVyKyspCiAgICAgLCBtX2NsaWVudChjbGllbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRTdHJl
YW0uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5o
CmluZGV4IGVkYTc1NzhiMGQ0Li5lOTY4NGFkNGIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmgKQEAgLTI3LDggKzI3LDggQEAK
IAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29j
a2V0U3RyZWFtSGFuZGxlLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+
CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlvbjsKQEAgLTQ0LDcgKzQ0LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlNvY2tldFN0cmVhbSA6IHB1YmxpYyBJUEM6
Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIFdlYkNv
cmU6OlNvY2tldFN0cmVhbUhhbmRsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJTb2Nr
ZXRTdHJlYW0+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQmLCBXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVu
dGlhbFBhcnRpdGlvbik7CisgICAgc3RhdGljIFJlZjxXZWJTb2NrZXRTdHJlYW0+IGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKTsKICAgICBz
dGF0aWMgdm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKICAgICBzdGF0aWMgV2ViU29ja2V0
U3RyZWFtKiBzdHJlYW1XaXRoSWRlbnRpZmllcih1aW50NjRfdCk7CiAgICAgCkBAIC03MCw3ICs3
MCw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpIGZpbmFsOwogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
ZmluYWw7CiAKLSAgICBXZWJTb2NrZXRTdHJlYW0oY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29y
ZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pOworICAgIFdlYlNvY2tldFN0cmVhbShjb25zdCBX
ZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBQQUw6OlNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKTsKICAgICB+V2ViU29j
a2V0U3RyZWFtKCk7CiAKICAgICBzaXplX3QgbV9idWZmZXJlZEFtb3VudCB7IDAgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nl
c3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRv
U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA2YjI3ZDc4MWQyZC4uYWJlYTgxZDIz
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3Rv
cmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTc3LDcgKzc3LDcg
QEAgdm9pZCBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIEkKIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQotV2ViSURCQ29ubmVjdGlvblRvU2VydmVyJiBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVj
dGlvbjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBTZXNzaW9uSUQmIHNl
c3Npb25JRCkKK1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nv
bm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgUEFMOjpTZXNz
aW9uSUQmIHNlc3Npb25JRCkKIHsKICAgICBhdXRvIHJlc3VsdCA9IG1fd2ViSURCQ29ubmVjdGlv
bnNCeVNlc3Npb24uYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CiAgICAgaWYgKHJlc3VsdC5pc05l
d0VudHJ5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAyNDI2ZTZjYWZi
Mi4uYjAzM2I0ZjBlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMjks
MTAgKzI5LDEwIEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VT
ZW5kZXIuaCIKICNpbmNsdWRlICJXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
K25hbWVzcGFjZSBQQUwgewogY2xhc3MgU2Vzc2lvbklEOwogfQogCkBAIC00OSw3ICs0OSw3IEBA
IHB1YmxpYzoKICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nv
bm5lY3Rpb24uZ2V0KCk7IH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgaWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihj
b25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKKyAgICBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIm
IGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKTsK
ICNlbmRpZgogCiBwcml2YXRlOgpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBSZWZQdHI8V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyPj4gbV93ZWJJREJDb25uZWN0aW9uc0J5U2Vzc2lvbjsKKyAgICBIYXNoTWFw
PFBBTDo6U2Vzc2lvbklELCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPj4gbV93ZWJJ
REJDb25uZWN0aW9uc0J5U2Vzc2lvbjsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyPj4gbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllcjsK
ICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDU4NTI5ZGI2
MzcxLi45MWVjYTk2NzliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0x
NDQxLDcgKzE0NDEsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2Uo
KSBjb25zdAogICAgIHJldHVybiAhbV9mcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlcjsKIH0K
IAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rv
d25sb2FkKERvY3VtZW50TG9hZGVyICpkb2N1bWVudExvYWRlciwgU2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciAqZG9jdW1lbnRMb2FkZXIsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBtX2ZyYW1lLT5jb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoZG9jdW1lbnRMb2FkZXIsIHNlc3Npb25JRCwgcmVxdWVzdCwg
cmVzcG9uc2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA2NjAwYjlmYzNh
Ny4uMWE5ZGNlMGEwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yNyw3ICsy
Nyw3IEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xpZW50Lmg+CiAKLW5hbWVz
cGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBQQUwgewogY2xhc3MgU2Vzc2lvbklEOwogfQogCkBA
IC0xOTYsNyArMTk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJh
bWVzZXQoYm9vbCkgZmluYWw7CiAKICAgICBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0IGZpbmFs
OwotICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CisgICAg
dm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwogCiAgICAgUmVmUHRyPFdl
YkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCYsIGNvbnN0IFN0cmluZyYg
cmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJn
aW5IZWlnaHQpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4
IDgyMTQwODI4MmJkLi5hZTY0MDgzM2YxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKQEAgLTU5LDEwICs1OSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0
ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9ncmVzc1RyYWNrZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFnZU5hbWVzcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgorI2luY2x1ZGUg
PHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAK
ICNpZiBQTEFURk9STShNQUMpCkBAIC0xMzUsNyArMTM1LDcgQEAgU3RyaW5nIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0
b3JhZ2UKICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbi5z
ZXNzaW9uSUQoKSwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCkKK1N0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCkKIHsK
ICAgICBTdHJpbmcgcmVzdWx0OwogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0
d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNz
aW9uSUQsIGZpcnN0UGFydHksIHVybCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWU6OlJlcGx5KHJlc3VsdCksIDAp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDYyOGQ4NzBkMzYwLi5lMTZiZWE0
ODI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNTEsNyArNTEsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgV2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICBib29sIGNvb2tpZXNF
bmFibGVkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAgICAg
U3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7Ci0gICAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKKyAgICBTdHJpbmcgY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBnZXRS
YXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBT
dHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcAppbmRleCAwZmY1ZmMyYzc1
MC4uNTUxNDg4MDIyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBA
IGJvb2wgV2ViUGx1Z0luQ2xpZW50OjpzaG91bGRBdXRvU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0
cmluZyYgcGFnZU9yaWdpbiwgY29uc3QKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuc2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9yaWdpbihtX3dlYlBhZ2UsIHBhZ2VPcmlnaW4s
IHBsdWdpbk9yaWdpbiwgbWltZVR5cGUpOwogfQogCi12b2lkIFdlYlBsdWdJbkNsaWVudDo6ZGlk
U3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBw
bHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCit2b2lkIFdlYlBsdWdJbkNsaWVudDo6ZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0
IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wbHVnSW5EaWRTdGFydEZyb21PcmlnaW4ocGFnZU9yaWdpbiwgcGx1
Z2luT3JpZ2luLCBtaW1lVHlwZSwgc2Vzc2lvbklEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuaAppbmRl
eCA5M2Y5Njk4YTlmYS4uNjc3OGIzNjg5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmgKQEAgLTI3LDcg
KzI3LDcgQEAKICNkZWZpbmUgV2ViUGx1Z0luQ2xpZW50X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUv
UGx1Z0luQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRl
IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAg
LTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHBhZ2VEZXN0cm95ZWQo
KSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZEF1dG9TdGFydEZyb21PcmlnaW4oY29uc3QgU3Ry
aW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTdGFydEZyb21PcmlnaW4oY29uc3Qg
U3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklEKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYg
cGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCkgb3Zl
cnJpZGU7CiAKICAgICBXZWJQYWdlJiBtX3dlYlBhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBiM2Q5YmM5NzRiYy4uZTQ2MjljYjQzMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0yOSw3
ICsyOSw3IEBACiAjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUg
IldlYkZyYW1lLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQzLDcgKzQzLDcgQEAg
cHVibGljOgogICAgIH0KIAogICAgIC8vIEZJWE1FOiByZW1vdmUgcGxhdGZvcm0tc3BlY2lmaWMg
Y29kZSBhbmQgdXNlIFNlc3Npb25UcmFja2VyCi0gICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogICAgIHN0YXRpYyB2
b2lkIGVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzJiYpOwogCiAgICAgc3RhdGljIHZvaWQgc2V0Q29va2llQWNjZXB0UG9saWN5Rm9yQWxsQ29u
dGV4dHMoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggZGQ3ZDViZjVkN2YuLjI2Mzk5MjM1ZWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC00Nyw3ICs0
Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKICAg
ICAKLXZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IDgyOGQyNjgyZDE4
Li43YWQ3OTcwMDMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5jcHAKQEAgLTMzLDE1ICszMywxNSBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvdXBOZXR3b3JrU2Vz
c2lvbi5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQg
c2Vzc2lvbklEKQordm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggODNm
NjU5YjIyZDguLmE2NmU4NDc2NTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
U2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29y
ZTo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgdm9pZCBlbnN1cmVXZWJzaXRlRGF0YVN0
b3JlU2Vzc2lvbihXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmKTsKIAogICAgIFdlYkZyYW1l
TG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IGJiZThhNTIzNjBjLi4y
MmFiYzIwODg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcApAQCAtMjY0LDExICsyNjQsMTEgQEAgdm9pZCBXZWJGcmFtZTo6c3RhcnREb3dubG9h
ZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmkKICAg
ICBtX3BvbGljeURvd25sb2FkSUQgPSB7IH07CiAKICAgICBhdXRvJiB3ZWJQcm9jZXNzID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCk7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IHBhZ2UoKSA/
IHBhZ2UoKS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBwYWdlKCkgPyBwYWdlKCktPnNlc3Npb25JRCgp
IDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICB3ZWJQcm9jZXNzLm5l
dHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpTdGFydERvd25sb2FkKHNlc3Npb25JRCwgcG9saWN5RG93bmxv
YWRJRCwgcmVxdWVzdCwgc3VnZ2VzdGVkTmFtZSksIDApOwogfQogCi12b2lkIFdlYkZyYW1lOjpj
b252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50
TG9hZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJGcmFtZTo6Y29u
dmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExv
YWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIEFTU0VSVCht
X3BvbGljeURvd25sb2FkSUQuZG93bmxvYWRJRCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggZjJiMDYyZmZiNzEuLmRmZTk1YzYxNThiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTQyLDEz
ICs0MiwxNiBAQCBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEFycmF5OwogfQogCituYW1lc3BhY2Ug
UEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
Q2VydGlmaWNhdGVJbmZvOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MRnJhbWVPd25lckVsZW1l
bnQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7Ci1jbGFzcyBTZXNzaW9uSUQ7CiBj
bGFzcyBVUkw7CiB9CiAKQEAgLTg0LDcgKzg3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUFj
dGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBEb3dubG9hZElEKTsKIAogICAgIHZvaWQgc3Rh
cnREb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcm
IHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwotICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRU
b0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgV2ViQ29yZTo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJik7CisgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCiAgICAg
U3RyaW5nIHNvdXJjZSgpIGNvbnN0OwogICAgIFN0cmluZyBjb250ZW50c0FzU3RyaW5nKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDhkY2FkZjNjYTA0Li4xNDQwMGFiMWIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3Nyw3ICsxNzcsNiBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2hhZG93Um9vdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CkBAIC0xOTMsNiArMTkyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1dlYkdMU3RhdGVU
cmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9tYXJrdXAuaD4KICNpbmNsdWRlIDxiaW5kaW5n
cy9TY3JpcHRWYWx1ZS5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaD4KICNpbmNsdWRlIDxydW50aW1l
L0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KQEAgLTI3MTQs
NyArMjcxNCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3Rp
bmdNb2RlIGxheWVySG9zdGluZ01vZGUpCiAgICAgICAgIHBsdWdpblZpZXctPnNldExheWVySG9z
dGluZ01vZGUobV9sYXllckhvc3RpbmdNb2RlKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRTZXNz
aW9uSUQoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUGFnZTo6c2V0U2Vzc2lvbklEKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCkpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oc2Vzc2lvbklEKTsKQEAgLTMwNDksOSArMzA0OSw5IEBAIHZvaWQgV2ViUGFnZTo6
dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAg
c2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKHN0YXRpY19jYXN0PFdlYkNvcmU6OkZyYW1lRmxh
dHRlbmluZz4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZy
YW1lRmxhdHRlbmluZ0tleSgpKSkpOwogICAgIHNldHRpbmdzLnNldEFzeW5jRnJhbWVTY3JvbGxp
bmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YXN5
bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWRLZXkoKSkpOwogICAgIGlmIChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSkg
JiYgIXVzZXNFcGhlbWVyYWxTZXNzaW9uKCkpCi0gICAgICAgIHNldFNlc3Npb25JRChTZXNzaW9u
SUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7Ci0gICAgZWxzZSBpZiAoIXN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtl
eSgpKSAmJiBzZXNzaW9uSUQoKSA9PSBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSkKLSAgICAgICAgc2V0U2Vzc2lvbklEKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsK
KyAgICAgICAgc2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCkpOworICAgIGVsc2UgaWYgKCFzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSkgJiYgc2Vzc2lvbklEKCkgPT0g
UEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkKKyAgICAgICAgc2V0U2Vz
c2lvbklEKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIHNldHRpbmdz
LnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpkZXZlbG9wZXJFeHRyYXNFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5n
cy5zZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKFJ1bnRpbWVGbGFncyhzdG9yZS5nZXRVSW50MzJW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YVNjcmlwdFJ1bnRpbWVGbGFnc0tleSgp
KSkpOwogICAgIHNldHRpbmdzLnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnRleHRBcmVhc0FyZVJlc2l6YWJsZUtleSgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNmJj
MzcxZTIwZmMuLjRhNmJkOWU3ZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC0yMzAsMTAgKzIzMCwxMCBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3Jl
OjpQYWdlKiBjb3JlUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogICAgIHVp
bnQ2NF90IHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9Ci0gICAgV2ViQ29yZTo6
U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS0+c2Vzc2lvbklEKCk7
IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2Ut
PnNlc3Npb25JRCgpOyB9CiAgICAgYm9vbCB1c2VzRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0IHsg
cmV0dXJuIG1fcGFnZS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKTsgfQogCi0gICAgdm9pZCBzZXRT
ZXNzaW9uSUQoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIHNldFNlc3Npb25JRChQQUw6
OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
OwogICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3Zp
ZXdTaXplOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggODcw
ZjNjZGU4NTMuLjU0ZDMxYzUzNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAg
YWRkU3VwcGxlbWVudDxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcj4oKTsKICNlbmRpZgogCi0gICAg
bV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuYWRkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+KCkpOworICAgIG1fcGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaGVzLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBI
YXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+KCkpOwogCiAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6
OnNoYXJlZCgpLnNldE5vdGlmaWNhdGlvbkNhbGxiYWNrKFt0aGlzXSAoVmVjdG9yPFJlc291cmNl
TG9hZFN0YXRpc3RpY3M+JiYgc3RhdGlzdGljcykgewogICAgICAgICBBU1NFUlQoIXN0YXRpc3Rp
Y3MuaXNFbXB0eSgpKTsKQEAgLTUwMyw3ICs1MDMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZ1bGxL
ZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCkK
ICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgPSBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFi
bGVkOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
U2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihzZXNzaW9uSUQpOwog
fQpAQCAtNTEzLDcgKzUxMyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9y
ZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24oV1RGTW92ZShw
YXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oU2Vzc2lv
bklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogewogICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihz
ZXNzaW9uSUQpOwogfQpAQCAtODAwLDkgKzgwMCw5IEBAIHN0YXRpYyB1bnNpZ25lZCBoYXNoRm9y
UGx1Z0luT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVn
CiAgICAgcmV0dXJuIGhhc2hlci5oYXNoKCk7CiB9CiAKLWJvb2wgV2ViUHJvY2Vzczo6aXNQbHVn
SW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCitib29sIFdlYlByb2Nlc3M6OmlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJs
ZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwg
SGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25JdGVyYXRv
ciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoc2Vzc2lvbklEKTsKICAgICBI
YXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Ojpjb25zdF9pdGVyYXRvciBpdDsKICAgICBib29sIGNv
bnRhaW5zID0gZmFsc2U7CiAKQEAgLTgxMSw3ICs4MTEsNyBAQCBib29sIFdlYlByb2Nlc3M6Omlz
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBTZXNz
aW9uSQogICAgICAgICBjb250YWlucyA9IGl0ICE9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5k
KCk7CiAgICAgfQogICAgIGlmICghY29udGFpbnMpIHsKLSAgICAgICAgc2Vzc2lvbkl0ZXJhdG9y
ID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZmluZChTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSk7CisgICAgICAgIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzLmZpbmQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAg
ICAgICAgIGl0ID0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5maW5kKHBsdWdJbk9yaWdpbkhhc2gp
OwogICAgICAgICBpZiAoaXQgPT0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgzNiw3ICs4MzYsNyBAQCBib29sIFdlYlByb2Nlc3M6
OnNob3VsZFBsdWdJbkF1dG9TdGFydEZyb21PcmlnaW4oV2ViUGFnZSYgd2ViUGFnZSwgY29uc3Qg
U3RyaW5nJgogICAgIHJldHVybiBpc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2goaGFzaEZvclBs
dWdJbk9yaWdpbihwYWdlT3JpZ2luLCBwbHVnaW5PcmlnaW4sIG1pbWVUeXBlKSwgd2ViUGFnZS5z
ZXNzaW9uSUQoKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cGx1Z0luRGlkU3RhcnRGcm9tT3Jp
Z2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4s
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlBy
b2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4s
IGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKHBhZ2VPcmlnaW4uaXNFbXB0eSgpKSB7
CiAgICAgICAgIExPRyhQbHVnaW5zLCAiTm90IGFkZGluZyBlbXB0eSBwYWdlIG9yaWdpbiIpOwpA
QCAtODU4LDcgKzg1OCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGx1Z0luRGlkU3RhcnRGcm9tT3Jp
Z2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nCiAgICAgcGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OkFkZFBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2gocGFnZU9yaWdpbiwgcGx1Z0luT3JpZ2luSGFzaCwgc2Vzc2lv
bklEKSwgMCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBkb3VibGUgZXhwaXJhdGlvblRpbWUs
IFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OmRpZEFkZFBsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgZG91YmxlIGV4cGlyYXRp
b25UaW1lLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgLy8gV2hlbiBjYWxsZWQs
IHNvbWUgd2ViIHByb2Nlc3MgKHdoaWNoIGFsc28gbWlnaHQgYmUgdGhpcyBvbmUpIGFkZGVkIHRo
ZSBvcmlnaW4gZm9yIGF1dG8tc3RhcnRpbmcsCiAgICAgLy8gb3IgcmVjZWl2ZWQgdXNlciBpbnRl
cmFjdGlvbi4KQEAgLTg2OSwxNSArODY5LDE1IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkQWRkUGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBkb3ViCiB2
b2lkIFdlYlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhj
b25zdCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+JiBoYXNoZXMpCiB7CiAgICAgbV9wbHVnSW5B
dXRvU3RhcnRPcmlnaW5IYXNoZXMuY2xlYXIoKTsKLSAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdp
bkhhc2hlcy5hZGQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWdu
ZWQsIGRvdWJsZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnN3YXAoY29uc3RfY2FzdDxIYXNoTWFwPHVu
c2lnbmVkLCBkb3VibGU+Jj4oaGFzaGVzKSk7CisgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXMuYWRkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5z
aWduZWQsIGRvdWJsZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnN3YXAoY29uc3RfY2FzdDxIYXNoTWFw
PHVuc2lnbmVkLCBkb3VibGU+Jj4oaGFzaGVzKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cmVz
ZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoY29uc3QgSGFzaE1hcDxTZXNzaW9uSUQsIEhh
c2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+JiBoYXNoZXMpCit2b2lkIFdlYlByb2Nlc3M6OnJlc2V0
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKGNvbnN0IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQs
IEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+JiBoYXNoZXMpCiB7Ci0gICAgbV9wbHVnSW5BdXRv
U3RhcnRPcmlnaW5IYXNoZXMuc3dhcChjb25zdF9jYXN0PEhhc2hNYXA8U2Vzc2lvbklELCBIYXNo
TWFwPHVuc2lnbmVkLCBkb3VibGU+PiY+KGhhc2hlcykpOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzLnN3YXAoY29uc3RfY2FzdDxIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNo
TWFwPHVuc2lnbmVkLCBkb3VibGU+PiY+KGhhc2hlcykpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6
OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2lu
LCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgU2Vz
c2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJ
bnRlcmFjdGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2lu
T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CiB7CiAgICAgaWYgKHBhZ2VPcmlnaW4uaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC04
ODYsNyArODg2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVy
YWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QKICAgICBpZiAoIXBsdWdJbk9y
aWdpbkhhc2gpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lv
bklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Pjo6Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0
ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZmluZChzZXNzaW9uSUQpOwor
ICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+Ojpj
b25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2hlcy5maW5kKHNlc3Npb25JRCk7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPjo6Y29u
c3RfaXRlcmF0b3IgaXQ7CiAgICAgYm9vbCBjb250YWlucyA9IGZhbHNlOwogICAgIGlmIChzZXNz
aW9uSXRlcmF0b3IgIT0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZW5kKCkpIHsKQEAg
LTg5NCw3ICs4OTQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50
ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdAogICAgICAgICBjb250YWlu
cyA9IGl0ICE9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCk7CiAgICAgfQogICAgIGlmICgh
Y29udGFpbnMpIHsKLSAgICAgICAgc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXMuZmluZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAgICAg
IHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoUEFM
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgICAgIGl0ID0gc2Vzc2lvbkl0
ZXJhdG9yLT52YWx1ZS5maW5kKHBsdWdJbk9yaWdpbkhhc2gpOwogICAgICAgICBpZiAoaXQgPT0g
c2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEy
MzIsNyArMTIzMiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVsZWFzZVBhZ2VDYWNoZSgpCiAgICAg
UGFnZUNhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpN
ZW1vcnlQcmVzc3VyZSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3
ZWJzaXRlRGF0YVR5cGVzLCBXZWJzaXRlRGF0YSYgd2Vic2l0ZURhdGEpCit2b2lkIFdlYlByb2Nl
c3M6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBXZWJzaXRlRGF0YSYgd2Vic2l0ZURh
dGEpCiB7CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBl
OjpNZW1vcnlDYWNoZSkpIHsKICAgICAgICAgZm9yIChhdXRvJiBvcmlnaW4gOiBNZW1vcnlDYWNo
ZTo6c2luZ2xldG9uKCkub3JpZ2luc1dpdGhDYWNoZShzZXNzaW9uSUQpKQpAQCAtMTI0NSw3ICsx
MjQ1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXQKICAgICB9CiB9CiAKLXZvaWQgV2ViUHJv
Y2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9j
azo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlKQordm9pZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJz
aXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSkKIHsKICAgICBVTlVTRURfUEFSQU0obW9kaWZpZWRTaW5jZSk7CiAK
QEAgLTEyNjIsNyArMTI2Miw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEo
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwCiAgICAgfQogfQog
Ci12b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0
YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lu
RGF0YXMpCit2b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVE
YXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmln
aW5EYXRhcykKIHsKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewogICAgICAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4+IG9yaWdpbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAx
MjNjNGJiMTk4Yy4uM2I1MzMwZDI0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvckludGVycnVwdERp
c3BhdGNoZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0h5c3RlcmVzaXNBY3Rpdml0eS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlm
aWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNTYsMTMgKzU2LDE2IEBA
IG5hbWVzcGFjZSBBUEkgewogY2xhc3MgT2JqZWN0OwogfQogCituYW1lc3BhY2UgUEFMIHsKK2Ns
YXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U7CiBjbGFzcyBDUFVNb25pdG9yOwogY2xhc3MgQ2VydGlmaWNhdGVJbmZv
OwogY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotY2xhc3MgU2Vzc2lv
bklEOwogY2xhc3MgVXNlckdlc3R1cmVUb2tlbjsKIHN0cnVjdCBQbHVnaW5JbmZvOwogc3RydWN0
IFNlY3VyaXR5T3JpZ2luRGF0YTsKQEAgLTEyNiw4ICsxMjksOCBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogICAgIGJvb2wgc2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9yaWdpbihXZWJQYWdlJiwgY29u
c3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSk7Ci0gICAgdm9pZCBwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29u
c3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIHBsdWdJbkRp
ZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBT
dHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6U2Vz
c2lvbklEKTsKKyAgICB2b2lkIHBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcm
IHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBwbHVnSW5EaWRSZWNlaXZlVXNlcklu
dGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5P
cmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lk
IHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3kodWludDhfdCBwb2xpY3ksIGNvbnN0IFN0cmluZyYg
aG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNp
b25TdHJpbmcpOwogICAgIHZvaWQgcmVzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMoY29uc3Qg
SGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgdWludDhfdD4+
PiYpOwogICAgIHZvaWQgY2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpOwpAQCAtMTcwLDEwICsx
NzMsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKIAot
ICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQp
OworICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7
CiAgICAgdm9pZCBlbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJv
Y2VzcygpOwogICAgIHZvaWQgYWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycyYmKTsKLSAgICB2b2lkIGRlc3Ryb3lTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7
CisgICAgdm9pZCBkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHBh
Z2VEaWRFbnRlcldpbmRvdyh1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgcGFnZVdpbGxMZWF2
ZVdpbmRvdyh1aW50NjRfdCBwYWdlSUQpOwpAQCAtMjYyLDEwICsyNjUsMTAgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JikgY29uc3Q7CiAgICAgdm9pZCBmdWxsS2V5Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29s
IGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpOwogCi0gICAgYm9vbCBpc1BsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgV2ViQ29yZTo6U2Vzc2lvbklE
KTsKLSAgICB2b2lkIGRpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1
Z0luT3JpZ2luSGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lLCBXZWJDb3JlOjpTZXNzaW9uSUQp
OworICAgIGJvb2wgaXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9y
aWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRpZEFkZFBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgZG91YmxlIGV4cGlyYXRpb25U
aW1lLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdp
bkRlZmF1bHRIYXNoZXMoY29uc3QgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPiYgaGFzaGVzKTsK
LSAgICB2b2lkIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKGNvbnN0IEhhc2hNYXA8
V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiYgaGFzaGVzKTsK
KyAgICB2b2lkIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKGNvbnN0IEhhc2hNYXA8
UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+JiBoYXNoZXMpOwogCiAg
ICAgdm9pZCBwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCk7CiAKQEAgLTI5Myw5ICsy
OTYsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWxlYXNlUGFnZUNhY2hlKCk7CiAKLSAgICB2
b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiwgV2Vic2l0ZURhdGEmKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdl
YkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSk7Ci0gICAgdm9pZCBkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4m
IG9yaWdpbnMpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdlYnNpdGVEYXRhJik7CisgICAgdm9pZCBkZWxldGVX
ZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSk7CisgICAg
dm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhPiYgb3JpZ2lucyk7CiAKICAgICB2b2lkIHNldE1lbW9yeUNhY2hlRGlzYWJsZWQoYm9vbCk7
CiAKQEAgLTM1NSw3ICszNTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgUmVmUHRyPFdlYklu
c3BlY3RvckludGVycnVwdERpc3BhdGNoZXI+IG1fd2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0
Y2hlcjsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVk
LCBkb3VibGU+PiBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKKyAgICBIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiBtX3BsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9wbHVnSW5BdXRvU3RhcnRPcmln
aW5zOwogCiAgICAgYm9vbCBtX2hhc1NldENhY2hlTW9kZWwgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4MWY4ODdk
MWI0ZS4uMDhmNjk3MTM3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC00NywxNCArNDcsMTQgQEAgbWVzc2FnZXMgLT4gV2ViUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBDbGVhckNhY2hlZENyZWRlbnRpYWxzKCkKIAot
ICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKKyAgICBFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICBBZGRXZWJzaXRlRGF0YVN0b3JlKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzIHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKTsKLSAgICBEZXN0
cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIERlc3Ryb3lTZXNz
aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgICMgUGx1Zy1pbnMuCi0gICAgRGlk
QWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBkb3VibGUgZXhwaXJh
dGlvblRpbWUsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgRGlkQWRkUGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBkb3VibGUgZXhwaXJhdGlvblRpbWUs
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdp
bkRlZmF1bHRIYXNoZXMoSGFzaE1hcDx1aW50MzJfdCxkb3VibGU+IGhhc2hlcykKLSAgICBSZXNl
dFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwg
SGFzaE1hcDx1aW50MzJfdCxkb3VibGU+PiBoYXNoZXMpCisgICAgUmVzZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoZXMoSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1aW50MzJfdCxk
b3VibGU+PiBoYXNoZXMpCiAgICAgU2V0UGx1Z2luTG9hZENsaWVudFBvbGljeSh1aW50OF90IHBv
bGljeSwgU3RyaW5nIGhvc3QsIFN0cmluZyBidW5kbGVJZGVudGlmaWVyLCBTdHJpbmcgdmVyc2lv
blN0cmluZykKICAgICBSZXNldFBsdWdpbkxvYWRDbGllbnRQb2xpY2llcyhIYXNoTWFwPFN0cmlu
ZywgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+IHBsdWdpbkxvYWRD
bGllbnRQb2xpY2llcykKICAgICBDbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkKQEAgLTc3LDkg
Kzc3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBS
ZWxlYXNlUGFnZUNhY2hlKCkKIAotICAgIEZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzKSAtPiAoc3RydWN0IFdlYktpdDo6V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpCi0g
ICAgRGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpIC0+ICgpCi0gICAgRGVs
ZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9y
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgLT4gKCkKKyAgICBGZXRjaFdl
YnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vi
c2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzKSAtPiAoc3RydWN0IFdlYktpdDo6V2Vic2l0
ZURhdGEgd2Vic2l0ZURhdGEpCisgICAgRGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5j
ZSkgLT4gKCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpIC0+ICgp
CiAKICAgICBTZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChpbnQg
bWlsbGlzZWNvbmRzKQogICAgIFNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBmbGFn
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCAyMTkyNzhhMDk3NC4uNjhkNWE5MmI3MGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDgtMTUgIERvbiBPbG1zdGVh
ZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBbUEFMXSBNb3ZlIFNlc3Npb25J
RCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViRGF0YWJh
c2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbik6CisgICAgICAgICog
U3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmg6CisKIDIwMTctMDgtMTAgIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN0b3JlZCBzdm46aWdub3JlIHZhbHVl
cyB0aGF0IHdlbnQgbWlzc2luZyB3aGVuIHRoZSBwcm9qZWN0IGdvdCByZW5hbWVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCmlu
ZGV4IDRkOTU5NjcwOGQ0Li5kMzcxMjNjZmVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcApAQCAtMjUsNyArMjUsNyBAQAog
CiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VQcm92aWRlci5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9T
ZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogV2Vi
RGF0YWJhc2VQcm92aWRlciYgV2ViRGF0YWJhc2VQcm92aWRlcjo6c2luZ2xldG9uKCkKIHsKQEAg
LTQzLDcgKzQzLDcgQEAgV2ViRGF0YWJhc2VQcm92aWRlcjo6fldlYkRhdGFiYXNlUHJvdmlkZXIo
KQogfQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi1XZWJDb3JlOjpJREJDbGllbnQ6
OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlv
blRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkK
K1dlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBXZWJEYXRhYmFzZVBy
b3ZpZGVyOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lv
bklEJiBzZXNzaW9uSUQpCiB7CiAgICAgYXV0byByZXN1bHQgPSBtX2lkYlNlcnZlck1hcC5hZGQo
c2Vzc2lvbklELnNlc3Npb25JRCgpLCBudWxscHRyKTsKICAgICBpZiAocmVzdWx0LmlzTmV3RW50
cnkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFz
ZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92
aWRlci5oCmluZGV4IDJhNGViOTQ2ZWY2Li4zZjUwNmQ3NmMzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCkBAIC00MSw3ICs0MSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJEYXRhYmFzZVByb3ZpZGVyKCk7CiAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Ub1NlcnZlciYgaWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBXZWJD
b3JlOjpTZXNzaW9uSUQmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Ub1NlcnZlciYgaWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBQ
QUw6OlNlc3Npb25JRCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkZWxldGVBbGxEYXRhYmFzZXMo
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ0ZTgyMDc2NjAyLi4w
YjczZDYzYTYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBA
CiAyMDE3LTA4LTE1ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKKyAg
ICAgICAgW1BBTF0gTW92ZSBTZXNzaW9uSUQgaW50byBQQUwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDE5MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJDYWNoZS5tbToKKyAgICAgICAg
KCtbV2ViQ2FjaGUgaW1hZ2VGb3JVUkw6XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFp
blJlc291cmNlTG9hZFRvRG93bmxvYWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAg
KFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uIGNvbnN0KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAgICAg
KiBXZWJLaXRQcmVmaXguaDoKKworMjAxNy0wOC0xNSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0
ZWFkQHNvbnkuY29tPgorCiAgICAgICAgIFtQQUxdIE1vdmUgU2xlZXAgY2xhc3NlcyBpbnRvIFBB
TAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDU2
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNhY2hlLm1tCmluZGV4IDJmNTA4Mjg3
NTBkLi4yNDFiYTJmNzFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlz
Yy9XZWJDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNhY2hl
Lm1tCkBAIC0xOTEsNyArMTkxLDcgQEAKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKLSAgICBXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBXZWJDb3JlOjpNZW1vcnlDYWNoZTo6c2lu
Z2xldG9uKCkucmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIFdlYkNvcmU6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSogY2FjaGVk
UmVzb3VyY2UgPSBXZWJDb3JlOjpNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVzb3VyY2VGb3JS
ZXF1ZXN0KHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAg
IGlmICghaXM8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+KGNhY2hlZFJlc291cmNlKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgV2ViQ29yZTo6Q2FjaGVkSW1hZ2UmIGNhY2hlZEltYWdlID0g
ZG93bmNhc3Q8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+KCpjYWNoZWRSZXNvdXJjZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCAwZmY3N2MwYmY1YS4uNzdlZmQxMmY1MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzgsNiArMzgsMTAgQEAKIEBjbGFzcyBXZWJIaXN0b3J5
SXRlbTsKIEBjbGFzcyBXZWJSZXNvdXJjZTsKIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNz
aW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOwogY2xhc3MgQ2FjaGVkRnJhbWU7CkBAIC00NSw3ICs0OSw2IEBAIGNsYXNzIEhpc3Rv
cnlJdGVtOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVzb3VyY2VMb2FkZXI7CiBj
bGFzcyBSZXNvdXJjZVJlcXVlc3Q7Ci1jbGFzcyBTZXNzaW9uSUQ7CiB9CiAKIGNsYXNzIFdlYkZy
YW1lTG9hZGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50IHsKQEAg
LTcxLDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDIoKSBm
aW5hbDsKICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDMoKSBmaW5hbDsKIAotICAgIHZvaWQg
Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
KiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CisgICAgdm9pZCBjb252ZXJ0
TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBQQUw6
OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwogCiAgICAgdm9pZCBhc3NpZ25JZGVudGlmaWVy
VG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggMWVkMDlmNzhmZDAuLjdiNGZkMTMwOWIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRldGFjaGVkRnJvbVBhcmVudDMoKQogICAgIG1fd2ViRnJhbWUt
Pl9wcml2YXRlLT53ZWJGcmFtZVZpZXcgPSBuaWw7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciog
ZG9jdW1lbnRMb2FkZXIsIFNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciog
ZG9jdW1lbnRMb2FkZXIsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIFdlYlZpZXcg
KndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogICAgIFN1YnJlc291cmNl
TG9hZGVyKiBtYWluUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudExvYWRlci0+bWFpblJlc291cmNl
TG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCAxODY1
Y2E5OWZkMi4uYmEyODExMjdjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5tbQpAQCAtMzIsOCArMzIsOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNv
dXJjZUVycm9yLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TZXR0aW5ncy5oPgorI2ltcG9ydCA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQpA
QCAtNDYsMTQgKzQ2LDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVu
dGlmaWVyXSk7Ci0gICAgcmV0dXJuICpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNz
aW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAgICBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJ
ZGVudGlmaWVyXSk7CisgICAgcmV0dXJuICpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogfQogCiB2
b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KCkpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiB9CiAKIGJvb2wgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0CkBA
IC05NCw3ICs5NCw3IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKS5p
c0VwaGVtZXJhbCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBzZXNzaW9uID0gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQoKSkpCisgICAgICAgIGlmIChhdXRvKiBzZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
KSkKICAgICAgICAgICAgIHJldHVybiAqc2Vzc2lvbjsKICAgICAgICAgLy8gU29tZSByZXF1ZXN0
cyBtYXkgc3RpbGwgYmUgY29taW5nIHNob3J0bHkgYmVmb3JlIFdlYkNvcmUgdXBkYXRlcyB0aGUg
c2Vzc2lvbiBJRCBhbmQgYWZ0ZXIgV2ViS2l0IGRlc3Ryb3lzIHRoZSBwcml2YXRlIGJyb3dzaW5n
IHNlc3Npb24uCiAgICAgICAgIExPR19FUlJPUigiSW52YWxpZCBzZXNzaW9uIElELiBQbGVhc2Ug
ZmlsZSBhIGJ1ZyB1bmxlc3MgeW91IGp1c3QgZGlzYWJsZWQgcHJpdmF0ZSBicm93c2luZywgaW4g
d2hpY2ggY2FzZSBpdCdzIGFuIGV4cGVjdGVkIHJhY2UuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCmluZGV4IGFiMjY0YTZkMjFjLi5mOTBmY2YwMmE0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwogICAgIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBX
ZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwot
ICAgIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikg
b3ZlcnJpZGU7CisgICAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlVSTCYpIG92ZXJyaWRlOwogICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCA5YWFmYTUxZmYxYy4uMWFjMmUxZWMwZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTkzLDcgKzkzLDcgQEAgU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3Qg
TmV0d29ya1N0b3JhZ2UKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCkKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVy
bCkKIHsKICAgICBhdXRvJiBzZXNzaW9uID0gc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgPyBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkgOiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogICAgIHJldHVy
biBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uLCBmaXJzdFBh
cnR5LCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViS2l0UHJl
Zml4LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJLaXRQcmVmaXguaAppbmRleCA3NTNk
OTc3YmI4Mi4uM2RiZDJhODYzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYktpdFByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYktpdFByZWZp
eC5oCkBAIC04Myw3ICs4Myw3IEBAIHR5cGVkZWYgZmxvYXQgQ0dGbG9hdDsKICNlbmRpZgogI2Vu
ZGlmCiAKLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxwYWwvRXhwb3J0TWFj
cm9zLmg+CiAjaW5jbHVkZSA8d3RmL0V4cG9ydE1hY3Jvcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNFeHBvcnRNYWNyb3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRXhwb3J0TWFjcm9z
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2Y2NjI1ZjliMWYuLjAxOGZmMjU2
NzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTct
MDgtMTUgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBb
UEFMXSBNb3ZlIFNlc3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0Q29va2ll
QWNjZXB0UG9saWN5Rm9yQWxsQ29udGV4dHMpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbiBjb25zdCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAg
ICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAy
MDE3LTA4LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q2FjaGUgQVBJXSBBZGRpbmcgZ2VuZXJpYyBzdXBwb3J0IGZvciBDYWNoZVN0b3JhZ2UgYW5kIENh
Y2hlIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAzMmFiODJlNjQ0
Ny4uZGUyODYxNDcwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE1MSw3
ICsxNTEsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQz
KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3Vt
ZW50TG9hZGVyLCBTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3Vt
ZW50TG9hZGVyLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBDT01QdHI8SVdlYkRv
d25sb2FkRGVsZWdhdGU+IGRvd25sb2FkRGVsZWdhdGU7CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3
ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZmYwZDk0ZTg2ZTIuLmFkM2Q2
NmUwOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MigpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZGV0YWNoZWRGcm9tUGFyZW50MygpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXZWJDb3JlOjpT
ZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFs
UmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKaW5kZXggMDkwM2I4NjVkNjkuLjg1OTNi
MmIwMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApAQCAtNTMs
NyArNTMsNyBAQCB2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2Vw
dFBvbGljeUZvckFsbENvbnRleHRzKFdlYktpdENvb2tpZQogICAgIGlmIChSZXRhaW5QdHI8Q0ZI
VFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZSA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpKQogICAgICAgICBDRkhU
VFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCks
IHBvbGljeSk7CiAKLSAgICBpZiAoYXV0byBwcml2YXRlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KCkpKQorICAgIGlmIChhdXRvIHByaXZhdGVTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
KSkKICAgICAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBvbGljeShwcml2
YXRlU2Vzc2lvbi0+Y29va2llU3RvcmFnZSgpLmdldCgpLCBwb2xpY3kpOwogfQogI2VuZGlmCkBA
IC03MCw3ICs3MCw3IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiAjaWYgVVNFKENGVVJMQ09O
TkVDVElPTikKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKGF1dG8gcHJp
dmF0ZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSkKKyAgICBpZiAoYXV0byBwcml2YXRlU2Vz
c2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9u
SUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpCiAgICAgICAgIHJldHVybiAqcHJpdmF0ZVNl
c3Npb247CiAKICAgICBTdHJpbmcgYmFzZTsKQEAgLTgxLDE3ICs4MSwxNyBAQCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oKQogICAgIH0gZWxzZQogICAgICAgICBiYXNlID0gaWRlbnRpZmllckJhc2Uo
KTsKIAotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgYmFzZSk7CisgICAgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCksIGJhc2UpOwogCiAjZW5kaWYKLSAgICBy
ZXR1cm4gKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgIHJldHVybiAqTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKTsKIH0KIAogdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbigpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAg
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQ
cml2YXRlU2Vzc2lvbklEKCkpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJveVNl
c3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiB9CiAKIFJl
c291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKQEAgLTEwNCw3ICsxMDQsNyBAQCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNz
aW9uKCkgY29uc3QKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgaWYgKGZyYW1l
KCkgJiYgZnJhbWUoKS0+cGFnZSgpLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpKQotICAgICAgICBy
ZXR1cm4gKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgICAgICByZXR1cm4gKk5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSk7CiAKICAgICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3Rv
cmFnZVNlc3Npb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDRj
ZThjOTk4YTQxLi4xYzM0NjE4NzUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
CkBAIC05MCw3ICs5MCw3IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlCiAgICAgcmV0dXJuIFdl
YkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHks
IHVybCk7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgYXV0byYgc2Vz
c2lvbiA9IHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpID8gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpIDogTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggMmMxMzkyNzA1ZWUuLjE2NDM3ZjU1MGYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlVSTCYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChj
b25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpOwogICAgIHZpcnR1YWwgU3RyaW5nIGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
VVJMJik7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
V2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlVSTCYpOworICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlVSTCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNv
bnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4m
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318190</attachid>
            <date>2017-08-15 16:04:54 -0700</date>
            <delta_ts>2017-08-16 16:07:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174192.diff</filename>
            <type>text/plain</type>
            <size>390365</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDk2ODE4MDg4YzguLmMxM2Q4NGJmNTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjE1OCw3ICsyMTU4LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEu
Y3BwCiAgICAgcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKLSAgICBwYWdlL1Nlc3Npb25JRC5jcHAK
ICAgICBwYWdlL1NldHRpbmdzLmNwcAogICAgIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCiAgICAg
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MDAzNjM1NDRhZi4uNGI2
YTI1ZWRhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMTQgQEAKIDIwMTctMDgtMTUgIERvbiBP
bG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAorICAgICAgICBbUEFMXSBNb3ZlIFNl
c3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0
KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXNzaW9u
SUQgY29uc3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVsZW1lbnRXaXRoSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVu
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrc0FyZVJlYWR5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFMb2FkaW5nRmFpbGVkRmF0YWxseSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUxvYWRpbmdGYWlsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphZGRQbGF5ZWRSYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWVrVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpyZWZyZXNoQ2FjaGVkVGltZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFdlYmtpdFByZXNlcnZlc1BpdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojp0b2dnbGVQbGF5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6YmVnaW5TY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlbW92ZVRleHRUcmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpjb250cm9sbGVySlNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50Ojpjb25maWd1cmVUZXh0VHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojpzb3VyY2VXYXNBZGRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50Ojpzb3VyY2VXYXNSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cG90ZW50aWFsbHlQbGF5aW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkUGxheWJhY2sgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RvcHBlZER1ZVRvRXJyb3JzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6aXNGdWxsc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnRvZ2dsZVN0YW5kYXJkRnVsbHNjcmVlblN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJlZEZvcklubGluZVRoZW4pOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlVGV4dFRyYWNrRGlzcGxheSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFj
a0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFH
cm91cCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVy
Rm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aXNCbG9j
a2VkT25NZWRpYUNvbnRyb2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cHJlcGFyZU1lZGlhRnJhZ21lbnRVUkkpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpmaWxlU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVNlc3Npb25UaXRsZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpuZWVkc1NlZWtpbmdTdXBwb3J0UXVpcmspOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6c3VwcG9ydHNTZWVraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmRvZXNIYXZlQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmlzVmlkZW9Ub29TbWFsbEZvcklubGluZVBsYXliYWNr
KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZEZvbnQ6OkNhY2hlZEZvbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250
Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2Vz
c2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0Rv
Y3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0RvY3VtZW50Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udCk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6Q2Fj
aGVkU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0Lmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFRleHRUcmFjay5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xT
dHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhTTFN0eWxlU2hlZXQ6OkNh
Y2hlZFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHls
ZVNoZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpzZXNzaW9uUmVzb3VyY2VNYXAgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpmb3JFYWNoU2Vzc2lvblJlc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6b3JpZ2luc1dpdGhDYWNoZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZpY3RSZXNvdXJjZXMpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25p
dG9yQ29jb2EuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6OnNlc3Npb25J
RCBjb25zdCk6CisgICAgICAgICogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2lu
Z1N0b3JlQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6RGlz
a0NhY2hlTW9uaXRvcik6CisgICAgICAgICogcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oOgor
ICAgICAgICAqIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmVuYWJsZUxlZ2FjeVByaXZhdGVCcm93c2luZyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vzc2lvbklE
KToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1BsdWdJbkNsaWVudC5o
OgorICAgICAgICAqIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6CisgICAgICAgICogcGFn
ZS9Tb2NrZXRQcm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL0Nvb2tpZXNTdHJhdGVneS5o
OgorICAgICAgICAqIHBsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHA6CisgICAg
ICAgIChXVEY6OlBBTDo6U2Vzc2lvbklEPjo6Y29weSk6CisgICAgICAgIChXVEY6OldlYkNvcmU6
OlNlc3Npb25JRD46OmNvcHkpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1dlYkNvcmVD
cm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhlYWRlclZhbHVlRm9yVmFyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OnZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb246Omdsb2JhbFNlc3Npb25NYXApOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3Jh
Z2VTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVT
ZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
Q0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29j
a2V0U3RyZWFtSGFuZGxlSW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Nv
Y2tldFN0cmVhbUhhbmRsZUltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhh
bmRsZUltcGw6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3
VGVzdGluZ1Nlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVh
bUhhbmRsZUltcGw6OmNyZWF0ZSk6CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRocmVhZDo6
RGVkaWNhdGVkV29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVk
aWNhdGVkV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxT
Y29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkU3RhcnR1cERh
dGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6V29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25QYXJhbWV0ZXJz
Lmg6CisKKzIwMTctMDgtMTUgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4K
KwogICAgICAgICBbUEFMXSBNb3ZlIFNsZWVwIGNsYXNzZXMgaW50byBQQUwKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ1NgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAK
aW5kZXggZjEyMWUyNTFkY2MuLjdiNTFlYzMxNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0xMjAsNyAr
MTIwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgcmVxdWVz
dGVkVVJMLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQogICAgIGlmIChGcmFtZSogZnJhbWUgPSBt
X2RvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgIHJlZigpOwogICAgICAgICBQYWdlKiBwYWdl
ID0gZnJhbWUtPnBhZ2UoKTsKLSAgICAgICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IHBhZ2UgPyBw
YWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAgICAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBwYWdlID8gcGFnZS0+c2Vzc2lvbklEKCkgOiBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgICAgICBTdHJpbmcgcGFydGl0
aW9uID0gbV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLmRvbWFpbkZv
ckNhY2hlUGFydGl0aW9uKCk7CiAgICAgICAgIG1faGFuZGxlID0gbV9zb2NrZXRQcm92aWRlci0+
Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKG1faGFuZHNoYWtlLT51cmwoKSwgKnRoaXMsIHNlc3Np
b25JRCwgcGFydGl0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjYzZjNDAzODc0
Mi4uNTVjNjE1OTdmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDE3
LTA4LTE1ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKKyAgICAgICAg
W1BBTF0gTW92ZSBTZXNzaW9uSUQgaW50byBQQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDE5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGFsL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHBhbC9pZGVudGlmaWVyL1Nl
c3Npb25JRC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5j
cHAuCisgICAgICAgICogcGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oLgorICAgICAgICAoV1RGOjpTZXNzaW9uSURI
YXNoOjpoYXNoKToKKyAgICAgICAgKFdURjo6U2Vzc2lvbklESGFzaDo6ZXF1YWwpOgorICAgICAg
ICAoV1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6ZW1wdHlWYWx1ZSk6CisgICAgICAg
IChXVEY6Okhhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUp
OgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFBBTDo6U2Vzc2lvbklEPjo6aXNEZWxldGVkVmFs
dWUpOgorCisyMDE3LTA4LTE1ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+
CisKICAgICAgICAgW1BBTF0gTW92ZSBTbGVlcCBjbGFzc2VzIGludG8gUEFMCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0NTYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5NDQ4
MWVlZjkwLi44YzA4ZTI1NmJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzUsNiArNzUsOCBAQAogCQlBM0FCNkU2MTFGM0Qx
RTM5MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBM0FCNkU1RjFGM0QxRTM5MDA5QzE0QjEgLyogU2xl
ZXBEaXNhYmxlckNvY29hLmggKi87IH07CiAJCUEzQUI2RTY0MUYzRDIxN0YwMDlDMTRCMSAvKiBT
eXN0ZW1TbGVlcExpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBM0FCNkU2MjFGM0QyMTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0
ZW5lck1hYy5oICovOyB9OwogCQlBM0FCNkU2NTFGM0QyMTdGMDA5QzE0QjEgLyogU3lzdGVtU2xl
ZXBMaXN0ZW5lck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEEzQUI2RTYzMUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFj
Lm1tICovOyB9OworCQlBM0RCQURCNDFGNDM3MDM0MDAwRUEwNEQgLyogU2Vzc2lvbklELmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzREJBREIyMUY0
MzcwMzQwMDBFQTA0RCAvKiBTZXNzaW9uSUQuY3BwICovOyB9OworCQlBM0RCQURCNTFGNDM3MDM0
MDAwRUEwNEQgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBM0RCQURCMzFGNDM3MDM0MDAwRUEwNEQgLyogU2Vzc2lvbklELmggKi87
IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29udGFp
bmVySXRlbVByb3h5IHNlY3Rpb24gKi8KQEAgLTE0OCw2ICsxNTAsOCBAQAogCQlBM0FCNkU1RjFG
M0QxRTM5MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlckNvY29hLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFNsZWVwRGlzYWJsZXJDb2NvYS5oOyBwYXRoID0gc3lzdGVtL2NvY29h
L1NsZWVwRGlzYWJsZXJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBM0FC
NkU2MjFGM0QyMTdGMDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLmg7IHBhdGgg
PSBzeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTNBQjZFNjMxRjNEMjE3RjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVu
ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTeXN0ZW1T
bGVlcExpc3RlbmVyTWFjLm1tOyBwYXRoID0gc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVy
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBM0RCQURCMjFGNDM3MDM0MDAw
RUEwNEQgLyogU2Vzc2lvbklELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFNlc3Npb25JRC5jcHA7IHBhdGggPSBpZGVudGlmaWVyL1Nlc3Npb25JRC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEzREJBREIzMUY0MzcwMzQwMDBFQTA0RCAvKiBTZXNz
aW9uSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2Vzc2lvbklELmg7IHBh
dGggPSBpZGVudGlmaWVyL1Nlc3Npb25JRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMjE0N0E0QTFFRkQwQUE2MDAwNTZGQTUgLyogQ29weVBBTEhlYWRlcnMueGNjb25maWcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQ29weVBBTEhlYWRlcnMueGNjb25maWc7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9u
ICovCiAKQEAgLTI1MSw2ICsyNTUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKIAkJCQkxQzA5RDA1MTFFMzFDNDEyMDA3MjVGMTggLyogY3J5cHRvICovLAorCQkJCUEz
REJBREIxMUY0MzcwMUIwMDBFQTA0RCAvKiBpZGVudGlmaWVyICovLAogCQkJCTBDMkRBMDY1MUYz
M0NBMzMwMERCQzMxNyAvKiBzcGkgKi8sCiAJCQkJQTM3ODhFOUYxRjA1QjdDRTAwNjc5NDI1IC8q
IHN5c3RlbSAqLywKIAkJCQlBMzBENDExRDFGMEREMEFDMDBCNzE5NTQgLyogdGV4dCAqLywKQEAg
LTM0MSw2ICszNDYsMTUgQEAKIAkJCW5hbWUgPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCUEzREJBREIxMUY0MzcwMUIwMDBFQTA0RCAvKiBpZGVudGlmaWVyICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlBM0RCQURCMjFG
NDM3MDM0MDAwRUEwNEQgLyogU2Vzc2lvbklELmNwcCAqLywKKwkJCQlBM0RCQURCMzFGNDM3MDM0
MDAwRUEwNEQgLyogU2Vzc2lvbklELmggKi8sCisJCQkpOworCQkJbmFtZSA9IGlkZW50aWZpZXI7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogLyogRW5kIFBCWEdyb3VwIHNlY3Rp
b24gKi8KIAogLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMzQ4
LDEyICszNjIsOSBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQTNBQjZFNTYxRjNEMURE
QjAwOUMxNEIxIC8qIFNsZWVwRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUEzQUI2RTYx
MUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyQ29jb2EuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBDMkRBMTNFMUYzQkVCNDkwMERCQzMxNyAvKiBBVktpdFNQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEMyREEwNkQxRjMzQ0E4NDAwREJDMzE3IC8qIENGTG9jYWxlU1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTA2RTFGMzNDQTg0MDBEQkMzMTcgLyogQ0ZOZXR3b3JrQ29ubmVjdGlv
bkNhY2hlU1BJLmggaW4gSGVhZGVycyAqLywKLQkJCQlBM0FCNkU2NDFGM0QyMTdGMDA5QzE0QjEg
LyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREEwNkYx
RjMzQ0E4NDAwREJDMzE3IC8qIENGTmV0d29ya1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMy
REExM0YxRjNCRUI0OTAwREJDMzE3IC8qIENGTlNVUkxDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTA3MDFGMzNDQTg0MDBEQkMzMTcgLyogQ0ZVdGlsaXRpZXNTUEkuaCBp
biBIZWFkZXJzICovLApAQCAtMzg2LDEyICszOTcsMTYgQEAKIAkJCQkwQzJEQTE1MjFGM0JFQjQ5
MDBEQkMzMTcgLyogTlNVUkxDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJE
QTE1MzFGM0JFQjQ5MDBEQkMzMTcgLyogTlNVUkxEb3dubG9hZFNQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEMyREExNTQxRjNCRUI0OTAwREJDMzE3IC8qIE5TVVJMRmlsZVR5cGVNYXBwaW5nc1NQ
SS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTNBQjZFNTgxRjNEMUREQjAwOUMxNEIxIC8qIFN5c3Rl
bVNsZWVwTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU1MUYzQkVCNDkwMERC
QzMxNyAvKiBQYXNzS2l0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE1NjFGM0JFQjQ5
MDBEQkMzMTcgLyogcHRocmVhZFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTcxRjNC
RUI0OTAwREJDMzE3IC8qIFF1YXJ0ekNvcmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRB
MTU4MUYzQkVCNDkwMERCQzMxNyAvKiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQlB
M0RCQURCNTFGNDM3MDM0MDAwRUEwNEQgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBM0FCNkU1NjFGM0QxRERCMDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTNBQjZFNjExRjNEMUUzOTAwOUMxNEIxIC8qIFNsZWVwRGlzYWJsZXJDb2NvYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlBM0FCNkU1ODFGM0QxRERCMDA5QzE0QjEgLyogU3lzdGVtU2xl
ZXBMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTNBQjZFNjQxRjNEMjE3RjAwOUMxNEIx
IC8qIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU5
MUYzQkVCNDkwMERCQzMxNyAvKiBXZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAt
NDgxLDE1ICs0OTYsMTYgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCUEzQUI2RTY1MUYz
RDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0
by5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBM0FCNkU1MjFGM0QxREM1MDA5QzE0QjEgLyogU2xl
ZXBEaXNhYmxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBM0FCNkU2MDFGM0QxRTM5MDA5QzE0
QjEgLyogU2xlZXBEaXNhYmxlckNvY29hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0MTI1
MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEz
MEQ0MTIyMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQTNEQkFEQjQxRjQzNzAzNDAwMEVBMDREIC8qIFNlc3Npb25JRC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBM0FCNkU1MjFGM0QxREM1MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlBM0FCNkU2MDFGM0QxRTM5MDA5QzE0QjEgLyogU2xlZXBEaXNh
YmxlckNvY29hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzNzg4RTlFMUYwNUI3OEUwMDY3OTQy
NSAvKiBTb3VuZE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEzNzg4RTlDMUYwNUI3ODIwMDY3
OTQyNSAvKiBTb3VuZE5vbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNBQjZFNTcxRjNEMURE
QjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QTNBQjZFNjUxRjNEMjE3RjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0NNYWtlTGlzdHMudHh0CmluZGV4IDYxNDNl
OTRmNTkxLi5lOWIwNWMyYzNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0NNYWtlTGlzdHMudHh0
CkBAIC0xLDQgKzEsNSBAQAogc2V0KFBBTF9TT1VSQ0VTCisgICAgaWRlbnRpZmllci9TZXNzaW9u
SUQuY3BwCiAgICAgc3lzdGVtL1NsZWVwRGlzYWJsZXIuY3BwCiAgICAgc3lzdGVtL1N5c3RlbVNs
ZWVwTGlzdGVuZXIuY3BwCiApCkBAIC0xMCw2ICsxMSw3IEBAIHNldChQQUxfSU5DTFVERV9ESVJF
Q1RPUklFUwogc2V0KFBBTF9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtQQUxf
RElSfS9wYWwiCiAgICAgIiR7UEFMX0RJUn0vcGFsL2NyeXB0byIKKyAgICAiJHtQQUxfRElSfS9w
YWwvaWRlbnRpZmllciIKICAgICAiJHtQQUxfRElSfS9wYWwvc3lzdGVtIgogICAgICIke1BBTF9E
SVJ9L3BhbC90ZXh0IgogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9u
SUQuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5jcHAK
c2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9TZXNz
aW9uSUQuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmNwcAppbmRleCAyZTE1OTUwOGM3Mi4uYzQyMzVlNGQ5N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFBB
TCB7CiAKIHN0YXRpYyB1aW50NjRfdCBjdXJyZW50UGVyc2lzdGVudElEID0gU2Vzc2lvbklEOjpE
ZWZhdWx0U2Vzc2lvbklEOwogc3RhdGljIHVpbnQ2NF90IGN1cnJlbnRFcGhlbWVyYWxJRCA9IFNl
c3Npb25JRDo6TGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKQEAgLTYwLDQgKzYwLDQgQEAgU2Vzc2lv
bklEIFNlc3Npb25JRDo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICByZXR1cm4gU2Vzc2lvbklE
IHsgbV9zZXNzaW9uSUQgfTsKIH0KIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1l
c3BhY2UgUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oCnNpbWlsYXJpdHkg
aW5kZXggODAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmgKcmVu
YW1lIHRvIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaAppbmRl
eCAzNzhmNjg5ZDE3NC4uZGVmNDk3ZTk0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2Vzc2lvbklELmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9pZGVudGlmaWVyL1Nl
c3Npb25JRC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Citu
YW1lc3BhY2UgUEFMIHsKIAogY2xhc3MgU2Vzc2lvbklEIHsKIHB1YmxpYzoKQEAgLTUzLDkgKzUz
LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lv
bklEICE9IEhhc2hUYWJsZUVtcHR5VmFsdWVJRCAmJiBtX3Nlc3Npb25JRCAhPSBIYXNoVGFibGVE
ZWxldGVkVmFsdWVJRDsgfQogICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdCB7IHJldHVybiBt
X3Nlc3Npb25JRCAmIEVwaGVtZXJhbFNlc3Npb25NYXNrICYmIG1fc2Vzc2lvbklEICE9IEhhc2hU
YWJsZURlbGV0ZWRWYWx1ZUlEOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU2Vzc2lv
bklEIGdlbmVyYXRlRXBoZW1lcmFsU2Vzc2lvbklEKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFNlc3Npb25JRCBnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOworICAgIFBB
TF9FWFBPUlQgc3RhdGljIFNlc3Npb25JRCBnZW5lcmF0ZUVwaGVtZXJhbFNlc3Npb25JRCgpOwor
ICAgIFBBTF9FWFBPUlQgc3RhdGljIFNlc3Npb25JRCBnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9u
SUQoKTsKKyAgICBQQUxfRVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZUdlbmVyYXRpb25Qcm90ZWN0
aW9uKCk7CiAKICAgICB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Np
b25JRDsgfQogICAgIGJvb2wgb3BlcmF0b3I9PShTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdCB7
IHJldHVybiBtX3Nlc3Npb25JRCA9PSBzZXNzaW9uSUQubV9zZXNzaW9uSUQ7IH0KQEAgLTkzLDIy
ICs5MywyMiBAQCBib29sIFNlc3Npb25JRDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlc3Np
b25JRCYgc2Vzc2lvbklEKQogICAgIHJldHVybiB0cnVlOwogfQogCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCit9IC8vIG5hbWVzcGFjZSBQQUwKIAogbmFtZXNwYWNlIFdURiB7CiAKIHN0cnVjdCBT
ZXNzaW9uSURIYXNoIHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJDb3JlOjpT
ZXNzaW9uSUQmIHApIHsgcmV0dXJuIGludEhhc2gocC5zZXNzaW9uSUQoKSk7IH0KLSAgICBzdGF0
aWMgYm9vbCBlcXVhbChjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIGEsIGNvbnN0IFdlYkNvcmU6
OlNlc3Npb25JRCYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgUEFMOjpTZXNzaW9uSUQmIHApIHsgcmV0dXJuIGludEhhc2gocC5zZXNzaW9uSUQo
KSk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBQQUw6OlNlc3Npb25JRCYgYSwgY29u
c3QgUEFMOjpTZXNzaW9uSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQogICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07Ci10ZW1wbGF0
ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25JRD4gOiBHZW5lcmljSGFzaFRy
YWl0czxXZWJDb3JlOjpTZXNzaW9uSUQ+IHsKLSAgICBzdGF0aWMgV2ViQ29yZTo6U2Vzc2lvbklE
IGVtcHR5VmFsdWUoKSB7IHJldHVybiBXZWJDb3JlOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklE
KCk7IH0KK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+IDogR2Vu
ZXJpY0hhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+IHsKKyAgICBzdGF0aWMgUEFMOjpTZXNzaW9u
SUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFBBTDo6U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgp
OyB9CiAKLSAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6U2Vz
c2lvbklEJiBzbG90KSB7IHNsb3QgPSBXZWJDb3JlOjpTZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0
ZWRWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29y
ZTo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90ID09IFdlYkNvcmU6OlNlc3Npb25JRDo6
aGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxl
dGVkVmFsdWUoUEFMOjpTZXNzaW9uSUQmIHNsb3QpIHsgc2xvdCA9IFBBTDo6U2Vzc2lvbklEOjpo
YXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVl
KGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzbG90KSB7IHJldHVybiBzbG90ID09IFBBTDo6U2Vzc2lv
bklEOjpoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQogfTsKLXRlbXBsYXRlPD4gc3RydWN0IERl
ZmF1bHRIYXNoPFdlYkNvcmU6OlNlc3Npb25JRD4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVs
dEhhc2g8UEFMOjpTZXNzaW9uSUQ+IHsKICAgICB0eXBlZGVmIFNlc3Npb25JREhhc2ggSGFzaDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA0OWJjNWQwNGIyOS4uNDYzM2I4YzRhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxOTMsNyArMjE5Myw2
IEBACiAJCTUxMUVGMkNBMTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQlRyYW5zYWN0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVGMkI0MTdG
MEZDNDgwMEU0RkExNiAvKiBKU0lEQlRyYW5zYWN0aW9uLmNwcCAqLzsgfTsKIAkJNTExRUYyQ0Ix
N0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2OTIzOTkxMTUwNUUxQUEwMDlF
NTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgKi87IH07CiAJCTUxMUVGMkQxMTdG
MEZERjEwMEU0RkExNiAvKiBKU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVGMkNFMTdGMEZERjEwMEU0RkEx
NiAvKiBKU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcCAqLzsgfTsKLQkJNTExRjdENDQxRUIxQzM5
MTAwRTQ3QjgzIC8qIFNlc3Npb25JRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTFGN0Q0MzFFQjFDMzg5MDBFNDdCODMgLyogU2Vzc2lvbklELmNw
cCAqLzsgfTsKIAkJNTEyMEJCQUUxRjFDRThDRTAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNl
cnZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MjBCQkFDMUYxQ0U3NzAwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIubW0gKi87IH07
CiAJCTUxMjBCQkFGMUYxQ0VDRTcwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjBCQkFEMUYx
Q0U3NzAwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTJCREI0QTFDNDU2RkY1MDA2NDk0
REYgLyogU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkJEQjQ4MUM0NTZGQUIwMDY0OTRERiAvKiBTUUxpdGVJ
REJCYWNraW5nU3RvcmUuY3BwICovOyB9OwpAQCAtMzAwMCw3ICsyOTk5LDYgQEAKIAkJNzU0MTMz
QUExMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTkxMDJFMDBGNDAw
MDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwICovOyB9OwogCQk3NTUzQ0ZFODEw
OEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUg
LyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NTNDRkU5MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeS5jcHAgKi87IH07Ci0JCTc1NkIyQ0UxMThCNzEwMTYwMEZFQ0ZBQSAv
KiBTZXNzaW9uSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTc5M0U4MzBEMENFMEIzMDA3
RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQu
Y3BwICovOyB9OwogCQk3NTc5M0U4NDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MTBE
MENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi87IH07CiAJCTc1NzkzRUM4MEQwQ0U3
MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VDNjBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNz
YWdlRXZlbnQuY3BwICovOyB9OwpAQCAtOTkzNCw3ICs5OTMyLDYgQEAKIAkJNTExRUYyQjMxN0Yw
RkM0ODAwRTRGQTE2IC8qIEpTSURCUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lE
QlJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFRjJCNDE3RjBG
QzQ4MDBFNEZBMTYgLyogSlNJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0lEQlRyYW5zYWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRUYy
Q0UxN0YwRkRGMTAwRTRGQTE2IC8qIEpTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJPYmplY3RTdG9yZUN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMUY3RDQzMUVCMUMzODkwMEU0N0I4MyAv
KiBTZXNzaW9uSUQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Vz
c2lvbklELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRkFFQTkxQkRDOTg5
QTAwQjRBRkU0IC8qIFRocmVhZFNhZmVEYXRhQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRocmVhZFNhZmVEYXRhQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMjBCQkFDMUYxQ0U3NzAwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb29raWVTdG9y
YWdlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjBCQkFEMUYx
Q0U3NzAwMEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ29va2llU3RvcmFnZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMTAyOCw3ICsxMTAyNSw2IEBACiAJCTc1NDEzM0E5MTAyRTAwRjQw
MDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVS
ZWNvcmRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNzEw
OEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNz
aW9uSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vzc2lvbklELmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBN
ZXNzYWdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1l
c3NhZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzkzRTgxMEQw
Q0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lc3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
NTc5M0U4MjBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEyNDkwLDggKzEyNDg2LDggQEAKIAkJOUIwOThCREUxRjNENjczRDAwMkRENTYyIC8qIEpT
RGF0YVRyYW5zZmVySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rh
dGFUcmFuc2Zlckl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwOThCREYx
RjNENjczRDAwMkRENTYyIC8qIEpTRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDk4QkUwMUYzRDY3M0QwMDJERDU2MiAvKiBK
U0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRGF0YVRyYW5zZmVySXRlbUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OUIwOThCRTYxRjNENkFGNjAwMkRENTYyIC8qIEpTU3RyaW5nQ2FsbGJhY2suY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNTdHJpbmdDYWxsYmFjay5jcHA7IHBhdGgg
PSBKU1N0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUIw
OThCRTcxRjNENkFGNjAwMkRENTYyIC8qIEpTU3RyaW5nQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSlNTdHJpbmdDYWxsYmFjay5oOyBwYXRoID0gSlNTdHJpbmdD
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjA5OEJFNjFGM0Q2QUY2
MDAyREQ1NjIgLyogSlNTdHJpbmdDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1N0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOUIwOThCRTcxRjNENkFGNjAwMkRENTYyIC8qIEpTU3RyaW5nQ2FsbGJhY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdDYWxsYmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjBGRTg3MzFEOUUwMkRGMDA0QThBQ0IgLyogRG9j
dW1lbnRPclNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50T3JT
aGFkb3dSb290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxMzI1N0IxRjNE
MkFCQTAwREFBQjY5IC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8qIFNoYWRvd1Jv
b3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTk0NDEsOCArMTk0MzcsNiBAQAogCQkJCUJDRDBFMEY5MEU5
NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLywKIAkJCQk5NzREMkRBMjE0
NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuY3BwICovLAogCQkJCTk3NEQyREEzMTQ2
QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5oICovLAotCQkJCTUxMUY3RDQzMUVCMUMz
ODkwMEU0N0I4MyAvKiBTZXNzaW9uSUQuY3BwICovLAotCQkJCTc1NkIyQ0UwMThCNzEwMTYwMEZF
Q0ZBQSAvKiBTZXNzaW9uSUQuaCAqLywKIAkJCQkxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIgLyog
U2V0dGluZ3MuY3BwICovLAogCQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5n
cy5oICovLAogCQkJCUJDNTlERUY4MTY5REVEQzMwMDE2QUMzNCAvKiBTZXR0aW5ncy5pbiAqLywK
QEAgLTI5NDczLDI0ICsyOTQ2NywxNSBAQAogCQkJCTUxNkY3RjZEMUMzMUUzOUEwMEYxMTFEQyAv
KiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDkzQUVFMzE5REY1
NjQxMDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFGMTc1NUQxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTUxODJDMjNGMUYzMTNBMDkwMDU5QkE3QyAvKiBTZXJ2aWNlV29ya2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU1RjFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdv
cmtlckNvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE4MkMyNDExRjMxM0EwOTAwNTlC
QTdDIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3
NTYxMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTUxODJDMjQzMUYzMTNBMDkwMDU5QkE3QyAvKiBTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTYzMUYzRUJDODMwMEM3NDk1MCAv
KiBTZXJ2aWNlV29ya2VySm9iLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTFDQTY3RTFGMzkwNUE2
MDAxOUUwNzQgLyogU2VydmljZVdvcmtlckpvYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1
NjQxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJKb2JDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTUxMUNBNjgwMUYzOTMzMUYwMDE5RTA3NCAvKiBTZXJ2aWNlV29ya2VySm9iQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTFDQTY3QTFGMzkwNEIxMDAxOUUwNzQgLyogU2Vy
dmljZVdvcmtlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2NjFGM0VCQzgz
MDBDNzQ5NTAgLyogU2VydmljZVdvcmtlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUYxNzU2ODFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTE4MkMyNDUxRjMxM0EwOTAwNTlCQTdDIC8qIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTY5MUYzRUJDODMwMEM3
NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFGMTc1NkIxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2QzFGM0VCQzgzMDBDNzQ5
NTAgLyogU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmggaW4gSGVhZGVycyAqLywKLQkJCQk1
MUYxNzRGRjFGMzU4OTk3MDBDNzQ5NTAgLyogU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk3NTZCMkNFMTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklE
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxMDA5OUU2NDkyMDA1NkU1ODEgLyogU2V0Tm9k
ZUF0dHJpYnV0ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUI4REJEQjRDMTMwQjBGOEEw
MEY1Q0RCMSAvKiBTZXRTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Yx
OTk0RjA4MjQ1RTU5MDAxRTlBQkMgLyogU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLApAQCAtMzMz
MzgsMjAgKzMzMzIzLDEyIEBACiAJCQkJNTE2RjdGNkUxQzMxRTM5QzAwRjExMURDIC8qIFNlcnZl
ck9wZW5EQlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5M0FFRTQxOURGNTY0MTAw
MkE4NkMzIC8qIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MUYxNzU1QzFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlci5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk1MTgyQzIzRTFGMzEzQTA5MDA1OUJBN0MgLyogU2VydmljZVdvcmtlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MUYxNzU1RTFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdv
cmtlckNvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTgyQzI0MDFGMzEzQTA5MDA1
OUJBN0MgLyogU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1
MTgyQzI0MjFGMzEzQTA5MDA1OUJBN0MgLyogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxRjE3NTYwMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMTc1NjIxRjNFQkM4MzAw
Qzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJKb2IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTExQ0E2
N0QxRjM5MDVBNjAwMTlFMDc0IC8qIFNlcnZpY2VXb3JrZXJKb2IuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNTExQ0E2NzkxRjM5MDRCMTAwMTlFMDc0IC8qIFNlcnZpY2VXb3JrZXJQcm92aWRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYxNzU2NTFGM0VCQzgzMDBDNzQ5NTAgLyogU2Vydmlj
ZVdvcmtlclByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjE3NTY3MUYzRUJDODMw
MEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTUxODJDMjQ0MUYzMTNBMDkwMDU5QkE3QyAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjE3NTZBMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1
MTFDQTY4MzFGM0EzQ0Q5MDAxOUUwNzQgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblBhcmFt
ZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTExRjdENDQxRUIxQzM5MTAwRTQ3QjgzIC8q
IFNlc3Npb25JRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUwRjA5OUU2NDkyMDA1NkU1
ODEgLyogU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjhE
QkRCNEIxMzBCMEY4QTAwRjVDREIxIC8qIFNldFNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTRDOUE1RUEwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZmE3MDhjZWU4NjUuLmY3MmZl
ZTdlNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ2NzEsNyArNDY3MSw3IEBAIFVS
TCBEb2N1bWVudDo6Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiAgICAgcmV0
dXJuIGNvbXBsZXRlVVJMKHVybCwgbV9iYXNlVVJMKTsKIH0KIAotU2Vzc2lvbklEIERvY3VtZW50
OjpzZXNzaW9uSUQoKSBjb25zdAorUEFMOjpTZXNzaW9uSUQgRG9jdW1lbnQ6OnNlc3Npb25JRCgp
IGNvbnN0CiB7CiAgICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IG1fc2Vzc2lvbklEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBjZmI3MjA1MDE2Yi4uZjM2MjA2
OWVlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAi
UmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlN0cmluZ1dp
dGhEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRl
eHRSZXNvdXJjZURlY29kZXIuaCIKQEAgLTU0LDYgKzUzLDcgQEAKICNpbmNsdWRlICJVc2VyQWN0
aW9uRWxlbWVudFNldC5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVk
ZSA8bWVtb3J5PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC02NDIsNyArNjQyLDcgQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwog
ICAgIFVSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBVUkwmIGJhc2VVUkxPdmVy
cmlkZSkgY29uc3Q7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOworICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOwogCiAgICAgU3RyaW5nIHVz
ZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKIApAQCAtMTgxMCw3ICsxODEwLDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAgICAgT3JpZW50YXRpb25Ob3RpZmllciBtX29yaWVudGF0aW9u
Tm90aWZpZXI7Ci0gICAgbXV0YWJsZSBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgbXV0YWJs
ZSBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIAogICAgIHN0YXRpYyBib29sIGhhc0V2ZXJD
cmVhdGVkQW5BWE9iamVjdENhY2hlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCmluZGV4IGYwNzEzMzczNDdhLi4zMmYxOWMzMDNmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC01MCw2ICs1MCwxMCBA
QCBjbGFzcyBDb25zb2xlTWVzc2FnZTsKIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIH0KIAorbmFt
ZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ2FjaGVkU2NyaXB0OwpAQCAtNjEsNyArNjUsNiBAQCBjbGFzcyBQdWJsaWNVUkxN
YW5hZ2VyOwogY2xhc3MgUmVqZWN0ZWRQcm9taXNlVHJhY2tlcjsKIGNsYXNzIFJlc291cmNlUmVx
dWVzdDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2Vzc2lvbklEOwogY2xhc3MgU29j
a2V0UHJvdmlkZXI7CiBjbGFzcyBVUkw7CiAKQEAgLTgyLDcgKzg1LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBjb25zdCBVUkwmIHVybCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFVSTCBj
b21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgU2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChj
b25zdCBVUkwmKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IGU3YmQzM2UyZTU3Li44MDZmNmViZGYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC04MiwxMyArODIsMTMgQEAKICNpbmNsdWRlICJT
Y3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUaW1lUmFu
Z2VzLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNl
ckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVy
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0FsZ29y
aXRobXMuaD4KQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgdm9pZCBjbGVhckZsYWdzKHVuc2ln
bmVkJiB2YWx1ZSwgdW5zaWduZWQgZmxhZ3MpCiB7CiAgICAgdmFsdWUgJj0gfmZsYWdzOwogfQot
ICAgIAorCiAjaWYgIUxPR19ESVNBQkxFRAogc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nTWVk
aWEoY29uc3QgVVJMJiB1cmwpCiB7CkBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIFN0cmluZyBh
Y3Rpb25OYW1lKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6RGVsYXllZEFjdGlvblR5cGUgYWN0aW9u
KQogI2VuZGlmCiAKICNpZm5kZWYgTE9HX01FRElBX0VWRU5UUwotLy8gRGVmYXVsdCB0byBub3Qg
bG9nZ2luZyBldmVudHMgYmVjYXVzZSBzbyBtYW55IGFyZSBnZW5lcmF0ZWQgdGhleSBjYW4gb3Zl
cndoZWxtIHRoZSByZXN0IG9mIAorLy8gRGVmYXVsdCB0byBub3QgbG9nZ2luZyBldmVudHMgYmVj
YXVzZSBzbyBtYW55IGFyZSBnZW5lcmF0ZWQgdGhleSBjYW4gb3ZlcndoZWxtIHRoZSByZXN0IG9m
CiAvLyB0aGUgbG9nZ2luZy4KICNkZWZpbmUgTE9HX01FRElBX0VWRU5UUyAwCiAjZW5kaWYKQEAg
LTI4Miw3ICsyODIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX2VsZW1lbnQuZW5kSWdu
b3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwogICAgIH0KLSAgICAKKwogcHJpdmF0
ZToKICAgICBIVE1MTWVkaWFFbGVtZW50JiBtX2VsZW1lbnQ7CiB9OwpAQCAtMzIzLDcgKzMyMyw3
IEBAIEhUTUxNZWRpYUVsZW1lbnQqIEhUTUxNZWRpYUVsZW1lbnQ6OmVsZW1lbnRXaXRoSUQodWlu
dDY0X3QgaWQpCiB7CiAgICAgaWYgKGlkID09IEhUTUxNZWRpYUVsZW1lbnRJbnZhbGlkSUQpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIAorCiAgICAgcmV0dXJuIGVsZW1lbnRJRHNUb0Vs
ZW1lbnRzKCkuZ2V0KGlkKTsKIH0KIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAgICBIVE1MRWxlbWVudDo6Zmlu
aXNoUGFyc2luZ0NoaWxkcmVuKCk7CiAgICAgbV9wYXJzaW5nSW5Qcm9ncmVzcyA9IGZhbHNlOwot
ICAgIAorCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGlmIChkZXNjZW5kYW50c09mVHlw
ZTxIVE1MVHJhY2tFbGVtZW50PigqdGhpcykuZmlyc3QoKSkKICAgICAgICAgc2NoZWR1bGVEZWxh
eWVkQWN0aW9uKENvbmZpZ3VyZVRleHRUcmFja3MpOwpAQCAtOTkyLDcgKzk5Miw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
TmFtZSkKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50KCVw
KSAtIHNjaGVkdWxpbmcgJyVzJyIsIHRoaXMsIGV2ZW50TmFtZS5zdHJpbmcoKS5hc2NpaSgpLmRh
dGEoKSk7CiAjZW5kaWYKICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWUsIGZhbHNlLCB0cnVlKTsKLSAgICAKKwogICAgIC8vIERvbid0IHNldCB0aGUgZXZl
bnQgdGFyZ2V0LCB0aGUgZXZlbnQgcXVldWUgd2lsbCBzZXQgaXQgaW4gR2VuZXJpY0V2ZW50UXVl
dWU6OnRpbWVyRmlyZWQgYW5kIHNldHRpbmcgaXQgaGVyZQogICAgIC8vIHdpbGwgdHJpZ2dlciBh
biBBU1NFUlQgaWYgdGhpcyBlbGVtZW50IGhhcyBiZWVuIG1hcmtlZCBmb3IgZGVsZXRpb24uCiAK
QEAgLTExMzAsNyArMTEzMCw3IEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlw
ZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogICAgICAgICAgICAgY2FuUGxheSA9IEFT
Q0lJTGl0ZXJhbCgicHJvYmFibHkiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAK
KwogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCVwKSAtIFsl
c10gLT4gJXMiLCB0aGlzLCBtaW1lVHlwZS51dGY4KCkuZGF0YSgpLCBjYW5QbGF5LnV0ZjgoKS5k
YXRhKCkpOwogCiAgICAgcmV0dXJuIGNhblBsYXk7CkBAIC0xMTQ2LDkgKzExNDYsOSBAQCBkb3Vi
bGUgSFRNTE1lZGlhRWxlbWVudDo6Z2V0U3RhcnREYXRlKCkgY29uc3QKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6bG9hZCgpCiB7CiAgICAgUmVmPEhUTUxNZWRpYUVsZW1lbnQ+IHByb3RlY3RlZFRo
aXMoKnRoaXMpOyAvLyBwcmVwYXJlRm9yTG9hZCBtYXkgcmVzdWx0IGluIGEgJ2JlZm9yZWxvYWQn
IGV2ZW50LCB3aGljaCBjYW4gbWFrZSBhcmJpdHJhcnkgRE9NIG11dGF0aW9ucy4KLSAgICAKKwog
ICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWQoJXApIiwgdGhpcyk7Ci0gICAg
CisKICAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5kYXRhTG9hZGluZ1Blcm1pdHRlZCgqdGhpcykp
CiAgICAgICAgIHJldHVybjsKICAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEo
KSkKQEAgLTE0ODYsNyArMTQ4Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291
cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5cGUmIGNvbnRlbnRUCiAgICAgfQog
I2VuZGlmCiAKLSAgICAvLyBUaGUgcmVzb3VyY2UgZmV0Y2ggYWxnb3JpdGhtIAorICAgIC8vIFRo
ZSByZXNvdXJjZSBmZXRjaCBhbGdvcml0aG0KICAgICBtX25ldHdvcmtTdGF0ZSA9IE5FVFdPUktf
TE9BRElORzsKIAogICAgIC8vIElmIHRoZSBVUkwgc2hvdWxkIGJlIGxvYWRlZCBmcm9tIHRoZSBh
cHBsaWNhdGlvbiBjYWNoZSwgcGFzcyB0aGUgVVJMIG9mIHRoZSBjYWNoZWQgZmlsZSB0byB0aGUg
bWVkaWEgZW5naW5lLgpAQCAtMTg0MSw3ICsxODQxLDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50
Ojp0ZXh0VHJhY2tzQXJlUmVhZHkoKSBjb25zdAogewogICAgIC8vIDQuOC4xMC4xMi4xIFRleHQg
dHJhY2sgbW9kZWwKICAgICAvLyAuLi4KLSAgICAvLyBUaGUgdGV4dCB0cmFja3Mgb2YgYSBtZWRp
YSBlbGVtZW50IGFyZSByZWFkeSBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIHdob3NlIG1vZGUgd2Fz
IG5vdCAKKyAgICAvLyBUaGUgdGV4dCB0cmFja3Mgb2YgYSBtZWRpYSBlbGVtZW50IGFyZSByZWFk
eSBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIHdob3NlIG1vZGUgd2FzIG5vdAogICAgIC8vIGluIHRo
ZSBkaXNhYmxlZCBzdGF0ZSB3aGVuIHRoZSBlbGVtZW50J3MgcmVzb3VyY2Ugc2VsZWN0aW9uIGFs
Z29yaXRobSBsYXN0IHN0YXJ0ZWQgbm93CiAgICAgLy8gaGF2ZSBhIHRleHQgdHJhY2sgcmVhZGlu
ZXNzIHN0YXRlIG9mIGxvYWRlZCBvciBmYWlsZWQgdG8gbG9hZC4KICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV90ZXh0VHJhY2tzV2hlblJlc291cmNlU2VsZWN0aW9uQmVnYW4uc2l6ZSgp
OyArK2kpIHsKQEAgLTE5MDEsMTAgKzE5MDEsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0
ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogICAgIC8vIElmIHRoaXMgaXMg
dGhlIGZpcnN0IGFkZGVkIHRyYWNrLCBjcmVhdGUgdGhlIGxpc3Qgb2YgdGV4dCB0cmFja3MuCiAg
ICAgaWYgKCFtX3RleHRUcmFja3MpCiAgICAgICAgIG1fdGV4dFRyYWNrcyA9IFRleHRUcmFja0xp
c3Q6OmNyZWF0ZSh0aGlzLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7Ci0gICAgCisKICAgICAvLyBNYXJrIHRoaXMgdHJhY2sgYXMgImNvbmZpZ3VyZWQiIHNvIGNv
bmZpZ3VyZVRleHRUcmFja3Mgd29uJ3QgY2hhbmdlIHRoZSBtb2RlIGFnYWluLgogICAgIHRyYWNr
LnNldEhhc0JlZW5Db25maWd1cmVkKHRydWUpOwotICAgIAorCiAgICAgaWYgKHRyYWNrLm1vZGUo
KSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkICYmIHRyYWNrSXNMb2FkZWQpCiAgICAgICAg
IHRleHRUcmFja0FkZEN1ZXModHJhY2ssICp0cmFjay5jdWVzKCkpOwogCkBAIC0yMDc3LDggKzIw
NzcsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogICAgIG1fbG9h
ZFN0YXRlID0gV2FpdGluZ0ZvclNvdXJjZTsKICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVs
bHB0cjsKIAotICAgIC8vIDQuOC4xMC41IAotICAgIC8vIDYgLSBSZWFjaGluZyB0aGlzIHN0ZXAg
aW5kaWNhdGVzIHRoYXQgdGhlIG1lZGlhIHJlc291cmNlIGZhaWxlZCB0byBsb2FkIG9yIHRoYXQg
dGhlIGdpdmVuIAorICAgIC8vIDQuOC4xMC41CisgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3Rl
cCBpbmRpY2F0ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhh
dCB0aGUgZ2l2ZW4KICAgICAvLyBVUkwgY291bGQgbm90IGJlIHJlc29sdmVkLiBJbiBvbmUgYXRv
bWljIG9wZXJhdGlvbiwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CiAKICAgICAvLyA2LjEgLSBT
ZXQgdGhlIGVycm9yIGF0dHJpYnV0ZSB0byBhIG5ldyBNZWRpYUVycm9yIG9iamVjdCB3aG9zZSBj
b2RlIGF0dHJpYnV0ZSBpcyBzZXQgdG8KQEAgLTIxMDMsNyArMjEwMyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bm9uZVN1cHBvcnRlZCgpCiAgICAgLy8gOCAtIFNldCB0aGUgZWxlbWVudCdz
IGRlbGF5aW5nLXRoZS1sb2FkLWV2ZW50IGZsYWcgdG8gZmFsc2UuIFRoaXMgc3RvcHMgZGVsYXlp
bmcgdGhlIGxvYWQgZXZlbnQuCiAgICAgc2V0U2hvdWxkRGVsYXlMb2FkRXZlbnQoZmFsc2UpOwog
Ci0gICAgLy8gOSAtIEFib3J0IHRoZXNlIHN0ZXBzLiBVbnRpbCB0aGUgbG9hZCgpIG1ldGhvZCBp
cyBpbnZva2VkIG9yIHRoZSBzcmMgYXR0cmlidXRlIGlzIGNoYW5nZWQsIAorICAgIC8vIDkgLSBB
Ym9ydCB0aGVzZSBzdGVwcy4gVW50aWwgdGhlIGxvYWQoKSBtZXRob2QgaXMgaW52b2tlZCBvciB0
aGUgc3JjIGF0dHJpYnV0ZSBpcyBjaGFuZ2VkLAogICAgIC8vIHRoZSBlbGVtZW50IHdvbid0IGF0
dGVtcHQgdG8gbG9hZCBhbm90aGVyIHJlc291cmNlLgogCiAgICAgdXBkYXRlRGlzcGxheVN0YXRl
KCk7CkBAIC0yMTE4LDcgKzIxMTgsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhTG9h
ZGluZ0ZhaWxlZEZhdGFsbHkoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBlcnJvcgogICAgIHN0
b3BQZXJpb2RpY1RpbWVycygpOwogICAgIG1fbG9hZFN0YXRlID0gV2FpdGluZ0ZvclNvdXJjZTsK
IAotICAgIC8vIDIgLSBTZXQgdGhlIGVycm9yIGF0dHJpYnV0ZSB0byBhIG5ldyBNZWRpYUVycm9y
IG9iamVjdCB3aG9zZSBjb2RlIGF0dHJpYnV0ZSBpcyAKKyAgICAvLyAyIC0gU2V0IHRoZSBlcnJv
ciBhdHRyaWJ1dGUgdG8gYSBuZXcgTWVkaWFFcnJvciBvYmplY3Qgd2hvc2UgY29kZSBhdHRyaWJ1
dGUgaXMKICAgICAvLyBzZXQgdG8gTUVESUFfRVJSX05FVFdPUksvTUVESUFfRVJSX0RFQ09ERS4K
ICAgICBpZiAoZXJyb3IgPT0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtFcnJvcikKICAgICAgICAgbV9l
cnJvciA9IE1lZGlhRXJyb3I6OmNyZWF0ZShNZWRpYUVycm9yOjpNRURJQV9FUlJfTkVUV09SSyk7
CkBAIC0yMjA4LDIwICsyMjA4LDIwIEBAIHN0YXRpYyBTdHJpbmcgc3RyaW5nRm9yTmV0d29ya1N0
YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgc3RhdGUpCiB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQog
ewogICAgIHN0b3BQZXJpb2RpY1RpbWVycygpOwotICAgIAorCiAgICAgLy8gSWYgd2UgZmFpbGVk
IHdoaWxlIHRyeWluZyB0byBsb2FkIGEgPHNvdXJjZT4gZWxlbWVudCwgdGhlIG1vdmllIHdhcyBu
ZXZlciBwYXJzZWQsIGFuZCB0aGVyZSBhcmUgbW9yZQogICAgIC8vIDxzb3VyY2U+IGNoaWxkcmVu
LCBzY2hlZHVsZSB0aGUgbmV4dCBvbmUKICAgICBpZiAobV9yZWFkeVN0YXRlIDwgSEFWRV9NRVRB
REFUQSAmJiBtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nRnJvbVNvdXJjZUVsZW1lbnQpIHsKLSAgICAg
ICAgCisKICAgICAgICAgLy8gcmVzb3VyY2Ugc2VsZWN0aW9uIGFsZ29yaXRobQogICAgICAgICAv
LyBTdGVwIDkuT3RoZXJ3aXNlLjkgLSBGYWlsZWQgd2l0aCBlbGVtZW50czogUXVldWUgYSB0YXNr
LCB1c2luZyB0aGUgRE9NIG1hbmlwdWxhdGlvbiB0YXNrIHNvdXJjZSwgdG8gZmlyZSBhIHNpbXBs
ZSBldmVudCBuYW1lZCBlcnJvciBhdCB0aGUgY2FuZGlkYXRlIGVsZW1lbnQuCiAgICAgICAgIGlm
IChtX2N1cnJlbnRTb3VyY2VOb2RlKQogICAgICAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZS0+
c2NoZWR1bGVFcnJvckV2ZW50KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIExPRyhNZWRp
YSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldE5ldHdvcmtTdGF0ZSglcCkgLSBlcnJvciBldmVudCBu
b3Qgc2VudCwgPHNvdXJjZT4gd2FzIHJlbW92ZWQiLCB0aGlzKTsKLSAgICAgICAgCisKICAgICAg
ICAgLy8gOS5PdGhlcndpc2UuMTAgLSBBc3luY2hyb25vdXNseSBhd2FpdCBhIHN0YWJsZSBzdGF0
ZS4gVGhlIHN5bmNocm9ub3VzIHNlY3Rpb24gY29uc2lzdHMgb2YgYWxsIHRoZSByZW1haW5pbmcg
c3RlcHMgb2YgdGhpcyBhbGdvcml0aG0gdW50aWwgdGhlIGFsZ29yaXRobSBzYXlzIHRoZSBzeW5j
aHJvbm91cyBzZWN0aW9uIGhhcyBlbmRlZC4KLSAgICAgICAgCisKICAgICAgICAgLy8gOS5PdGhl
cndpc2UuMTEgLSBGb3JnZXQgdGhlIG1lZGlhIGVsZW1lbnQncyBtZWRpYS1yZXNvdXJjZS1zcGVj
aWZpYyB0cmFja3MuCiAgICAgICAgIGZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MoKTsKIApA
QCAtMjIzMiwxNSArMjIzMiwxNSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhTG9hZGlu
Z0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9yKQogICAgICAgICAgICAgTE9H
KE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c2V0TmV0d29ya1N0YXRlKCVwKSAtIG5vIG1vcmUg
PHNvdXJjZT4gZWxlbWVudHMsIHdhaXRpbmciLCB0aGlzKTsKICAgICAgICAgICAgIHdhaXRGb3JT
b3VyY2VDaGFuZ2UoKTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIAorCiAgICAgaWYgKChlcnJvciA9PSBNZWRpYVBsYXllcjo6TmV0d29ya0Vycm9y
ICYmIG1fcmVhZHlTdGF0ZSA+PSBIQVZFX01FVEFEQVRBKSB8fCBlcnJvciA9PSBNZWRpYVBsYXll
cjo6RGVjb2RlRXJyb3IpCiAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZEZhdGFsbHkoZXJyb3Ip
OwogICAgIGVsc2UgaWYgKChlcnJvciA9PSBNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IgfHwgZXJy
b3IgPT0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtFcnJvcikgJiYgbV9sb2FkU3RhdGUgPT0gTG9hZGlu
Z0Zyb21TcmNBdHRyKQogICAgICAgICBub25lU3VwcG9ydGVkKCk7Ci0gICAgCisKICAgICB1cGRh
dGVEaXNwbGF5U3RhdGUoKTsKICAgICBpZiAoaGFzTWVkaWFDb250cm9scygpKSB7CiAgICAgICAg
IG1lZGlhQ29udHJvbHMoKS0+cmVzZXQoKTsKQEAgLTIzNjAsNyArMjM2MCw3IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIGJvb2wgdHJhY2tzQXJlUmVhZHkgPSB0cnVlOwogI2Vu
ZGlmCi0gICAgCisKICAgICBpZiAodHJhY2tzQXJlUmVhZHkpCiAgICAgICAgIG1fcmVhZHlTdGF0
ZSA9IG5ld1N0YXRlOwogICAgIGVsc2UgewpAQCAtMjM3MSw3ICsyMzcxLDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHN0YXRl
KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBIQVZFX0NVUlJFTlRf
REFUQTsKICAgICB9Ci0gICAgCisKICAgICBpZiAob2xkU3RhdGUgPiBtX3JlYWR5U3RhdGVNYXhp
bXVtKQogICAgICAgICBtX3JlYWR5U3RhdGVNYXhpbXVtID0gb2xkU3RhdGU7CiAKQEAgLTI2MDgs
NyArMjYwOCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YWRkUGxheWVkUmFuZ2UoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlCiAgICAgaWYgKCFtX3BsYXllZFRp
bWVSYW5nZXMpCiAgICAgICAgIG1fcGxheWVkVGltZVJhbmdlcyA9IFRpbWVSYW5nZXM6OmNyZWF0
ZSgpOwogICAgIG1fcGxheWVkVGltZVJhbmdlcy0+cmFuZ2VzKCkuYWRkKHN0YXJ0LCBlbmQpOwot
fSAgCit9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c3VwcG9ydHNTY2FubmluZygpIGNvbnN0
CiB7CkBAIC0yNzMwLDggKzI3MzAsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNr
KCkKICAgICBtX3BlbmRpbmdTZWVrID0gbnVsbHB0cjsKIAogICAgIEFTU0VSVChuZWdhdGl2ZVRv
bGVyYW5jZSA+PSBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwotICAgIAotICAgIC8vIDYgLSBJZiB0
aGUgbmV3IHBsYXliYWNrIHBvc2l0aW9uIGlzIGxhdGVyIHRoYW4gdGhlIGVuZCBvZiB0aGUgbWVk
aWEgcmVzb3VyY2UsIHRoZW4gbGV0IGl0IGJlIHRoZSBlbmQgCisKKyAgICAvLyA2IC0gSWYgdGhl
IG5ldyBwbGF5YmFjayBwb3NpdGlvbiBpcyBsYXRlciB0aGFuIHRoZSBlbmQgb2YgdGhlIG1lZGlh
IHJlc291cmNlLCB0aGVuIGxldCBpdCBiZSB0aGUgZW5kCiAgICAgLy8gb2YgdGhlIG1lZGlhIHJl
c291cmNlIGluc3RlYWQuCiAgICAgdGltZSA9IHN0ZDo6bWluKHRpbWUsIGR1cmF0aW9uTWVkaWFU
aW1lKCkpOwogCkBAIC0yNzQyLDcgKzI3NDIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNl
ZWtUYXNrKCkKICAgICAvLyBBc2sgdGhlIG1lZGlhIGVuZ2luZSBmb3IgdGhlIHRpbWUgdmFsdWUg
aW4gdGhlIG1vdmllJ3MgdGltZSBzY2FsZSBiZWZvcmUgY29tcGFyaW5nIHdpdGggY3VycmVudCB0
aW1lLiBUaGlzCiAgICAgLy8gaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaWYgdGhlIHNlZWsgdGltZSBp
cyBub3QgZXF1YWwgdG8gY3VycmVudFRpbWUgYnV0IHRoZSBkZWx0YSBpcyBsZXNzIHRoYW4gdGhl
IG1vdmllJ3MKICAgICAvLyB0aW1lIHNjYWxlLCB3ZSB3aWxsIGFzayB0aGUgbWVkaWEgZW5naW5l
IHRvICJzZWVrIiB0byB0aGUgY3VycmVudCBtb3ZpZSB0aW1lLCB3aGljaCBtYXkgYmUgYSBub29w
IGFuZAotICAgIC8vIG5vdCBnZW5lcmF0ZSBhIHRpbWVjaGFuZ2VkIGNhbGxiYWNrLiBUaGlzIG1l
YW5zIG1fc2Vla2luZyB3aWxsIG5ldmVyIGJlIGNsZWFyZWQgYW5kIHdlIHdpbGwgbmV2ZXIgCisg
ICAgLy8gbm90IGdlbmVyYXRlIGEgdGltZWNoYW5nZWQgY2FsbGJhY2suIFRoaXMgbWVhbnMgbV9z
ZWVraW5nIHdpbGwgbmV2ZXIgYmUgY2xlYXJlZCBhbmQgd2Ugd2lsbCBuZXZlcgogICAgIC8vIGZp
cmUgYSAnc2Vla2VkJyBldmVudC4KICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTWVkaWFUaW1lIG1l
ZGlhVGltZSA9IG1fcGxheWVyLT5tZWRpYVRpbWVGb3JUaW1lVmFsdWUodGltZSk7CkBAIC0yNzUy
LDcgKzI3NTIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNrKCkKICAgICB0aW1l
ID0gbV9wbGF5ZXItPm1lZGlhVGltZUZvclRpbWVWYWx1ZSh0aW1lKTsKIAogICAgIC8vIDggLSBJ
ZiB0aGUgKHBvc3NpYmx5IG5vdyBjaGFuZ2VkKSBuZXcgcGxheWJhY2sgcG9zaXRpb24gaXMgbm90
IGluIG9uZSBvZiB0aGUgcmFuZ2VzIGdpdmVuIGluIHRoZQotICAgIC8vIHNlZWthYmxlIGF0dHJp
YnV0ZSwgdGhlbiBsZXQgaXQgYmUgdGhlIHBvc2l0aW9uIGluIG9uZSBvZiB0aGUgcmFuZ2VzIGdp
dmVuIGluIHRoZSBzZWVrYWJsZSBhdHRyaWJ1dGUgCisgICAgLy8gc2Vla2FibGUgYXR0cmlidXRl
LCB0aGVuIGxldCBpdCBiZSB0aGUgcG9zaXRpb24gaW4gb25lIG9mIHRoZSByYW5nZXMgZ2l2ZW4g
aW4gdGhlIHNlZWthYmxlIGF0dHJpYnV0ZQogICAgIC8vIHRoYXQgaXMgdGhlIG5lYXJlc3QgdG8g
dGhlIG5ldyBwbGF5YmFjayBwb3NpdGlvbi4gLi4uIElmIHRoZXJlIGFyZSBubyByYW5nZXMgZ2l2
ZW4gaW4gdGhlIHNlZWthYmxlCiAgICAgLy8gYXR0cmlidXRlIHRoZW4gc2V0IHRoZSBzZWVraW5n
IElETCBhdHRyaWJ1dGUgdG8gZmFsc2UgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIFJlZlB0
cjxUaW1lUmFuZ2VzPiBzZWVrYWJsZVJhbmdlcyA9IHNlZWthYmxlKCk7CkBAIC0yODU5LDExICsy
ODU5LDExIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVmcmVzaENhY2hlZFRpbWUoKSBjb25z
dAogCiAgICAgbV9jYWNoZWRUaW1lID0gbV9wbGF5ZXItPmN1cnJlbnRUaW1lKCk7CiAgICAgaWYg
KCFtX2NhY2hlZFRpbWUpIHsKLSAgICAgICAgLy8gRG8gbm90IHVzZSBtX2NhY2hlZFRpbWUgdW50
aWwgdGhlIG1lZGlhIGVuZ2luZSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUgYmVjYXVzZSB3ZSBj
YW4ndCAKLSAgICAgICAgLy8gZXN0aW1hdGUgY3VycmVudCB0aW1lIHVudGlsIHBsYXliYWNrIGFj
dHVhbGx5IGJlZ2lucy4gCi0gICAgICAgIGludmFsaWRhdGVDYWNoZWRUaW1lKCk7IAotICAgICAg
ICByZXR1cm47IAotICAgIH0gCisgICAgICAgIC8vIERvIG5vdCB1c2UgbV9jYWNoZWRUaW1lIHVu
dGlsIHRoZSBtZWRpYSBlbmdpbmUgcmV0dXJucyBhIG5vbi16ZXJvIHZhbHVlIGJlY2F1c2Ugd2Ug
Y2FuJ3QKKyAgICAgICAgLy8gZXN0aW1hdGUgY3VycmVudCB0aW1lIHVudGlsIHBsYXliYWNrIGFj
dHVhbGx5IGJlZ2lucy4KKyAgICAgICAgaW52YWxpZGF0ZUNhY2hlZFRpbWUoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KIAogICAgIG1fY2xvY2tUaW1lQXRMYXN0Q2FjaGVkVGltZVVwZGF0ZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogfQpAQCAtMjk0OCw3ICsyOTQ4LDcgQEAg
TWVkaWFUaW1lIEhUTUxNZWRpYUVsZW1lbnQ6OmN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdAogCiAg
ICAgaWYgKG1fY2FjaGVkVGltZS5pc0ludmFsaWQoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhVGlt
ZTo6emVyb1RpbWUoKTsKLSAgICAKKwogICAgIHJldHVybiBtX2NhY2hlZFRpbWU7CiB9CiAKQEAg
LTMwOTYsNyArMzA5Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0V2Via2l0UHJlc2Vy
dmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFF
bGVtZW50OjpzZXRXZWJraXRQcmVzZXJ2ZXNQaXRjaCglcCkgLSAlcyIsIHRoaXMsIGJvb2xTdHJp
bmcocHJlc2VydmVzUGl0Y2gpKTsKIAogICAgIG1fd2Via2l0UHJlc2VydmVzUGl0Y2ggPSBwcmVz
ZXJ2ZXNQaXRjaDsKLSAgICAKKwogICAgIGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMzExNCw3ICszMTE0LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjplbmRlZCgpIGNv
bnN0CiAjZW5kaWYKIAogICAgIC8vIDQuOC4xMC44IFBsYXlpbmcgdGhlIG1lZGlhIHJlc291cmNl
Ci0gICAgLy8gVGhlIGVuZGVkIGF0dHJpYnV0ZSBtdXN0IHJldHVybiB0cnVlIGlmIHRoZSBtZWRp
YSBlbGVtZW50IGhhcyBlbmRlZCAKKyAgICAvLyBUaGUgZW5kZWQgYXR0cmlidXRlIG11c3QgcmV0
dXJuIHRydWUgaWYgdGhlIG1lZGlhIGVsZW1lbnQgaGFzIGVuZGVkCiAgICAgLy8gcGxheWJhY2sg
YW5kIHRoZSBkaXJlY3Rpb24gb2YgcGxheWJhY2sgaXMgZm9yd2FyZHMsIGFuZCBmYWxzZSBvdGhl
cndpc2UuCiAgICAgcmV0dXJuIGVuZGVkUGxheWJhY2soKSAmJiByZXF1ZXN0ZWRQbGF5YmFja1Jh
dGUoKSA+IDA7CiB9CkBAIC0zMjA2LDcgKzMyMDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXkoKQogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwoKQogewogICAgIExP
RyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCglcCkiLCB0aGlzKTsKLSAg
ICAKKwogICAgIGlmICghbV9tZWRpYVNlc3Npb24tPmNsaWVudFdpbGxCZWdpblBsYXliYWNrKCkp
IHsKICAgICAgICAgTE9HKE1lZGlhLCAiICByZXR1cm5pbmcgYmVjYXVzZSBvZiBpbnRlcnJ1cHRp
b24iKTsKICAgICAgICAgcmV0dXJuIHRydWU7IC8vIFRyZWF0IGFzIHN1Y2Nlc3MgYmVjYXVzZSB3
ZSB3aWxsIGJlZ2luIHBsYXliYWNrIG9uIGNlc3NhdGlvbiBvZiB0aGUgaW50ZXJydXB0aW9uLgpA
QCAtMzI3OCw5ICszMjc4LDkgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwo
KQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSgpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRN
TE1lZGlhRWxlbWVudDo6cGF1c2UoJXApIiwgdGhpcyk7Ci0gICAgCisKICAgICBtX3RlbXBvcmFy
aWx5QWxsb3dpbmdJbmxpbmVQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9IGZhbHNlOwotICAgIAor
CiAgICAgaWYgKCFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTM0NzAsNyArMzQ3MCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dG9nZ2xlUGxheVN0YXRlKCkKICAgICBpZiAoY2FuUGxheSgpKSB7CiAgICAgICAgIHVwZGF0
ZVBsYXliYWNrUmF0ZSgpOwogICAgICAgICBwbGF5SW50ZXJuYWwoKTsKLSAgICB9IGVsc2UgCisg
ICAgfSBlbHNlCiAgICAgICAgIHBhdXNlSW50ZXJuYWwoKTsKIH0KIApAQCAtMzQ4MCwxMyArMzQ4
MCwxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmJlZ2luU2NydWJiaW5nKCkKIAogICAgIGlm
ICghcGF1c2VkKCkpIHsKICAgICAgICAgaWYgKGVuZGVkKCkpIHsKLSAgICAgICAgICAgIC8vIEJl
Y2F1c2UgYSBtZWRpYSBlbGVtZW50IHN0YXlzIGluIG5vbi1wYXVzZWQgc3RhdGUgd2hlbiBpdCBy
ZWFjaGVzIGVuZCwgcGxheWJhY2sgcmVzdW1lcyAKLSAgICAgICAgICAgIC8vIHdoZW4gdGhlIHNs
aWRlciBpcyBkcmFnZ2VkIGZyb20gdGhlIGVuZCB0byBhbm90aGVyIHBvc2l0aW9uIHVubGVzcyB3
ZSBwYXVzZSBmaXJzdC4gRG8gCisgICAgICAgICAgICAvLyBCZWNhdXNlIGEgbWVkaWEgZWxlbWVu
dCBzdGF5cyBpbiBub24tcGF1c2VkIHN0YXRlIHdoZW4gaXQgcmVhY2hlcyBlbmQsIHBsYXliYWNr
IHJlc3VtZXMKKyAgICAgICAgICAgIC8vIHdoZW4gdGhlIHNsaWRlciBpcyBkcmFnZ2VkIGZyb20g
dGhlIGVuZCB0byBhbm90aGVyIHBvc2l0aW9uIHVubGVzcyB3ZSBwYXVzZSBmaXJzdC4gRG8KICAg
ICAgICAgICAgIC8vIGEgImhhcmQgcGF1c2UiIHNvIGFuIGV2ZW50IGlzIGdlbmVyYXRlZCwgc2lu
Y2Ugd2Ugd2FudCB0byBzdGF5IHBhdXNlZCBhZnRlciBzY3J1YmJpbmcgZmluaXNoZXMuCiAgICAg
ICAgICAgICBwYXVzZSgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gTm90IGF0
IHRoZSBlbmQgYnV0IHdlIHN0aWxsIHdhbnQgdG8gcGF1c2UgcGxheWJhY2sgc28gdGhlIG1lZGlh
IGVuZ2luZSBkb2Vzbid0IHRyeSB0bwotICAgICAgICAgICAgLy8gY29udGludWUgcGxheWluZyBk
dXJpbmcgc2NydWJiaW5nLiBQYXVzZSB3aXRob3V0IGdlbmVyYXRpbmcgYW4gZXZlbnQgYXMgd2Ug
d2lsbCAKKyAgICAgICAgICAgIC8vIGNvbnRpbnVlIHBsYXlpbmcgZHVyaW5nIHNjcnViYmluZy4g
UGF1c2Ugd2l0aG91dCBnZW5lcmF0aW5nIGFuIGV2ZW50IGFzIHdlIHdpbGwKICAgICAgICAgICAg
IC8vIHVucGF1c2UgYWZ0ZXIgc2NydWJiaW5nIGZpbmlzaGVzLgogICAgICAgICAgICAgc2V0UGF1
c2VkSW50ZXJuYWwodHJ1ZSk7CiAgICAgICAgIH0KQEAgLTM1ODAsNyArMzU4MCw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQoKQogICAgICAgICAg
ICAgcGF1c2VJbnRlcm5hbCgpOwogICAgICAgICB9CiAgICAgfQotICAgIAorCiAgICAgc2NoZWR1
bGVUaW1ldXBkYXRlRXZlbnQodHJ1ZSk7CiAKICAgICBpZiAoIXJlcXVlc3RlZFBsYXliYWNrUmF0
ZSgpKQpAQCAtMzY2Niw3ICszNjY2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKICAgICAv
LyAxLiBBc3NvY2lhdGUgdGhlIHJlbGV2YW50IGRhdGEgd2l0aCBhIG5ldyB0ZXh0IHRyYWNrIGFu
ZCBpdHMgY29ycmVzcG9uZGluZyBuZXcgVGV4dFRyYWNrIG9iamVjdC4KICAgICBhdXRvIHRleHRU
cmFjayA9IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKCpBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsIHRyYWNrKTsKICAgICB0ZXh0VHJhY2stPnNldE1lZGlh
RWxlbWVudCh0aGlzKTsKLSAgICAKKwogICAgIC8vIDIuIFNldCB0aGUgbmV3IHRleHQgdHJhY2sn
cyBraW5kLCBsYWJlbCwgYW5kIGxhbmd1YWdlIGJhc2VkIG9uIHRoZSBzZW1hbnRpY3Mgb2YgdGhl
IHJlbGV2YW50IGRhdGEsCiAgICAgLy8gYXMgZGVmaW5lZCBieSB0aGUgcmVsZXZhbnQgc3BlY2lm
aWNhdGlvbi4gSWYgdGhlcmUgaXMgbm8gbGFiZWwgaW4gdGhhdCBkYXRhLCB0aGVuIHRoZSBsYWJl
bCBtdXN0CiAgICAgLy8gYmUgc2V0IHRvIHRoZSBlbXB0eSBzdHJpbmcuCkBAIC0zNjc3LDE1ICsz
Njc3LDE1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJh
Y2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgLy8gNS4gUG9wdWxhdGUgdGhl
IG5ldyB0ZXh0IHRyYWNrJ3MgbGlzdCBvZiBjdWVzIHdpdGggdGhlIGN1ZXMgcGFyc2VkIHNvIGZh
ciwgZm9sbGxvd2luZyB0aGUgZ3VpZGVsaW5lcyBmb3IgZXhwb3NpbmcKICAgICAvLyBjdWVzLCBh
bmQgYmVnaW4gdXBkYXRpbmcgaXQgZHluYW1pY2FsbHkgYXMgbmVjZXNzYXJ5LgogICAgIC8vICAg
LSBUaGVzcyBhcmUgYWxsIGRvbmUgYnkgdGhlIG1lZGlhIGVuZ2luZS4KLSAgICAKKwogICAgIC8v
IDYuIFNldCB0aGUgbmV3IHRleHQgdHJhY2sncyByZWFkaW5lc3Mgc3RhdGUgdG8gbG9hZGVkLgog
ICAgIHRleHRUcmFjay0+c2V0UmVhZGluZXNzU3RhdGUoVGV4dFRyYWNrOjpMb2FkZWQpOwotICAg
IAorCiAgICAgLy8gNy4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydzIG1vZGUgdG8gdGhlIG1vZGUg
Y29uc2lzdGVudCB3aXRoIHRoZSB1c2VyJ3MgcHJlZmVyZW5jZXMgYW5kIHRoZSByZXF1aXJlbWVu
dHMgb2YKICAgICAvLyB0aGUgcmVsZXZhbnQgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGRhdGEuCiAg
ICAgLy8gIC0gVGhpcyB3aWxsIGhhcHBlbiBpbiBjb25maWd1cmVUZXh0VHJhY2tzKCkKICAgICBz
Y2hlZHVsZURlbGF5ZWRBY3Rpb24oQ29uZmlndXJlVGV4dFRyYWNrcyk7Ci0gICAgCisKICAgICAv
LyA4LiBBZGQgdGhlIG5ldyB0ZXh0IHRyYWNrIHRvIHRoZSBtZWRpYSBlbGVtZW50J3MgbGlzdCBv
ZiB0ZXh0IHRyYWNrcy4KICAgICAvLyA5LiBGaXJlIGFuIGV2ZW50IHdpdGggdGhlIG5hbWUgYWRk
dHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcyBub3QgY2FuY2VsYWJsZSwgYW5kIHRo
YXQgdXNlcyB0aGUgVHJhY2tFdmVudAogICAgIC8vIGludGVyZmFjZSwgd2l0aCB0aGUgdHJhY2sg
YXR0cmlidXRlIGluaXRpYWxpemVkIHRvIHRoZSB0ZXh0IHRyYWNrJ3MgVGV4dFRyYWNrIG9iamVj
dCwgYXQgdGhlIG1lZGlhIGVsZW1lbnQncwpAQCAtMzc5OSw3ICszNzk5LDcgQEAgRXhjZXB0aW9u
T3I8VGV4dFRyYWNrJj4gSFRNTE1lZGlhRWxlbWVudDo6YWRkVGV4dFRyYWNrKGNvbnN0IFN0cmlu
ZyYga2luZCwgY29uc3QKICAgICAvLyAzLiBJZiB0aGUgbGFuZ3VhZ2UgYXJndW1lbnQgd2FzIG9t
aXR0ZWQsIGxldCBsYW5ndWFnZSBiZSB0aGUgZW1wdHkgc3RyaW5nLgogICAgIC8vIDQuIENyZWF0
ZSBhIG5ldyBUZXh0VHJhY2sgb2JqZWN0LgogCi0gICAgLy8gNS4gQ3JlYXRlIGEgbmV3IHRleHQg
dHJhY2sgY29ycmVzcG9uZGluZyB0byB0aGUgbmV3IG9iamVjdCwgYW5kIHNldCBpdHMgdGV4dCB0
cmFjayBraW5kIHRvIGtpbmQsIGl0cyB0ZXh0IAorICAgIC8vIDUuIENyZWF0ZSBhIG5ldyB0ZXh0
IHRyYWNrIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5ldyBvYmplY3QsIGFuZCBzZXQgaXRzIHRleHQg
dHJhY2sga2luZCB0byBraW5kLCBpdHMgdGV4dAogICAgIC8vIHRyYWNrIGxhYmVsIHRvIGxhYmVs
LCBpdHMgdGV4dCB0cmFjayBsYW5ndWFnZSB0byBsYW5ndWFnZS4uLgogICAgIGF1dG8gdHJhY2sg
PSBUZXh0VHJhY2s6OmNyZWF0ZShBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgdGhpcywga2luZCwgZW1wdHlTdHJpbmcoKSwgbGFiZWwsIGxhbmd1YWdlKTsKICAgICBh
dXRvJiB0cmFja1JlZmVyZW5jZSA9IHRyYWNrLmdldCgpOwpAQCAtMzg0OCw4ICszODQ4LDggQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRBZGRUZXh0VHJhY2soSFRNTFRyYWNrRWxlbWVudCYg
dHJhY2tFbGVtZW50KQogICAgIEFTU0VSVCh0cmFja0VsZW1lbnQuaGFzVGFnTmFtZSh0cmFja1Rh
ZykpOwogCiAgICAgLy8gNC44LjEwLjEyLjMgU291cmNpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFj
a3MKLSAgICAvLyBXaGVuIGEgdHJhY2sgZWxlbWVudCdzIHBhcmVudCBlbGVtZW50IGNoYW5nZXMg
YW5kIHRoZSBuZXcgcGFyZW50IGlzIGEgbWVkaWEgZWxlbWVudCwgCi0gICAgLy8gdGhlbiB0aGUg
dXNlciBhZ2VudCBtdXN0IGFkZCB0aGUgdHJhY2sgZWxlbWVudCdzIGNvcnJlc3BvbmRpbmcgdGV4
dCB0cmFjayB0byB0aGUgCisgICAgLy8gV2hlbiBhIHRyYWNrIGVsZW1lbnQncyBwYXJlbnQgZWxl
bWVudCBjaGFuZ2VzIGFuZCB0aGUgbmV3IHBhcmVudCBpcyBhIG1lZGlhIGVsZW1lbnQsCisgICAg
Ly8gdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IGFkZCB0aGUgdHJhY2sgZWxlbWVudCdzIGNvcnJl
c3BvbmRpbmcgdGV4dCB0cmFjayB0byB0aGUKICAgICAvLyBtZWRpYSBlbGVtZW50J3MgbGlzdCBv
ZiB0ZXh0IHRyYWNrcyAuLi4gW2NvbnRpbnVlcyBpbiBUZXh0VHJhY2tMaXN0OjphcHBlbmRdCiAg
ICAgYWRkVGV4dFRyYWNrKHRyYWNrRWxlbWVudC50cmFjaygpKTsKIApAQCAtMzg3OSwxMCArMzg3
OSwxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlbW92ZVRleHRUcmFjayhIVE1MVHJh
Y2tFbGVtZW50JiB0cmFja0VsZW1lbnQpCiAKICAgICBpZiAoIW1fdGV4dFRyYWNrcykKICAgICAg
ICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gNC44LjEwLjEyLjMgU291cmNpbmcgb3V0LW9mLWJh
bmQgdGV4dCB0cmFja3MKLSAgICAvLyBXaGVuIGEgdHJhY2sgZWxlbWVudCdzIHBhcmVudCBlbGVt
ZW50IGNoYW5nZXMgYW5kIHRoZSBvbGQgcGFyZW50IHdhcyBhIG1lZGlhIGVsZW1lbnQsIAotICAg
IC8vIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdCByZW1vdmUgdGhlIHRyYWNrIGVsZW1lbnQncyBj
b3JyZXNwb25kaW5nIHRleHQgdHJhY2sgZnJvbSB0aGUgCisgICAgLy8gV2hlbiBhIHRyYWNrIGVs
ZW1lbnQncyBwYXJlbnQgZWxlbWVudCBjaGFuZ2VzIGFuZCB0aGUgb2xkIHBhcmVudCB3YXMgYSBt
ZWRpYSBlbGVtZW50LAorICAgIC8vIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdCByZW1vdmUgdGhl
IHRyYWNrIGVsZW1lbnQncyBjb3JyZXNwb25kaW5nIHRleHQgdHJhY2sgZnJvbSB0aGUKICAgICAv
LyBtZWRpYSBlbGVtZW50J3MgbGlzdCBvZiB0ZXh0IHRyYWNrcy4KICAgICByZW1vdmVUZXh0VHJh
Y2sodGV4dFRyYWNrKTsKIApAQCAtNDAwOSwxMiArNDAwOSwxMiBAQCBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGNvbnRyb2xsZXJKU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCYgZwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIGF1dG8gbWVkaWFKU1dyYXBwZXIg
PSB0b0pTKCZleGVjLCAmZ2xvYmFsT2JqZWN0LCBtZWRpYSk7Ci0gICAgCisKICAgICAvLyBSZXRy
aWV2ZSB0aGUgY29udHJvbGxlciB0aHJvdWdoIHRoZSBKUyBvYmplY3QgZ3JhcGgKICAgICBKU0M6
OkpTT2JqZWN0KiBtZWRpYUpTV3JhcHBlck9iamVjdCA9IGpzRHluYW1pY0Rvd25jYXN0PEpTQzo6
SlNPYmplY3QqPih2bSwgbWVkaWFKU1dyYXBwZXIpOwogICAgIGlmICghbWVkaWFKU1dyYXBwZXJP
YmplY3QpCiAgICAgICAgIHJldHVybiBKU0M6OmpzTnVsbCgpOwotICAgIAorCiAgICAgSlNDOjpJ
ZGVudGlmaWVyIGNvbnRyb2xzSG9zdCA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJjb250cm9sc0hvc3QiKTsKICAgICBKU0M6OkpTVmFsdWUgY29udHJvbHNIb3N0SlNXcmFwcGVy
ID0gbWVkaWFKU1dyYXBwZXJPYmplY3QtPmdldCgmZXhlYywgY29udHJvbHNIb3N0KTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OmpzTnVsbCgpKTsKQEAgLTQyMDQsMTkgKzQy
MDQsMTkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhY2tzKCkKICAg
ICAgICAgICAgIGN1cnJlbnRHcm91cC0+ZGVmYXVsdFRyYWNrID0gdGV4dFRyYWNrOwogCiAgICAg
ICAgIC8vIERvIG5vdCBhZGQgdGhpcyB0cmFjayB0byB0aGUgZ3JvdXAgaWYgaXQgaGFzIGFscmVh
ZHkgYmVlbiBhdXRvbWF0aWNhbGx5IGNvbmZpZ3VyZWQKLSAgICAgICAgLy8gYXMgd2Ugb25seSB3
YW50IHRvIGNhbGwgY29uZmlndXJlVGV4dFRyYWNrIG9uY2UgcGVyIHRyYWNrIHNvIHRoYXQgYWRk
aW5nIGFub3RoZXIgCi0gICAgICAgIC8vIHRyYWNrIGFmdGVyIHRoZSBpbml0aWFsIGNvbmZpZ3Vy
YXRpb24gZG9lc24ndCByZWNvbmZpZ3VyZSBldmVyeSB0cmFjayAtIG9ubHkgdGhvc2UgCi0gICAg
ICAgIC8vIHRoYXQgc2hvdWxkIGJlIGNoYW5nZWQgYnkgdGhlIG5ldyBhZGRpdGlvbi4gRm9yIGV4
YW1wbGUgYWxsIG1ldGFkYXRhIHRyYWNrcyBhcmUgCi0gICAgICAgIC8vIGRpc2FibGVkIGJ5IGRl
ZmF1bHQsIGFuZCB3ZSBkb24ndCB3YW50IGEgdHJhY2sgdGhhdCBoYXMgYmVlbiBlbmFibGVkIGJ5
IHNjcmlwdCAKKyAgICAgICAgLy8gYXMgd2Ugb25seSB3YW50IHRvIGNhbGwgY29uZmlndXJlVGV4
dFRyYWNrIG9uY2UgcGVyIHRyYWNrIHNvIHRoYXQgYWRkaW5nIGFub3RoZXIKKyAgICAgICAgLy8g
dHJhY2sgYWZ0ZXIgdGhlIGluaXRpYWwgY29uZmlndXJhdGlvbiBkb2Vzbid0IHJlY29uZmlndXJl
IGV2ZXJ5IHRyYWNrIC0gb25seSB0aG9zZQorICAgICAgICAvLyB0aGF0IHNob3VsZCBiZSBjaGFu
Z2VkIGJ5IHRoZSBuZXcgYWRkaXRpb24uIEZvciBleGFtcGxlIGFsbCBtZXRhZGF0YSB0cmFja3Mg
YXJlCisgICAgICAgIC8vIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGFuZCB3ZSBkb24ndCB3YW50IGEg
dHJhY2sgdGhhdCBoYXMgYmVlbiBlbmFibGVkIGJ5IHNjcmlwdAogICAgICAgICAvLyB0byBiZSBk
aXNhYmxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYSBuZXcgbWV0YWRhdGEgdHJhY2sgaXMgYWRkZWQg
bGF0ZXIuCiAgICAgICAgIGlmICh0ZXh0VHJhY2stPmhhc0JlZW5Db25maWd1cmVkKCkpCiAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgCisKICAgICAgICAgaWYgKHRleHRUcmFjay0+bGFu
Z3VhZ2UoKS5sZW5ndGgoKSkKICAgICAgICAgICAgIGN1cnJlbnRHcm91cC0+aGFzU3JjTGFuZyA9
IHRydWU7CiAgICAgICAgIGN1cnJlbnRHcm91cC0+dHJhY2tzLmFwcGVuZCh0ZXh0VHJhY2spOwog
ICAgIH0KLSAgICAKKwogICAgIGlmIChjYXB0aW9uQW5kU3VidGl0bGVUcmFja3MudHJhY2tzLnNp
emUoKSkKICAgICAgICAgY29uZmlndXJlVGV4dFRyYWNrR3JvdXAoY2FwdGlvbkFuZFN1YnRpdGxl
VHJhY2tzKTsKICAgICBpZiAoZGVzY3JpcHRpb25UcmFja3MudHJhY2tzLnNpemUoKSkKQEAgLTQy
ODksNyArNDI4OSw3IEBAIFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hp
bGQoQ29udGVudFR5cGUqIGNvbnRlbnRUeXBlLCBTdHJpbmcqIGtlCiAjZW5kaWYKICAgICAgICAg
aWYgKG1lZGlhVVJMLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGdvdG8gQ2hlY2tBZ2FpbjsKLSAg
ICAgICAgCisKICAgICAgICAgaWYgKGF1dG8qIG1lZGlhID0gc291cmNlLT5wYXJzZWRNZWRpYUF0
dHJpYnV0ZSgpKSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICAgICAgaWYgKHNob3VsZExv
ZykKQEAgLTQzNzIsMTMgKzQzNzIsMTMgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VX
YXNBZGRlZChIVE1MU291cmNlRWxlbWVudCYgc291cmNlKQogICAgICAgICBMT0coTWVkaWEsICJI
VE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VXYXNBZGRlZCglcCkgLSAnc3JjJyBpcyAlcyIsIHRoaXMs
IHVybEZvckxvZ2dpbmdNZWRpYSh1cmwpLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KICNlbmRpZgot
ICAgIAorCiAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgY29uc2lkZXIgYSA8c291cmNlPiBlbGVtZW50
IHdoZW4gdGhlcmUgaXMgbm90IHNyYyBhdHRyaWJ1dGUgYXQgYWxsLgogICAgIGlmIChoYXNBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHNyY0F0dHIpKQogICAgICAgICByZXR1cm47CiAK
LSAgICAvLyA0LjguOCAtIElmIGEgc291cmNlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgYXMgYSBjaGls
ZCBvZiBhIG1lZGlhIGVsZW1lbnQgdGhhdCBoYXMgbm8gc3JjIAotICAgIC8vIGF0dHJpYnV0ZSBh
bmQgd2hvc2UgbmV0d29ya1N0YXRlIGhhcyB0aGUgdmFsdWUgTkVUV09SS19FTVBUWSwgdGhlIHVz
ZXIgYWdlbnQgbXVzdCBpbnZva2UgCisgICAgLy8gNC44LjggLSBJZiBhIHNvdXJjZSBlbGVtZW50
IGlzIGluc2VydGVkIGFzIGEgY2hpbGQgb2YgYSBtZWRpYSBlbGVtZW50IHRoYXQgaGFzIG5vIHNy
YworICAgIC8vIGF0dHJpYnV0ZSBhbmQgd2hvc2UgbmV0d29ya1N0YXRlIGhhcyB0aGUgdmFsdWUg
TkVUV09SS19FTVBUWSwgdGhlIHVzZXIgYWdlbnQgbXVzdCBpbnZva2UKICAgICAvLyB0aGUgbWVk
aWEgZWxlbWVudCdzIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCiAgICAgaWYgKG1fbmV0
d29ya1N0YXRlID09IE5FVFdPUktfRU1QVFkpIHsKICAgICAgICAgbV9uZXh0Q2hpbGROb2RlVG9D
b25zaWRlciA9ICZzb3VyY2U7CkBAIC00Mzk3LDE3ICs0Mzk3LDE3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c291cmNlV2FzQWRkZWQoSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSkKIAogICAg
IGlmIChtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVyKQogICAgICAgICByZXR1cm47Ci0gICAgCisK
ICAgICAvLyA0LjguOS41LCByZXNvdXJjZSBzZWxlY3Rpb24gYWxnb3JpdGhtLCBzb3VyY2UgZWxl
bWVudHMgc2VjdGlvbjoKICAgICAvLyAyMS4gV2FpdCB1bnRpbCB0aGUgbm9kZSBhZnRlciBwb2lu
dGVyIGlzIGEgbm9kZSBvdGhlciB0aGFuIHRoZSBlbmQgb2YgdGhlIGxpc3QuIChUaGlzIHN0ZXAg
bWlnaHQgd2FpdCBmb3JldmVyLikKICAgICAvLyAyMi4gQXN5bmNocm9ub3VzbHkgYXdhaXQgYSBz
dGFibGUgc3RhdGUuLi4KLSAgICAvLyAyMy4gU2V0IHRoZSBlbGVtZW50J3MgZGVsYXlpbmctdGhl
LWxvYWQtZXZlbnQgZmxhZyBiYWNrIHRvIHRydWUgKHRoaXMgZGVsYXlzIHRoZSBsb2FkIGV2ZW50
IGFnYWluLCBpbiBjYXNlIAorICAgIC8vIDIzLiBTZXQgdGhlIGVsZW1lbnQncyBkZWxheWluZy10
aGUtbG9hZC1ldmVudCBmbGFnIGJhY2sgdG8gdHJ1ZSAodGhpcyBkZWxheXMgdGhlIGxvYWQgZXZl
bnQgYWdhaW4sIGluIGNhc2UKICAgICAvLyBpdCBoYXNuJ3QgYmVlbiBmaXJlZCB5ZXQpLgogICAg
IHNldFNob3VsZERlbGF5TG9hZEV2ZW50KHRydWUpOwogCiAgICAgLy8gMjQuIFNldCB0aGUgbmV0
d29ya1N0YXRlIGJhY2sgdG8gTkVUV09SS19MT0FESU5HLgogICAgIG1fbmV0d29ya1N0YXRlID0g
TkVUV09SS19MT0FESU5HOwotICAgIAorCiAgICAgLy8gMjUuIEp1bXAgYmFjayB0byB0aGUgZmlu
ZCBuZXh0IGNhbmRpZGF0ZSBzdGVwIGFib3ZlLgogICAgIG1fbmV4dENoaWxkTm9kZVRvQ29uc2lk
ZXIgPSAmc291cmNlOwogICAgIHNjaGVkdWxlTmV4dFNvdXJjZUNoaWxkKCk7CkBAIC00NDMyLDcg
KzQ0MzIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc1JlbW92ZWQoSFRNTFNv
dXJjZUVsZW1lbnQmIHNvdXJjZSkKICAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVu
dDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVyIHNldCB0byAl
cCIsIHRoaXMsIG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXIuZ2V0KCkpOwogICAgIH0gZWxzZSBp
ZiAoJnNvdXJjZSA9PSBtX2N1cnJlbnRTb3VyY2VOb2RlKSB7CiAgICAgICAgIC8vIENsZWFyIHRo
ZSBjdXJyZW50IHNvdXJjZSBub2RlIHBvaW50ZXIsIGJ1dCBkb24ndCBjaGFuZ2UgdGhlIG1vdmll
IGFzIHRoZSBzcGVjIHNheXM6Ci0gICAgICAgIC8vIDQuOC44IC0gRHluYW1pY2FsbHkgbW9kaWZ5
aW5nIGEgc291cmNlIGVsZW1lbnQgYW5kIGl0cyBhdHRyaWJ1dGUgd2hlbiB0aGUgZWxlbWVudCBp
cyBhbHJlYWR5IAorICAgICAgICAvLyA0LjguOCAtIER5bmFtaWNhbGx5IG1vZGlmeWluZyBhIHNv
dXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4gdGhlIGVsZW1lbnQgaXMgYWxyZWFk
eQogICAgICAgICAvLyBpbnNlcnRlZCBpbiBhIHZpZGVvIG9yIGF1ZGlvIGVsZW1lbnQgd2lsbCBo
YXZlIG5vIGVmZmVjdC4KICAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAg
ICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVJlbW92ZWQoJXApIC0g
bV9jdXJyZW50U291cmNlTm9kZSBzZXQgdG8gMCIsIHRoaXMpOwpAQCAtNDQ1NSw4ICs0NDU1LDgg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxh
eWVyKikKICAgICAvLyA0LjguMTAuOSBzdGVwIDE0ICYgMTUuICBOZWVkZWQgaWYgbm8gUmVhZHlT
dGF0ZSBjaGFuZ2UgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWVrLgogICAgIGlmIChtX3NlZWtS
ZXF1ZXN0ZWQgJiYgbV9yZWFkeVN0YXRlID49IEhBVkVfQ1VSUkVOVF9EQVRBICYmICFtX3BsYXll
ci0+c2Vla2luZygpKQogICAgICAgICBmaW5pc2hTZWVrKCk7Ci0gICAgCi0gICAgLy8gQWx3YXlz
IGNhbGwgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQgd2hlbiB0aGUgbWVkaWEgZW5naW5lIHJlcG9y
dHMgYSB0aW1lIGRpc2NvbnRpbnVpdHksIAorCisgICAgLy8gQWx3YXlzIGNhbGwgc2NoZWR1bGVU
aW1ldXBkYXRlRXZlbnQgd2hlbiB0aGUgbWVkaWEgZW5naW5lIHJlcG9ydHMgYSB0aW1lIGRpc2Nv
bnRpbnVpdHksCiAgICAgLy8gaXQgd2lsbCBvbmx5IHF1ZXVlIGEgJ3RpbWV1cGRhdGUnIGV2ZW50
IGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBwb3N0ZWQgb25lIGF0IHRoZSBjdXJyZW50CiAgICAgLy8g
bW92aWUgdGltZS4KICAgICBlbHNlCkBAIC00Nzc2LDcgKzQ3NzYsNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKE1lZGlhUGxheWVy
KikKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5n
ZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKCVwKSIsIHRoaXMpOwotICAgIAorCiAgICAg
YmVnaW5Qcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwogCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQpAQCAtNDg3NSw3ICs0ODc1LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpwb3Rl
bnRpYWxseVBsYXlpbmcoKSBjb25zdAogewogICAgIGlmIChpc0Jsb2NrZWRPbk1lZGlhQ29udHJv
bGxlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBpZiAoIWNvdWxkUGxh
eUlmRW5vdWdoRGF0YSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTQ5MTAsOCArNDkx
MCw4IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZW5kZWRQbGF5YmFjaygpIGNvbnN0CiAKICAg
ICAvLyA0LjguMTAuOCBQbGF5aW5nIHRoZSBtZWRpYSByZXNvdXJjZQogCi0gICAgLy8gQSBtZWRp
YSBlbGVtZW50IGlzIHNhaWQgdG8gaGF2ZSBlbmRlZCBwbGF5YmFjayB3aGVuIHRoZSBlbGVtZW50
J3MgCi0gICAgLy8gcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgSEFWRV9NRVRBREFUQSBvciBncmVh
dGVyLCAKKyAgICAvLyBBIG1lZGlhIGVsZW1lbnQgaXMgc2FpZCB0byBoYXZlIGVuZGVkIHBsYXli
YWNrIHdoZW4gdGhlIGVsZW1lbnQncworICAgIC8vIHJlYWR5U3RhdGUgYXR0cmlidXRlIGlzIEhB
VkVfTUVUQURBVEEgb3IgZ3JlYXRlciwKICAgICBpZiAobV9yZWFkeVN0YXRlIDwgSEFWRV9NRVRB
REFUQSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC00OTIyLDcgKzQ5MjIsNyBAQCBib29s
IEhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkUGxheWJhY2soKSBjb25zdAogICAgIGlmIChyZXF1ZXN0
ZWRQbGF5YmFja1JhdGUoKSA+IDApCiAgICAgICAgIHJldHVybiBkdXIgPiBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkgJiYgbm93ID49IGR1ciAmJiAoIWxvb3AoKSB8fCBtX21lZGlhQ29udHJvbGxlcik7
CiAKLSAgICAvLyBvciB0aGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBpcyB0aGUgZWFybGll
c3QgcG9zc2libGUgcG9zaXRpb24gYW5kIHRoZSBkaXJlY3Rpb24gCisgICAgLy8gb3IgdGhlIGN1
cnJlbnQgcGxheWJhY2sgcG9zaXRpb24gaXMgdGhlIGVhcmxpZXN0IHBvc3NpYmxlIHBvc2l0aW9u
IGFuZCB0aGUgZGlyZWN0aW9uCiAgICAgLy8gb2YgcGxheWJhY2sgaXMgYmFja3dhcmRzCiAgICAg
aWYgKHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpIDwgMCkKICAgICAgICAgcmV0dXJuIG5vdyA8PSBN
ZWRpYVRpbWU6Onplcm9UaW1lKCk7CkBAIC00OTM3LDcgKzQ5MzcsNyBAQCBib29sIEhUTUxNZWRp
YUVsZW1lbnQ6OnN0b3BwZWREdWVUb0Vycm9ycygpIGNvbnN0CiAgICAgICAgIGlmICghc2Vla2Fi
bGVSYW5nZXMtPmNvbnRhaW4oY3VycmVudFRpbWUoKSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTQ5NTgsNyArNDk1
OCw3IEBAIE1lZGlhVGltZSBIVE1MTWVkaWFFbGVtZW50OjptYXhUaW1lU2Vla2FibGUoKSBjb25z
dAogewogICAgIHJldHVybiBtX3BsYXllciA/IG1fcGxheWVyLT5tYXhUaW1lU2Vla2FibGUoKSA6
IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIH0KLSAgICAKKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp1cGRhdGVWb2x1bWUoKQogewogICAgIGlmICghbV9wbGF5ZXIpCkBAIC01MDIxLDcgKzUwMjEs
NyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0ZShVcGRhdGVTdGF0ZSB1
cGRhdGVTdGF0ZSkKICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+cGxheWJhY2tTdG9wcGVk
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBib29sIHNob3VsZEJlUGxh
eWluZyA9IHBvdGVudGlhbGx5UGxheWluZygpOwogICAgIGJvb2wgcGxheWVyUGF1c2VkID0gbV9w
bGF5ZXItPnBhdXNlZCgpOwogCkBAIC01MDc4LDcgKzUwNzgsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0ZShVcGRhdGVTdGF0ZSB1cGRhdGVTdGF0ZSkKICAgICAgICAg
aWYgKGhhc01lZGlhQ29udHJvbHMoKSkKICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+cGxh
eWJhY2tTdG9wcGVkKCk7CiAgICAgfQotICAgIAorCiAgICAgdXBkYXRlTWVkaWFDb250cm9sbGVy
KCk7CiAgICAgdXBkYXRlUmVuZGVyZXIoKTsKIApAQCAtNTE0Nyw5ICs1MTQ3LDkgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgZGV0YWNoTWVkaWFTb3Vy
Y2UoKTsKICNlbmRpZgogCi0gICAgLy8gNCAtIElmIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVhZHlT
dGF0ZSBhdHRyaWJ1dGUgaGFzIGEgdmFsdWUgZXF1YWwgdG8gSEFWRV9OT1RISU5HLCBzZXQgdGhl
IAotICAgIC8vIGVsZW1lbnQncyBuZXR3b3JrU3RhdGUgYXR0cmlidXRlIHRvIHRoZSBORVRXT1JL
X0VNUFRZIHZhbHVlIGFuZCBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIAotICAgIC8vIHNpbXBsZSBl
dmVudCBuYW1lZCBlbXB0aWVkIGF0IHRoZSBlbGVtZW50LiBPdGhlcndpc2UsIHNldCB0aGUgZWxl
bWVudCdzIG5ldHdvcmtTdGF0ZSAKKyAgICAvLyA0IC0gSWYgdGhlIG1lZGlhIGVsZW1lbnQncyBy
ZWFkeVN0YXRlIGF0dHJpYnV0ZSBoYXMgYSB2YWx1ZSBlcXVhbCB0byBIQVZFX05PVEhJTkcsIHNl
dCB0aGUKKyAgICAvLyBlbGVtZW50J3MgbmV0d29ya1N0YXRlIGF0dHJpYnV0ZSB0byB0aGUgTkVU
V09SS19FTVBUWSB2YWx1ZSBhbmQgcXVldWUgYSB0YXNrIHRvIGZpcmUgYQorICAgIC8vIHNpbXBs
ZSBldmVudCBuYW1lZCBlbXB0aWVkIGF0IHRoZSBlbGVtZW50LiBPdGhlcndpc2UsIHNldCB0aGUg
ZWxlbWVudCdzIG5ldHdvcmtTdGF0ZQogICAgIC8vIGF0dHJpYnV0ZSB0byB0aGUgTkVUV09SS19J
RExFIHZhbHVlLgogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gSEFWRV9OT1RISU5HKSB7CiAgICAg
ICAgIG1fbmV0d29ya1N0YXRlID0gTkVUV09SS19FTVBUWTsKQEAgLTUyMzksNyArNTIzOSw3IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2xlYXJNZWRpYVBsYXllcihEZWxheWVkQWN0aW9uVHlw
ZSBmbGFncykKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJ1ZTsgCisgICAgcmV0dXJuIHRydWU7
CiB9CiAKIGNvbnN0IGNoYXIqIEhUTUxNZWRpYUVsZW1lbnQ6OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdApAQCAtNTQ2Niw3ICs1NDY2LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjphZGRF
dmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnQKICAg
ICB9CiAKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjphZGRFdmVudExpc3RlbmVy
KCVwKSAtICd3ZWJraXRwbGF5YmFja3RhcmdldGF2YWlsYWJpbGl0eWNoYW5nZWQnIiwgdGhpcyk7
Ci0gICAgCisKICAgICBlbnF1ZXVlUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlDaGFuZ2VkRXZl
bnQoKTsgLy8gRW5zdXJlIHRoZSBldmVudCBsaXN0ZW5lciBnZXRzIGF0IGxlYXN0IG9uZSBldmVu
dC4KICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTU1NDYsMTcgKzU1NDYsMTcgQEAgZG91YmxlIEhU
TUxNZWRpYUVsZW1lbnQ6Om1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcGxheWVyID8gbV9wbGF5ZXItPm1heEZhc3RGb3J3YXJkUmF0ZSgpIDogMDsKIH0KLSAgICAK
KwogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4oKSBjb25zdAogewogICAgIGlm
IChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpCiAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIAorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IGlmIChkb2N1bWVudCgpLndlYmtpdElzRnVsbFNjcmVlbigpICYmIGRvY3VtZW50KCkud2Via2l0
Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkgPT0gdGhpcykKICAgICAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKLSAgICAKKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtNTU3Myw3ICs1NTcz
LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1N0YW5kYXJkRnVsbHNjcmVlbigpIGNvbnN0
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRvZ2dsZVN0YW5kYXJkRnVsbHNjcmVlblN0YXRlKCkK
IHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojp0b2dnbGVTdGFuZGFyZEZ1bGxz
Y3JlZW5TdGF0ZSglcCkgLSBpc1N0YW5kYXJkRnVsbHNjcmVlbigpIGlzICVzIiwgdGhpcywgYm9v
bFN0cmluZyhpc1N0YW5kYXJkRnVsbHNjcmVlbigpKSk7Ci0gICAgCisKICAgICBpZiAoaXNTdGFu
ZGFyZEZ1bGxzY3JlZW4oKSkKICAgICAgICAgZXhpdEZ1bGxzY3JlZW4oKTsKICAgICBlbHNlCkBA
IC01NzM3LDcgKzU3MzcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJl
ZEZvcklubGluZVRoZW4oV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcAogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorCiAgICAgbV9w
cmVwYXJlZEZvcklubGluZUNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcik7CiB9CiAKQEAgLTU3NDcsNyArNTc0Nyw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
aXNWaWRlb0xheWVySW5saW5lKCkKIHsKICAgICByZXR1cm4gIW1fdmlkZW9GdWxsc2NyZWVuTGF5
ZXI7CiB9OwotICAgIAorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVl
bkxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSBw
bGF0Zm9ybUxheWVyOwpAQCAtNTc1NSwxNCArNTc1NSwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIs
IFdURgogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIAorCiAgICAgbV9wbGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHBsYXRmb3Jt
TGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICBpbnZhbGlkYXRlU3R5bGVB
bmRMYXllckNvbXBvc2l0aW9uKCk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHVwZGF0
ZVRleHRUcmFja0Rpc3BsYXkoKTsKICNlbmRpZgogfQotICAgIAorCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKICAgICBt
X3ZpZGVvRnVsbHNjcmVlbkZyYW1lID0gZnJhbWU7CkBAIC01Nzc2LDkgKzU3NzYsOSBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6
OlZpZGVvR3Jhdml0eSBncmF2aQogICAgIGlmIChtX3BsYXllcikKICAgICAgICAgbV9wbGF5ZXIt
PnNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoZ3Jhdml0eSk7CiB9Ci0gICAgCisKICNlbHNlCi0g
ICAgCisKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNWaWRlb0xheWVySW5saW5lKCkKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTU4MjMsNyArNTgyMyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpCiAjZWxzZQogICAgIGlmICghaGFzTWVkaWFDb250
cm9scygpICYmICFjcmVhdGVNZWRpYUNvbnRyb2xzKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAK
KwogICAgIG1lZGlhQ29udHJvbHMoKS0+dXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpOwogI2VuZGlm
CiB9CkBAIC01OTcyLDcgKzU5NzIsNyBAQCBNZWRpYUNvbnRyb2xzKiBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYUNvbnRyb2xzKCkgY29uc3QKICAgICBTaGFkb3dSb290KiByb290ID0gdXNlckFnZW50
U2hhZG93Um9vdCgpOwogICAgIGlmICghcm9vdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgCisKICAgICByZXR1cm4gY2hpbGRyZW5PZlR5cGU8TWVkaWFDb250cm9scz4oKnJvb3QpLmZp
cnN0KCk7CiAjZW5kaWYKIH0KQEAgLTYxMDQsNyArNjEwNCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6Y29uZmlndXJlVGV4dFRyYWNrRGlzcGxheShUZXh0VHJhY2tWaXNpYmlsaXR5Q2hlY2tU
eXBlIGNoCiAgICAgICAgIHJldHVybjsKIAogICAgIG1lZGlhQ29udHJvbHMoKS0+Y2hhbmdlZENs
b3NlZENhcHRpb25zVmlzaWJpbGl0eSgpOwotICAgIAorCiAgICAgdXBkYXRlVGV4dFRyYWNrRGlz
cGxheSgpOwogICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSgp
KTsKICNlbmRpZgpAQCAtNjIzNSw3ICs2MjM1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZXRNZWRpYUdyb3VwKGNvbnN0IFN0cmluZyYgZ3JvdXApCiAgICAgICAgIHJldHVybjsKICAgICBt
X21lZGlhR3JvdXAgPSBncm91cDsKIAotICAgIC8vIFdoZW4gYSBtZWRpYSBlbGVtZW50IGlzIGNy
ZWF0ZWQgd2l0aCBhIG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBhbmQgd2hlbiBhIG1lZGlhIGVsZW1l
bnQncyBtZWRpYWdyb3VwIAorICAgIC8vIFdoZW4gYSBtZWRpYSBlbGVtZW50IGlzIGNyZWF0ZWQg
d2l0aCBhIG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBhbmQgd2hlbiBhIG1lZGlhIGVsZW1lbnQncyBt
ZWRpYWdyb3VwCiAgICAgLy8gYXR0cmlidXRlIGlzIHNldCwgY2hhbmdlZCwgb3IgcmVtb3ZlZCwg
dGhlIHVzZXIgYWdlbnQgbXVzdCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAvLyAxLiBM
ZXQgbSBbdGhpc10gYmUgdGhlIG1lZGlhIGVsZW1lbnQgaW4gcXVlc3Rpb24uCiAgICAgLy8gMi4g
TGV0IG0gaGF2ZSBubyBjdXJyZW50IG1lZGlhIGNvbnRyb2xsZXIsIGlmIGl0IGN1cnJlbnRseSBo
YXMgb25lLgpAQCAtNjI0NiwxNCArNjI0NiwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNl
dE1lZGlhR3JvdXAoY29uc3QgU3RyaW5nJiBncm91cCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gNC4gSWYgdGhlcmUgaXMgYW5vdGhlciBtZWRpYSBlbGVtZW50IHdob3NlIERvY3VtZW50IGlz
IHRoZSBzYW1lIGFzIG0ncyBEb2N1bWVudCAoZXZlbiBpZiBvbmUgb3IgYm90aAotICAgIC8vIG9m
IHRoZXNlIGVsZW1lbnRzIGFyZSBub3QgYWN0dWFsbHkgaW4gdGhlIERvY3VtZW50KSwgCisgICAg
Ly8gb2YgdGhlc2UgZWxlbWVudHMgYXJlIG5vdCBhY3R1YWxseSBpbiB0aGUgRG9jdW1lbnQpLAog
ICAgIEhhc2hTZXQ8SFRNTE1lZGlhRWxlbWVudCo+IGVsZW1lbnRzID0gZG9jdW1lbnRUb0VsZW1l
bnRTZXRNYXAoKS5nZXQoJmRvY3VtZW50KCkpOwogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGVs
ZW1lbnRzKSB7CiAgICAgICAgIGlmIChlbGVtZW50ID09IHRoaXMpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAogICAgICAgICAvLyBhbmQgd2hpY2ggYWxzbyBoYXMgYSBtZWRpYWdyb3VwIGF0dHJp
YnV0ZSwgYW5kIHdob3NlIG1lZGlhZ3JvdXAgYXR0cmlidXRlIGhhcyB0aGUgc2FtZSB2YWx1ZSBh
cwotICAgICAgICAvLyB0aGUgbmV3IHZhbHVlIG9mIG0ncyBtZWRpYWdyb3VwIGF0dHJpYnV0ZSwg
ICAgICAgIAorICAgICAgICAvLyB0aGUgbmV3IHZhbHVlIG9mIG0ncyBtZWRpYWdyb3VwIGF0dHJp
YnV0ZSwKICAgICAgICAgaWYgKGVsZW1lbnQtPm1lZGlhR3JvdXAoKSA9PSBncm91cCkgewogICAg
ICAgICAgICAgLy8gIHRoZW4gbGV0IGNvbnRyb2xsZXIgYmUgdGhhdCBtZWRpYSBlbGVtZW50J3Mg
Y3VycmVudCBtZWRpYSBjb250cm9sbGVyLgogICAgICAgICAgICAgc2V0Q29udHJvbGxlcihlbGVt
ZW50LT5jb250cm9sbGVyKCkpOwpAQCAtNjI4Nyw3ICs2Mjg3LDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzZXRDb250cm9sbGVyKFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+JiYgY29udHJvbGxl
cikKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlckZvckJpbmRpbmdzKE1lZGlh
Q29udHJvbGxlciogY29udHJvbGxlcikKIHsKICAgICAvLyA0LjguMTAuMTEuMiBNZWRpYSBjb250
cm9sbGVyczogY29udHJvbGxlciBhdHRyaWJ1dGUuCi0gICAgLy8gT24gc2V0dGluZywgaXQgbXVz
dCBmaXJzdCByZW1vdmUgdGhlIGVsZW1lbnQncyBtZWRpYWdyb3VwIGF0dHJpYnV0ZSwgaWYgYW55
LCAKKyAgICAvLyBPbiBzZXR0aW5nLCBpdCBtdXN0IGZpcnN0IHJlbW92ZSB0aGUgZWxlbWVudCdz
IG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBpZiBhbnksCiAgICAgc2V0TWVkaWFHcm91cCh7IH0pOwog
ICAgIC8vIGFuZCB0aGVuIHNldCB0aGUgY3VycmVudCBtZWRpYSBjb250cm9sbGVyIHRvIHRoZSBn
aXZlbiB2YWx1ZS4KICAgICBzZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOwpAQCAtNjMxNSwxMyAr
NjMxNSwxMyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzQmxvY2tlZE9uTWVkaWFDb250cm9s
bGVyKCkgY29uc3QKICAgICBpZiAoIW1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICAvLyBBIG1lZGlhIGVsZW1lbnQgaXMgYmxvY2tlZCBvbiBpdHMgbWVkaWEg
Y29udHJvbGxlciBpZiB0aGUgTWVkaWFDb250cm9sbGVyIGlzIGEgYmxvY2tlZCAKKyAgICAvLyBB
IG1lZGlhIGVsZW1lbnQgaXMgYmxvY2tlZCBvbiBpdHMgbWVkaWEgY29udHJvbGxlciBpZiB0aGUg
TWVkaWFDb250cm9sbGVyIGlzIGEgYmxvY2tlZAogICAgIC8vIG1lZGlhIGNvbnRyb2xsZXIsCiAg
ICAgaWYgKG1fbWVkaWFDb250cm9sbGVyLT5pc0Jsb2NrZWQoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKLSAgICAvLyBvciBpZiBpdHMgbWVkaWEgY29udHJvbGxlciBwb3NpdGlvbiBpcyBlaXRo
ZXIgYmVmb3JlIHRoZSBtZWRpYSByZXNvdXJjZSdzIGVhcmxpZXN0IHBvc3NpYmxlIAotICAgIC8v
IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBNZWRpYUNvbnRyb2xsZXIncyB0aW1lbGluZSBvciBh
ZnRlciB0aGUgZW5kIG9mIHRoZSBtZWRpYSByZXNvdXJjZSAKKyAgICAvLyBvciBpZiBpdHMgbWVk
aWEgY29udHJvbGxlciBwb3NpdGlvbiBpcyBlaXRoZXIgYmVmb3JlIHRoZSBtZWRpYSByZXNvdXJj
ZSdzIGVhcmxpZXN0IHBvc3NpYmxlCisgICAgLy8gcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIE1l
ZGlhQ29udHJvbGxlcidzIHRpbWVsaW5lIG9yIGFmdGVyIHRoZSBlbmQgb2YgdGhlIG1lZGlhIHJl
c291cmNlCiAgICAgLy8gcmVsYXRpdmUgdG8gdGhlIE1lZGlhQ29udHJvbGxlcidzIHRpbWVsaW5l
LgogICAgIGRvdWJsZSBtZWRpYUNvbnRyb2xsZXJQb3NpdGlvbiA9IG1fbWVkaWFDb250cm9sbGVy
LT5jdXJyZW50VGltZSgpOwogICAgIGlmIChtZWRpYUNvbnRyb2xsZXJQb3NpdGlvbiA8IDAgfHwg
bWVkaWFDb250cm9sbGVyUG9zaXRpb24gPiBkdXJhdGlvbigpKQpAQCAtNjMzNCw3ICs2MzM0LDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlTWVkaWFGcmFnbWVudFVSSSgpCiB7CiAg
ICAgTWVkaWFGcmFnbWVudFVSSVBhcnNlciBmcmFnbWVudFBhcnNlcihtX2N1cnJlbnRTcmMpOwog
ICAgIE1lZGlhVGltZSBkdXIgPSBkdXJhdGlvbk1lZGlhVGltZSgpOwotICAgIAorCiAgICAgTWVk
aWFUaW1lIHN0YXJ0ID0gZnJhZ21lbnRQYXJzZXIuc3RhcnRUaW1lKCk7CiAgICAgaWYgKHN0YXJ0
LmlzVmFsaWQoKSAmJiBzdGFydCA+IE1lZGlhVGltZTo6emVyb1RpbWUoKSkgewogICAgICAgICBt
X2ZyYWdtZW50U3RhcnRUaW1lID0gc3RhcnQ7CkBAIC02MzQyLDcgKzYzNDIsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVNZWRpYUZyYWdtZW50VVJJKCkKICAgICAgICAgICAgIG1f
ZnJhZ21lbnRTdGFydFRpbWUgPSBkdXI7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fZnJhZ21lbnRT
dGFydFRpbWUgPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7Ci0gICAgCisKICAgICBNZWRpYVRp
bWUgZW5kID0gZnJhZ21lbnRQYXJzZXIuZW5kVGltZSgpOwogICAgIGlmIChlbmQuaXNWYWxpZCgp
ICYmIGVuZCA+IE1lZGlhVGltZTo6emVyb1RpbWUoKSAmJiAoIW1fZnJhZ21lbnRTdGFydFRpbWUu
aXNWYWxpZCgpIHx8IGVuZCA+IG1fZnJhZ21lbnRTdGFydFRpbWUpKSB7CiAgICAgICAgIG1fZnJh
Z21lbnRFbmRUaW1lID0gZW5kOwpAQCAtNjM1MCw3ICs2MzUwLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpwcmVwYXJlTWVkaWFGcmFnbWVudFVSSSgpCiAgICAgICAgICAgICBtX2ZyYWdtZW50
RW5kVGltZSA9IGR1cjsKICAgICB9IGVsc2UKICAgICAgICAgbV9mcmFnbWVudEVuZFRpbWUgPSBN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7Ci0gICAgCisKICAgICBpZiAobV9mcmFnbWVudFN0YXJ0
VGltZS5pc1ZhbGlkKCkgJiYgbV9yZWFkeVN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSkKICAgICAg
ICAgcHJlcGFyZVRvUGxheSgpOwogfQpAQCAtNjg4Niw3ICs2ODg2LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiAK
ICAgICBhdXRvIG1lZGlhSlNXcmFwcGVyID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICp0aGlz
KTsKICAgICBhdXRvIG1lZGlhQ29udHJvbHNIb3N0SlNXcmFwcGVyID0gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsICptX21lZGlhQ29udHJvbHNIb3N0KTsKLSAgICAKKwogICAgIEpTQzo6TWFya2Vk
QXJndW1lbnRCdWZmZXIgYXJnTGlzdDsKICAgICBhcmdMaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgcm9vdCkpOwogICAgIGFyZ0xpc3QuYXBwZW5kKG1lZGlhSlNXcmFwcGVyKTsK
QEAgLTY5MDksNyArNjkwOSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVXNlckFn
ZW50U2hhZG93Um9vdChTaGFkb3dSb290KiByb290KQogICAgIEpTQzo6SlNPYmplY3QqIG1lZGlh
SlNXcmFwcGVyT2JqZWN0ID0gbWVkaWFKU1dyYXBwZXIudG9PYmplY3QoZXhlYyk7CiAgICAgc2Nv
cGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICBKU0M6OklkZW50aWZpZXIgY29udHJvbHNIb3N0
ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZleGVjLT52bSgpLCAiY29udHJvbHNIb3N0
Iik7Ci0gICAgCisKICAgICBBU1NFUlQoIW1lZGlhSlNXcmFwcGVyT2JqZWN0LT5oYXNQcm9wZXJ0
eShleGVjLCBjb250cm9sc0hvc3QpKTsKIAogICAgIG1lZGlhSlNXcmFwcGVyT2JqZWN0LT5wdXRE
aXJlY3QoZXhlYy0+dm0oKSwgY29udHJvbHNIb3N0LCBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBl
ciwgSlNDOjpEb250RGVsZXRlIHwgSlNDOjpEb250RW51bSB8IEpTQzo6UmVhZE9ubHkpOwpAQCAt
NjkxNyw3ICs2OTE3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRT
aGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgSlNDOjpKU09iamVjdCogbWVkaWFDb250
cm9sc0hvc3RKU1dyYXBwZXJPYmplY3QgPSBqc0R5bmFtaWNEb3duY2FzdDxKU0M6OkpTT2JqZWN0
Kj4odm0sIG1lZGlhQ29udHJvbHNIb3N0SlNXcmFwcGVyKTsKICAgICBpZiAoIW1lZGlhQ29udHJv
bHNIb3N0SlNXcmFwcGVyT2JqZWN0KQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICBKU0M6
OklkZW50aWZpZXIgY29udHJvbGxlciA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmZXhl
Yy0+dm0oKSwgImNvbnRyb2xsZXIiKTsKIAogICAgIEFTU0VSVCghY29udHJvbGxlck9iamVjdC0+
aGFzUHJvcGVydHkoZXhlYywgY29udHJvbGxlcikpOwpAQCAtNzAzOCw3ICs3MDM4LDcgQEAgdW5z
aWduZWQgbG9uZyBsb25nIEhUTUxNZWRpYUVsZW1lbnQ6OmZpbGVTaXplKCkgY29uc3QKIHsKICAg
ICBpZiAobV9wbGF5ZXIpCiAgICAgICAgIHJldHVybiBtX3BsYXllci0+ZmlsZVNpemUoKTsKLSAg
ICAKKwogICAgIHJldHVybiAwOwogfQogCkBAIC03MTM3LDEyICs3MTM3LDEyIEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bWF5UmVzdW1lUGxheWJhY2soYm9vbCBzaG91bGRSZXN1bWUpCiAgICAg
aWYgKHBhdXNlZCgpICYmIHNob3VsZFJlc3VtZSkKICAgICAgICAgcGxheSgpOwogfQotICAgIAor
CiBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVGl0bGUoKSBjb25zdAogewog
ICAgIGlmIChoYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHRpdGxlQXR0cikpCiAg
ICAgICAgIHJldHVybiBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHRpdGxlQXR0cik7
Ci0gICAgCisKICAgICByZXR1cm4gbV9jdXJyZW50U3JjOwogfQogCkBAIC03MTg2LDEyICs3MTg2
LDEyIEBAIHN0YXRpYyBib29sIG5lZWRzU2Vla2luZ1N1cHBvcnRRdWlyayhEb2N1bWVudCYgZG9j
dW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLm5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIAorCiAgICAgU3Ry
aW5nIGhvc3QgPSBkb2N1bWVudC50b3BEb2N1bWVudCgpLnVybCgpLmhvc3QoKTsKICAgICByZXR1
cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgIm5ldGZsaXguY29tIikgfHwg
aG9zdC5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIubmV0ZmxpeC5jb20iKTsKIH0KIAotYm9v
bCBIVE1MTWVkaWFFbGVtZW50OjpzdXBwb3J0c1NlZWtpbmcoKSBjb25zdCAKK2Jvb2wgSFRNTE1l
ZGlhRWxlbWVudDo6c3VwcG9ydHNTZWVraW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4gIW5lZWRz
U2Vla2luZ1N1cHBvcnRRdWlyayhkb2N1bWVudCgpKSAmJiAhaXNMaXZlU3RyZWFtKCk7CiB9CkBA
IC03MzUyLDEzICs3MzUyLDEzIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZG9lc0hhdmVBdHRy
aWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGUsIEF0b21pY1N0CiAgICAgYXV0byYg
ZWxlbWVudFZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhdHRyaWJ1dGVO
YW1lKTsKICAgICBpZiAoZWxlbWVudFZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgCisKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBIVE1MTmFtZXM6OnhfaXR1bmVz
X2luaGVyaXRfdXJpX3F1ZXJ5X2NvbXBvbmVudEF0dHIgJiYgIWRvY3VtZW50KCkuc2V0dGluZ3Mo
KS5lbmFibGVJbmhlcml0VVJJUXVlcnlDb21wb25lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgaWYgKHZhbHVlKQogICAgICAgICAqdmFsdWUgPSBlbGVtZW50VmFsdWU7Ci0gICAg
CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNzQ2MywxNCArNzQ2MywxNCBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWQo
KQogICAgIGlmIChwb3RlbnRpYWxseVBsYXlpbmcoKSAmJiBtX21lZGlhU2Vzc2lvbi0+cmVxdWly
ZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygqdGhpcykgJiYgIWlzRnVsbHNjcmVlbigpKQog
ICAgICAgICBlbnRlckZ1bGxzY3JlZW4oKTsKIH0KLSAgICAKKwogYm9vbCBIVE1MTWVkaWFFbGVt
ZW50Ojppc1ZpZGVvVG9vU21hbGxGb3JJbmxpbmVQbGF5YmFjaygpCiB7CiAgICAgYXV0byogcmVu
ZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwotICAgIAorCiAgICAgaWYgKCFyZW5kZXJlciB8fCAh
aXM8UmVuZGVyVmlkZW8+KCpyZW5kZXJlcikpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIAor
CiAgICAgSW50UmVjdCB2aWRlb0JveCA9IGRvd25jYXN0PFJlbmRlclZpZGVvPigqcmVuZGVyZXIp
LnZpZGVvQm94KCk7CiAgICAgcmV0dXJuICh2aWRlb0JveC53aWR0aCgpIDw9IDEgfHwgdmlkZW9C
b3guaGVpZ2h0KCkgPD0gMSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcAppbmRleCA3YmNlMzQ4YzRlMi4uZjY0M2Y4NzdjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzY5LDcgKzc2OSw3IEBAIHZvaWQgRG9jdW1lbnRM
b2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlvbiBwb2xpY3kpCiAg
ICAgICAgIC8vIERvd25sb2FkIG1heSB1c2UgdGhpcyBrbm93bGVkZ2UgZm9yIHB1cnBvc2VzIHVu
cmVsYXRlZCB0byBjb29raWVzLCBub3RhYmx5IGZvciBzZXR0aW5nIGZpbGUgcXVhcmFudGluZSBk
YXRhLgogICAgICAgICBmcmFtZUxvYWRlcigpLT5zZXRPcmlnaW5hbFVSTEZvckRvd25sb2FkUmVx
dWVzdChtX3JlcXVlc3QpOwogCi0gICAgICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
ID0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICAgICAgaWYgKGZyYW1l
KCkgJiYgZnJhbWUoKS0+cGFnZSgpKQogICAgICAgICAgICAgc2Vzc2lvbklEID0gZnJhbWUoKS0+
cGFnZSgpLT5zZXNzaW9uSUQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAppbmRleCBjY2RjMDU1ZGNlNC4uNjM2NmMxNWMzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgY2xhc3MgRW1wdHlDb250ZXh0TWVu
dUNsaWVudCBmaW5hbCA6IHB1YmxpYyBDb250ZXh0TWVudUNsaWVudCB7CiAKIGNsYXNzIEVtcHR5
RGF0YWJhc2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBEYXRhYmFzZVByb3ZpZGVyIHsKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1Nl
cnZlciYgaWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBTZXNzaW9uSUQmKSBm
aW5hbAorICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9u
VG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgZmluYWwKICAgICB7CiAg
ICAgICAgIHN0YXRpYyBhdXRvJiBzaGFyZWRDb25uZWN0aW9uID0gSW5Qcm9jZXNzSURCU2VydmVy
OjpjcmVhdGUoKS5sZWFrUmVmKCk7CiAgICAgICAgIHJldHVybiBzaGFyZWRDb25uZWN0aW9uLmNv
bm5lY3Rpb25Ub1NlcnZlcigpOwpAQCAtMjkzLDcgKzI5Myw3IEBAIGNsYXNzIEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQgZmluYWwgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAgIHZvaWQg
ZGV0YWNoZWRGcm9tUGFyZW50MigpIGZpbmFsIHsgfQogICAgIHZvaWQgZGV0YWNoZWRGcm9tUGFy
ZW50MygpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93
bmxvYWQoRG9jdW1lbnRMb2FkZXIqLCBTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbnZlcnRNYWlu
UmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9
CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgZmluYWwgeyB9CiAg
ICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA0ODcyNjU5ZWU1Li5jZmE0NGU0YjJmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTU3LDYgKzU3LDEwIEBA
IE9CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OwogT0JKQ19DTEFTUyBOU1ZpZXc7CiAjZW5kaWYKIAor
bmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CkBAIC05MCw3ICs5NCw2IEBAIGNs
YXNzIFJlc291cmNlSGFuZGxlOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2Vzc2lvbklEOwogY2xh
c3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiBjbGFzcyBVUkw7CkBAIC0y
NzMsNyArMjc2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29t
ZUZyYW1lc2V0KGJvb2wpID0gMDsgLy8gQ2FuIGNoYW5nZSBkdWUgdG8gbmF2aWdhdGlvbiBvciBE
T00gbW9kaWZpY2F0aW9uLgogCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KERvY3VtZW50TG9hZGVyKiwgU2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqLCBQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKIAogICAg
IHZpcnR1YWwgUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQp
ID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRT
aXplJiwgSFRNTFBsdWdJbkVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCBsb2FkTWFudWFs
bHkpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NT
dHlsZVNoZWV0LmNwcAppbmRleCA3NTkyYjIzOTU0My4uOWVkMmIzMWZkNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAg
LTM4LDcgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRDU1NTdHlsZVNo
ZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHls
ZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIENTU1N0eWxl
U2hlZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpj
cmVhdGUoInRleHQvY3NzIiwgcmVxdWVzdC5jaGFyc2V0KCkpKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKaW5kZXggODNjNjdkYjlj
NTMuLmZiMzRkMWNiMDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkQ1NTU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRDU1NTdHlsZVNoZWV0LmgKQEAgLTM0LDcgKzM0LDcgQEAgc3RydWN0IENTU1BhcnNlckNv
bnRleHQ7CiAKIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQgZmluYWwgOiBwdWJsaWMgQ2FjaGVk
UmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZENT
U1N0eWxlU2hlZXQoKTsKIAogICAgIGVudW0gY2xhc3MgTUlNRVR5cGVDaGVja0hpbnQgeyBTdHJp
Y3QsIExheCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZEZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmlu
ZGV4IGQ5MDU2N2NjN2M4Li44OGM1MDgzYzZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRGb250LmNwcApAQCAtNDUsNyArNDUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUNhY2hlZEZvbnQ6OkNhY2hlZEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgVHlwZSB0eXBlKQorQ2FjaGVkRm9udDo6Q2FjaGVk
Rm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFR5cGUgdHlwZSkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCks
IHR5cGUsIHNlc3Npb25JRCkKICAgICAsIG1fbG9hZEluaXRpYXRlZChmYWxzZSkKICAgICAsIG1f
aGFzQ3JlYXRlZEZvbnREYXRhV3JhcHBpbmdSZXNvdXJjZShmYWxzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDdlOWVhOGJkMTAzLi4wMTVjNjUwZDIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCkBAIC00NSw3ICs0NSw3
IEBAIHR5cGVkZWYgRm9udFRhZ2dlZFNldHRpbmdzPGludD4gRm9udEZlYXR1cmVTZXR0aW5nczsK
IAogY2xhc3MgQ2FjaGVkRm9udCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0g
ICAgQ2FjaGVkRm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklELCBUeXBlID0g
Rm9udFJlc291cmNlKTsKKyAgICBDYWNoZWRGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQ
QUw6OlNlc3Npb25JRCwgVHlwZSA9IEZvbnRSZXNvdXJjZSk7CiAgICAgdmlydHVhbCB+Q2FjaGVk
Rm9udCgpOwogCiAgICAgdm9pZCBiZWdpbkxvYWRJZk5lZWRlZChDYWNoZWRSZXNvdXJjZUxvYWRl
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXgg
MTdkNmZmYjFlODUuLjhjYWU3MjQzYTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTU1LDE5ICs1NSwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKENh
Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
ICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIEltYWdlUmVzb3VyY2UsIHNl
c3Npb25JRCkKIHsKICAgICBzZXRTdGF0dXMoVW5rbm93bik7CiB9CiAKLUNhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRJbWFn
ZTo6Q2FjaGVkSW1hZ2UoSW1hZ2UqIGltYWdlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAg
ICAgOiBDYWNoZWRSZXNvdXJjZShVUkwoKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAg
ICwgbV9pbWFnZShpbWFnZSkKIHsKIH0KIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0
IFVSTCYgdXJsLCBJbWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29u
c3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGRvbWFpbkZvckNhY2hlUGFydGl0aW9uKQogICAgIDogQ2FjaGVkUmVzb3VyY2Uo
dXJsLCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAg
ICwgbV9pc01hbnVhbGx5Q2FjaGVkKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5oCmluZGV4IDUyYzQ3NmNmZTFjLi5hN2U4OTg2YTU3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTQ3LDEwICs0NywxMCBAQCBjbGFz
cyBDYWNoZWRJbWFnZSBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiAgICAgZnJpZW5k
IGNsYXNzIE1lbW9yeUNhY2hlOwogCiBwdWJsaWM6Ci0gICAgQ2FjaGVkSW1hZ2UoQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7Ci0gICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqLCBTZXNz
aW9uSUQpOworICAgIENhY2hlZEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQQUw6OlNl
c3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqLCBQQUw6OlNlc3Npb25JRCk7CiAgICAg
Ly8gQ29uc3RydWN0b3IgdG8gdXNlIGZvciBtYW51YWxseSBjYWNoZWQgaW1hZ2VzLgotICAgIENh
Y2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwgU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRv
bWFpbkZvckNhY2hlUGFydGl0aW9uKTsKKyAgICBDYWNoZWRJbWFnZShjb25zdCBVUkwmLCBJbWFn
ZSosIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRvbWFpbkZvckNhY2hlUGFydGl0aW9u
KTsKICAgICB2aXJ0dWFsIH5DYWNoZWRJbWFnZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgSW1h
Z2UqIGltYWdlKCk7IC8vIFJldHVybnMgdGhlIG51bGxJbWFnZSgpIGlmIHRoZSBpbWFnZSBpcyBu
b3QgYXZhaWxhYmxlIHlldC4KQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB2b2lkIGNsZWFyKCk7CiAKLSAgICBDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2Um
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHNl
dEJvZHlEYXRhRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYpIGZpbmFsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCBkMmQz
MTZkODRhYS4uZDgzNTA5YjNjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3Npb25JRCBzZXNzaW9uSUQp
CitDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgVHlwZSB0eXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAg
OiBDYWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCB0eXBlLCBzZXNzaW9uSUQpCiAgICAg
LCBtX2lkZW50aWZpZXIoMCkKICAgICAsIG1fYWxsb3dFbmNvZGVkRGF0YVJlcGxhY2VtZW50KHRy
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5o
CmluZGV4IGJiNWE1YjhkZWUzLi4xNWE4YTg2NjA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3Mg
U3VicmVzb3VyY2VMb2FkZXI7CiAKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlIGZpbmFsIDogcHVi
bGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKLSAgICBDYWNoZWRSYXdSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSYXdSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwgUEFMOjpTZXNzaW9uSUQpOwogCiAg
ICAgLy8gRklYTUU6IEFzc29jaWF0ZWRVUkxMb2FkZXIgc2hvdWxkbid0IGJlIGEgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyIGFuZCB0aGVyZWZvcmUgc2hvdWxkbid0CiAgICAgLy8gdXNlIENhY2hl
ZFJhd1Jlc291cmNlLiBIb3dldmVyLCBpdCBpcywgYW5kIGl0IG5lZWRzIHRvIGJlIGFibGUgdG8g
ZGVmZXIgbG9hZGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGU1ZWVjMjVmZWVlLi5lODYyYWEwZjQxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xMTUsNyArMTE1LDcg
QEAgc3RhdGljIFNlY29uZHMgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbEZvclJlc291
cmNlVHlwZShDYWNoZWRSZXNvdXJjZTo6VHkKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJl
ZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRS
ZXNvdXJjZSIpKTsKIAotQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKENhY2hlZFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0Nh
Y2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBUeXBlIHR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fcmVzb3Vy
Y2VSZXF1ZXN0KHJlcXVlc3QucmVsZWFzZVJlc291cmNlUmVxdWVzdCgpKQogICAgICwgbV9vcHRp
b25zKHJlcXVlc3Qub3B0aW9ucygpKQogICAgICwgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGltZXIo
KnRoaXMsICZDYWNoZWRSZXNvdXJjZTo6ZGVzdHJveURlY29kZWREYXRhLCBkZWFkRGVjb2RlZERh
dGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5cGUpKQpAQCAtMTQ1LDcgKzE0NSw3
IEBAIENhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3NpCiB9CiAKIC8vIEZJWE1FOiBGb3IgdGhpcyBjb25z
dHJ1Y3Rvciwgd2Ugc2hvdWxkIHByb2JhYmx5IG1hbmRhdGUgdGhhdCB0aGUgVVJMIGhhcyBubyBm
cmFnbWVudCBpZGVudGlmaWVyLgotQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0
IFVSTCYgdXJsLCBUeXBlIHR5cGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRSZXNvdXJj
ZTo6Q2FjaGVkUmVzb3VyY2UoY29uc3QgVVJMJiB1cmwsIFR5cGUgdHlwZSwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QodXJsKQogICAgICwgbV9kZWNv
ZGVkRGF0YURlbGV0aW9uVGltZXIoKnRoaXMsICZDYWNoZWRSZXNvdXJjZTo6ZGVzdHJveURlY29k
ZWREYXRhLCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5
cGUpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCA2OTk2YmJhMjc1Mi4uZTEwMTg4ZTgyOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0z
MCw4ICszMCw4IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgotI2lu
Y2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8dGltZS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC05NCw3ICs5NCw3
IEBAIHB1YmxpYzoKICAgICAgICAgRGVjb2RlRXJyb3IKICAgICB9OwogCi0gICAgQ2FjaGVkUmVz
b3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFR5cGUsIFNlc3Npb25JRCk7CisgICAgQ2Fj
aGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFR5cGUsIFBBTDo6U2Vzc2lvbklE
KTsKICAgICB2aXJ0dWFsIH5DYWNoZWRSZXNvdXJjZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGxv
YWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImKTsKQEAgLTExNSw3ICsxMTUsNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVy
biBtX3Jlc291cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1
cm4gbV9yZXNvdXJjZVJlcXVlc3QudXJsKCk7fQogICAgIGNvbnN0IFN0cmluZyYgY2FjaGVQYXJ0
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC5jYWNoZVBhcnRpdGlvbigp
OyB9Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQ7IH0KICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAg
IFJlc291cmNlTG9hZFByaW9yaXR5IGxvYWRQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZFByaW9yaXR5OyB9CkBAIC0yODEsNyArMjgxLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAg
ICAgLy8gQ2FjaGVkUmVzb3VyY2UgY29uc3RydWN0b3IgdGhhdCBtYXkgYmUgdXNlZCB3aGVuIHRo
ZSBDYWNoZWRSZXNvdXJjZSBjYW4gYWxyZWFkeSBiZSBmaWxsZWQgd2l0aCByZXNwb25zZSBkYXRh
LgotICAgIENhY2hlZFJlc291cmNlKGNvbnN0IFVSTCYsIFR5cGUsIFNlc3Npb25JRCk7CisgICAg
Q2FjaGVkUmVzb3VyY2UoY29uc3QgVVJMJiwgVHlwZSwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAg
dm9pZCBzZXRFbmNvZGVkU2l6ZSh1bnNpZ25lZCk7CiAgICAgdm9pZCBzZXREZWNvZGVkU2l6ZSh1
bnNpZ25lZCk7CkBAIC0zMTcsNyArMzE3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZhaWxCZWZv
cmVTdGFydGluZygpOwogCiAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJjZUNsaWVudCosIHN0ZDo6
dW5pcXVlX3B0cjxDYWxsYmFjaz4+IG1fY2xpZW50c0F3YWl0aW5nQ2FsbGJhY2s7Ci0gICAgU2Vz
c2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAg
IFJlc291cmNlTG9hZFByaW9yaXR5IG1fbG9hZFByaW9yaXR5OwogICAgIHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbV9yZXNwb25zZVRpbWVzdGFtcDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggYmVhYTkxZjgwMGMuLmFjYTk4MWE3NmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTY2LDEyICs2NiwxMiBA
QAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIK
ICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC04Niw3ICs4Niw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vIFRpbWVvdXQgZm9yIGxpbmsgcHJlbG9hZHMgdG8gYmUgdXNlZCBhZnRl
ciB3aW5kb3cub25sb2FkCiBzdGF0aWMgY29uc3QgU2Vjb25kcyB1bnVzZWRQcmVsb2FkVGltZW91
dCB7IDNfcyB9OwogCi1zdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hl
ZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNl
c3Npb25JRCBzZXNzaW9uSUQpCitzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNl
KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgpAQCAtMTcxLDkgKzE3MSw5IEBA
IEZyYW1lKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZnJhbWUoKSBjb25zdAogICAgIHJldHVybiBt
X2RvY3VtZW50TG9hZGVyID8gbV9kb2N1bWVudExvYWRlci0+ZnJhbWUoKSA6IG51bGxwdHI7CiB9
CiAKLVNlc3Npb25JRCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2Vzc2lvbklEKCkgY29uc3QKK1BB
TDo6U2Vzc2lvbklEIENhY2hlZFJlc291cmNlTG9hZGVyOjpzZXNzaW9uSUQoKSBjb25zdAogewot
ICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsK
KyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpOwogCiAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKICAgICAgICAgc2Vzc2lv
bklEID0gZi0+cGFnZSgpLT5zZXNzaW9uSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggMzhhOWMwOTgxYjEuLmRhZWNm
MTBlZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaApAQCAtMTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9IC8vIENhbiBiZSBudWxsCiAg
ICAgdm9pZCBzZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpIHsgbV9kb2N1bWVudCA9IGRv
Y3VtZW50OyB9CiAgICAgdm9pZCBjbGVhckRvY3VtZW50TG9hZGVyKCkgeyBtX2RvY3VtZW50TG9h
ZGVyID0gbnVsbHB0cjsgfQotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKKyAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKIAogICAgIHZvaWQgcmVtb3ZlQ2FjaGVk
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKaW5kZXggMDhiNDAxNjlkMzMuLjZiNjYzMDQz
MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1
bWVudC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNo
ZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRT
VkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBTVkdE
b2N1bWVudFJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNl
RGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlvbi94bWwiKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmgKaW5kZXggYjM1NjZmZTM4N2UuLjcy
ZTVkNzM4ZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U1ZHRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
RG9jdW1lbnQuaApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENhY2hlZFNWR0RvY3VtZW50IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1Ymxp
YzoKLSAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiwgU2Vzc2lvbklEKTsKKyAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNWR0Rv
Y3VtZW50KCk7CiAKICAgICBTVkdEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBt
X2RvY3VtZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU1ZHRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U1ZHRm9udC5jcHAKaW5kZXggYTU0NzYxZjZiOTQuLmEwY2E4NmViODk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwCkBAIC00Niw3ICs0Niw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2Fj
aGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRGb250KFdURk1vdmUocmVx
dWVzdCksIHNlc3Npb25JRCwgU1ZHRm9udFJlc291cmNlKQogICAgICwgbV9leHRlcm5hbFNWR0Zv
bnRFbGVtZW50KG51bGxwdHIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRm9udC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0ZvbnQuaAppbmRleCBlODgwOGM2YmRmNS4uYjFiMGQ1NThkMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFz
cyBTVkdGb250RmFjZUVsZW1lbnQ7CiAKIGNsYXNzIENhY2hlZFNWR0ZvbnQgZmluYWwgOiBwdWJs
aWMgQ2FjaGVkRm9udCB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkU1ZHRm9udChDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNl
UmVxdWVzdCYmLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBib29sIGVuc3VyZUN1c3RvbUZvbnRE
YXRhKGNvbnN0IEF0b21pY1N0cmluZyYgcmVtb3RlVVJJKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAppbmRleCBiMmJmY2MxMWU3OC4u
NTFkNjBmZjFmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVk
U2NyaXB0OjpDYWNoZWRTY3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vz
c2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KENhY2hlZFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENh
Y2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIFNjcmlwdCwgc2Vzc2lvbklEKQogICAgICwg
bV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZShBU0NJSUxpdGVyYWwoImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiKSwgcmVxdWVzdC5jaGFyc2V0KCkpKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCmluZGV4IDZiYjBmMzEyZjNjLi5jMDgxNmFl
Y2VjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaApAQCAt
MzMsNyArMzMsNyBAQCBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogCiBjbGFzcyBDYWNoZWRT
Y3JpcHQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hl
ZFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRT
Y3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2aXJ0
dWFsIH5DYWNoZWRTY3JpcHQoKTsKIAogICAgIFN0cmluZ1ZpZXcgc2NyaXB0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCmluZGV4IDFkODJi
ZDcxYjQyLi5mZDNkMGI4ZDdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFRleHRUcmFjay5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1DYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkVGV4dFRyYWNrOjpD
YWNoZWRUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwg
VGV4dFRyYWNrUmVzb3VyY2UsIHNlc3Npb25JRCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaAppbmRleCA4ZDRhMGUxZmFmNy4uMjFlYmMzZjYz
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJh
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmgK
QEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRUZXh0
VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hl
ZFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNo
ZWRUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lvbklEKTsKIAog
cHJpdmF0ZToKICAgICBib29sIG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBjOWYwZGM4N2FmYy4uOTRmMWQxMDZkNjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNo
ZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVT
aGVldC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgRU5B
QkxFKFhTTFQpCiAKLUNhY2hlZFhTTFN0eWxlU2hlZXQ6OkNhY2hlZFhTTFN0eWxlU2hlZXQoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hl
ZFhTTFN0eWxlU2hlZXQ6OkNhY2hlZFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3Vy
Y2UoV1RGTW92ZShyZXF1ZXN0KSwgWFNMU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9k
ZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCmluZGV4
IDNlZjBmNjAwZTQ0Li4yZDE3YTAyNGY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFRl
eHRSZXNvdXJjZURlY29kZXI7CiAKIGNsYXNzIENhY2hlZFhTTFN0eWxlU2hlZXQgZmluYWwgOiBw
dWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZFhTTFN0eWxlU2hlZXQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkWFNMU3R5bGVT
aGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1
YWwgfkNhY2hlZFhTTFN0eWxlU2hlZXQoKTsKIAogICAgIGNvbnN0IFN0cmluZyYgc2hlZXQoKSBj
b25zdCB7IHJldHVybiBtX3NoZWV0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmNwcAppbmRleCA1MTg2YTFiYmVkMi4uMmEwOWI2MGUwOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcApAQCAtNzIsMTMgKzcyLDEzIEBA
IE1lbW9yeUNhY2hlOjpNZW1vcnlDYWNoZSgpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YobG9u
ZyBsb25nKSA+IHNpemVvZih1bnNpZ25lZCksICJOdW1lcmljYWwgb3ZlcmZsb3cgY2FuIGhhcHBl
biB3aGVuIGFkanVzdGluZyB0aGUgc2l6ZSBvZiB0aGUgY2FjaGVkIG1lbW9yeS4iKTsKIH0KIAot
YXV0byBNZW1vcnlDYWNoZTo6c2Vzc2lvblJlc291cmNlTWFwKFNlc3Npb25JRCBzZXNzaW9uSUQp
IGNvbnN0IC0+IENhY2hlZFJlc291cmNlTWFwKgorYXV0byBNZW1vcnlDYWNoZTo6c2Vzc2lvblJl
c291cmNlTWFwKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QgLT4gQ2FjaGVkUmVzb3Vy
Y2VNYXAqCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwogICAgIHJldHVybiBt
X3Nlc3Npb25SZXNvdXJjZXMuZ2V0KHNlc3Npb25JRCk7CiB9CiAKLWF1dG8gTWVtb3J5Q2FjaGU6
OmVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcChTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiBDYWNoZWRS
ZXNvdXJjZU1hcCYKK2F1dG8gTWVtb3J5Q2FjaGU6OmVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IENhY2hlZFJlc291cmNlTWFwJgogewogICAgIEFT
U0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKICAgICBhdXRvJiBtYXAgPSBtX3Nlc3Npb25SZXNv
dXJjZXMuYWRkKHNlc3Npb25JRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwpAQCAtMTY3LDcg
KzE2Nyw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvbkZhaWxlZChDYWNoZWRSZXNv
dXJjZSYgcmV2YWxpZGF0aW5nUmVzb3VyY2UpCiAgICAgcmV2YWxpZGF0aW5nUmVzb3VyY2UuY2xl
YXJSZXNvdXJjZVRvUmV2YWxpZGF0ZSgpOwogfQogCi1DYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2Fj
aGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNl
c3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNl
Rm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKICAgICAvLyBGSVhNRTogQ2hhbmdlIGFsbCBjbGllbnRzIHRvIG1ha2Ug
c3VyZSBIVFRQKHMpIFVSTHMgaGF2ZSBubyBmcmFnbWVudCBpZGVudGlmaWVycyBiZWZvcmUgY2Fs
bGluZyBoZXJlLgogICAgIC8vIENhY2hlZFJlc291cmNlTG9hZGVyIGlzIG5vdyBkb2luZyB0aGlz
LiBBZGQgYW4gYXNzZXJ0aW9uIG9uY2UgYWxsIG90aGVyIGNsaWVudHMgYXJlIGRvaW5nIGl0IHRv
by4KQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQmIGR1bW15Q2Fj
aGVkSW1hZ2VDbGllbnQoKQogYm9vbCBNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKE5hdGl2
ZUltYWdlUHRyJiYgaW1hZ2UsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGRvbWFpbkZv
ckNhY2hlUGFydGl0aW9uKQogewogICAgIEFTU0VSVChpbWFnZSk7Ci0gICAgU2Vzc2lvbklEIHNl
c3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAg
cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUodXJsLCBkb21haW5Gb3JDYWNoZVBhcnRpdGlvbik7IC8vIFJl
bW92ZSBjYWNoZSBlbnRyeSBpZiBpdCBhbHJlYWR5IGV4aXN0cy4KIAogICAgIFJlZlB0cjxCaXRt
YXBJbWFnZT4gYml0bWFwSW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUoaW1hZ2Up
LCBudWxscHRyKTsKQEAgLTIyNyw3ICsyMjcsNyBAQCBib29sIE1lbW9yeUNhY2hlOjphZGRJbWFn
ZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHImJiBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0CiAK
IHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGRvbWFpbkZvckNhY2hlUGFydGl0aW9uKQogewotICAgIGF1dG8qIHJlc291
cmNlcyA9IHNlc3Npb25SZXNvdXJjZU1hcChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7
CisgICAgYXV0byogcmVzb3VyY2VzID0gc2Vzc2lvblJlc291cmNlTWFwKFBBTDo6U2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIGlmICghcmVzb3VyY2VzKQogICAgICAgICByZXR1
cm47CiAKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpmb3JFYWNoUmVzb3Vy
Y2UoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKENhY2hlZFJlc291cmNlJik+JiBmdQogICAgIH0K
IH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6Zm9yRWFjaFNlc3Npb25SZXNvdXJjZShTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKENhY2hlZFJlc291cmNlJik+JiBm
dW5jdGlvbikKK3ZvaWQgTWVtb3J5Q2FjaGU6OmZvckVhY2hTZXNzaW9uUmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKENhY2hlZFJlc291
cmNlJik+JiBmdW5jdGlvbikKIHsKICAgICBhdXRvIGl0ID0gbV9zZXNzaW9uUmVzb3VyY2VzLmZp
bmQoc2Vzc2lvbklEKTsKICAgICBpZiAoaXQgPT0gbV9zZXNzaW9uUmVzb3VyY2VzLmVuZCgpKQpA
QCAtNTMxLDcgKzUzMSw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhP
cmlnaW4oU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKICAgICAgICAgcmVtb3ZlKCpyZXNvdXJjZSk7
CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5zKFNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mIG9y
aWdpbnMpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pj4mIG9yaWdpbnMpCiB7CiAgICAgYXV0byogcmVzb3VyY2VNYXAgPSBzZXNzaW9uUmVzb3VyY2VN
YXAoc2Vzc2lvbklEKTsKICAgICBpZiAoIXJlc291cmNlTWFwKQpAQCAtNTcyLDcgKzU3Miw3IEBA
IHZvaWQgTWVtb3J5Q2FjaGU6OmdldE9yaWdpbnNXaXRoQ2FjaGUoU2VjdXJpdHlPcmlnaW5TZXQm
IG9yaWdpbnMpCiAgICAgfQogfQogCi1IYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IE1l
bW9yeUNhY2hlOjpvcmlnaW5zV2l0aENhY2hlKFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0CitI
YXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IE1lbW9yeUNhY2hlOjpvcmlnaW5zV2l0aENh
Y2hlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBIYXNoU2V0PFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAKQEAgLTcwNyw3ICs3MDcsNyBAQCB2b2lkIE1l
bW9yeUNhY2hlOjpldmljdFJlc291cmNlcygpCiAgICAgc2V0RGlzYWJsZWQoZmFsc2UpOwogfQog
Ci12b2lkIE1lbW9yeUNhY2hlOjpldmljdFJlc291cmNlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQor
dm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3RSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogewogICAgIGlmIChkaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCmluZGV4IDJjNGRkMTA5ZjU3Li5mNjdjODFjNDI5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKQEAgLTI2LDgg
KzI2LDggQEAKIAogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW5IYXNoLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
KyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBNZW1vcnlDYWNoZSYgc2luZ2xldG9uKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Np
b25JRCk7CisgICAgV0VCQ09SRV9FWFBPUlQgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBib29s
IGFkZChDYWNoZWRSZXNvdXJjZSYpOwogICAgIHZvaWQgcmVtb3ZlKENhY2hlZFJlc291cmNlJik7
CkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmV2YWxpZGF0aW9uRmFpbGVk
KENhY2hlZFJlc291cmNlJiByZXZhbGlkYXRpbmdSZXNvdXJjZSk7CiAKICAgICB2b2lkIGZvckVh
Y2hSZXNvdXJjZShjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FjaGVkUmVzb3VyY2UmKT4mKTsK
LSAgICB2b2lkIGZvckVhY2hTZXNzaW9uUmVzb3VyY2UoU2Vzc2lvbklELCBjb25zdCBXVEY6OkZ1
bmN0aW9uPHZvaWQoQ2FjaGVkUmVzb3VyY2UmKT4mKTsKKyAgICB2b2lkIGZvckVhY2hTZXNzaW9u
UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChDYWNoZWRS
ZXNvdXJjZSYpPiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVzdHJveURlY29kZWREYXRh
Rm9yQWxsSW1hZ2VzKCk7CiAKICAgICAvLyBTZXRzIHRoZSBjYWNoZSdzIG1lbW9yeSBjYXBhY2l0
aWVzLCBpbiBieXRlcy4gVGhlc2Ugd2lsbCBob2xkIG9ubHkgYXBwcm94aW1hdGVseSwKQEAgLTEy
MCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGlzYWJsZWQ7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXZpY3RSZXNvdXJjZXMo
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV2aWN0UmVzb3VyY2VzKFNlc3Npb25JRCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmljdFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCk7CiAK
ICAgICB2b2lkIHBydW5lKCk7CiAgICAgdm9pZCBwcnVuZVNvb24oKTsKQEAgLTE1Myw5ICsxNTMs
OSBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pj4gU2VjdXJpdHlPcmlnaW5TZXQ7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVSZXNv
dXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5T3JpZ2luJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCByZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyhTZXNzaW9uSUQsIGNvbnN0IEhhc2hTZXQ8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPj4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVJl
c291cmNlc1dpdGhPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBjb25zdCBIYXNoU2V0PFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRPcmlnaW5zV2l0
aENhY2hlKFNlY3VyaXR5T3JpZ2luU2V0JiBvcmlnaW5zKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBI
YXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnNXaXRoQ2FjaGUoU2Vzc2lvbklE
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4+IG9yaWdpbnNXaXRoQ2FjaGUoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBhZGRJbWFnZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHImJiwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBkb21haW5Gb3JDYWNoZVBhcnRpdGlvbik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVJbWFnZUZyb21DYWNoZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IGRvbWFpbkZvckNhY2hlUGFydGl0aW9uKTsKQEAgLTE4Nyw4ICsxODcsOCBAQCBwcml2YXRlOgog
CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVxdWVzdEltcGwoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgQ2FjaGVkUmVzb3VyY2VNYXAmKTsKIAotICAgIENhY2hlZFJlc291cmNlTWFw
JiBlbnN1cmVTZXNzaW9uUmVzb3VyY2VNYXAoU2Vzc2lvbklEKTsKLSAgICBDYWNoZWRSZXNvdXJj
ZU1hcCogc2Vzc2lvblJlc291cmNlTWFwKFNlc3Npb25JRCkgY29uc3Q7CisgICAgQ2FjaGVkUmVz
b3VyY2VNYXAmIGVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcChQQUw6OlNlc3Npb25JRCk7CisgICAg
Q2FjaGVkUmVzb3VyY2VNYXAqIHNlc3Npb25SZXNvdXJjZU1hcChQQUw6OlNlc3Npb25JRCkgY29u
c3Q7CiAKICAgICBib29sIG1fZGlzYWJsZWQ7ICAvLyBXaGV0aGVyIG9yIG5vdCB0aGUgY2FjaGUg
aXMgZW5hYmxlZC4KICAgICBib29sIG1faW5QcnVuZVJlc291cmNlczsKQEAgLTIxMSw3ICsyMTEs
NyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEEgVVJMLWJhc2VkIG1hcCBvZiBhbGwgcmVzb3Vy
Y2VzIHRoYXQgYXJlIGluIHRoZSBjYWNoZSAoaW5jbHVkaW5nIHRoZSBmcmVzaGVzdCB2ZXJzaW9u
IG9mIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIAogICAgIC8vIHJlZmVyZW5jZWQg
YnkgYSBXZWIgcGFnZSkuCi0gICAgdHlwZWRlZiBIYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlx
dWVfcHRyPENhY2hlZFJlc291cmNlTWFwPj4gU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwOworICAg
IHR5cGVkZWYgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPENhY2hlZFJl
c291cmNlTWFwPj4gU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwOwogICAgIFNlc3Npb25DYWNoZWRS
ZXNvdXJjZU1hcCBtX3Nlc3Npb25SZXNvdXJjZXM7CiAKICAgICBUaW1lciBtX3BydW5lVGltZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRv
ckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNv
Y29hLmgKaW5kZXggNjMwNGYxZjA2ZWQuLmJkYmExYzkzNThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5oCkBAIC0yNiw3ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2lu
Y2x1ZGUgIlNlc3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRV
UkxSZXNwb25zZVJlZjsKIApAQCAtMzYsMTkgKzM2LDE5IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsK
IAogY2xhc3MgRGlza0NhY2hlTW9uaXRvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHZvaWQgbW9u
aXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNz
aW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOworICAgIHN0YXRpYyB2b2lkIG1vbml0b3JG
aWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUEFMOjpTZXNz
aW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwogICAgIHN0YXRpYyBSZWZQdHI8U2hhcmVk
QnVmZmVyPiB0cnlHZXRGaWxlQmFja2VkU2hhcmVkQnVmZmVyRnJvbUNGVVJMQ2FjaGVkUmVzcG9u
c2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAKIHByaXZhdGU6Ci0gICAgRGlza0NhY2hlTW9u
aXRvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9u
c2VSZWYpOworICAgIERpc2tDYWNoZU1vbml0b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUEFM
OjpTZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwogCiAgICAgdm9pZCByZXNvdXJj
ZUJlY2FtZUZpbGVCYWNrZWQoU2hhcmVkQnVmZmVyJik7CiAKICAgICBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0
OyB9Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQ7IH0KIAogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKLSAgICBT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCmluZGV4IDNmMThkMjY5MmI1Li5hMGZi
YjFhOWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNo
ZU1vbml0b3JDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0Nh
Y2hlTW9uaXRvckNvY29hLm1tCkBAIC01MSw3ICs1MSw3IEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IERpc2tDYWNoZU1vbml0b3I6OnRyeUdldEZpbGVCYWNrZWRTaGFyZWRCdWZmZXJGcm9tQ0ZVUkxD
YWNoCiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpOwogfQogCi12b2lkIERp
c2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBDRkNhY2hlZFVSTFJl
c3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlKQordm9pZCBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9y
RmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJl
c3BvbnNlKQogewogICAgIGlmICghY2FjaGVkUmVzcG9uc2UpCiAgICAgICAgIHJldHVybjsKQEAg
LTYwLDcgKzYwLDcgQEAgdm9pZCBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdT
dG9yZUNyZWF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmUKICAgICBuZXcgRGlza0NhY2hl
TW9uaXRvcihyZXF1ZXN0LCBzZXNzaW9uSUQsIGNhY2hlZFJlc3BvbnNlKTsgLy8gQmFsYW5jZWQg
YnkgZGVsZXRlIGFuZCB1bmlxdWVfcHRyIGluIHRoZSBibG9ja3Mgc2V0IHVwIGluIHRoZSBjb25z
dHJ1Y3Rvciwgb25lIG9mIHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gcnVuLgogfQogCi1EaXNrQ2Fj
aGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNw
b25zZSkKK0Rpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVz
cG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXF1ZXN0
KQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
YWNoZVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IDVhZWM5ZjQ2MTk4Li4zZjZjODg0YzdhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaApAQCAtMjYsNyArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgi
Ci0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBDYWNoZVN0b3JhZ2VQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPENhY2hlU3RvcmFn
ZVByb3ZpZGVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRl
cj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZVN0b3JhZ2VQcm92aWRlcik7
IH0KLSAgICB2aXJ0dWFsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKFNlc3Npb25JRCkgeyByZXR1cm4gQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6Y3JlYXRlKCk7IH0KKyAgICB2aXJ0dWFsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBj
cmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEKSB7IHJldHVybiBDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoKTsgfQogICAgIHZpcnR1YWwgfkNhY2hlU3RvcmFn
ZVByb3ZpZGVyKCkgeyB9OwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQ
cm92aWRlci5oCmluZGV4IGE3NmM3OTFjODY4Li5mMDhlOTU5YTEyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKQEAgLTI3LDkgKzI3LDExIEBACiAKICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KK25hbWVzcGFjZSBQQUwg
ewogY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFj
ZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29ubmVjdGlvblRvU2VydmVyOwpAQCAtNDAsNyArNDIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGF0YWJhc2VQcm92aWRlcigpOwogCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgdmlydHVhbCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Ub1NlcnZlciYgaWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBTZXNzaW9u
SUQmKSA9IDA7CisgICAgdmlydHVhbCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYg
aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYpID0g
MDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOGRmN2EwMDk2ZDUuLjkxODJi
YzlhNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIyOSw3ICsyMjksNyBAQCBQYWdlOjpQYWdl
KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3N0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlcigqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXIpKQogICAgICwgbV91c2VyQ29udGVudFByb3ZpZGVyKCpXVEZNb3ZlKHBhZ2VD
b25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVkTGlua1N0
b3JlKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQotICAgICwg
bV9zZXNzaW9uSUQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCisgICAgLCBtX3Nlc3Np
b25JRChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQogICAgICwgbV9pc1V0aWxp
dHlQYWdlKGlzVXRpbGl0eVBhZ2VDaHJvbWVDbGllbnQoY2hyb21lKCkuY2xpZW50KCkpKQogICAg
ICwgbV9wZXJmb3JtYW5jZU1vbml0b3IoaXNVdGlsaXR5UGFnZSgpID8gbnVsbHB0ciA6IHN0ZDo6
bWFrZV91bmlxdWU8UGVyZm9ybWFuY2VNb25pdG9yPigqdGhpcykpCiAgICAgLCBtX2xvd1Bvd2Vy
TW9kZU5vdGlmaWVyKHN0ZDo6bWFrZV91bmlxdWU8TG93UG93ZXJNb2RlTm90aWZpZXI+KFt0aGlz
XShib29sIGlzTG93UG93ZXJNb2RlRW5hYmxlZCkgeyBoYW5kbGVMb3dNb2RlUG93ZXJDaGFuZ2Uo
aXNMb3dQb3dlck1vZGVFbmFibGVkKTsgfSkpCkBAIC0xNDI4LDkgKzE0MjgsOSBAQCB2b2lkIFBh
Z2U6OnN0b3JhZ2VCbG9ja2luZ1N0YXRlQ2hhbmdlZCgpCiB2b2lkIFBhZ2U6OmVuYWJsZUxlZ2Fj
eVByaXZhdGVCcm93c2luZyhib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CiAgICAgLy8g
RG9uJ3QgYWxsb3cgY2hhbmdpbmcgdGhlIGxlZ2FjeSBwcml2YXRlIGJyb3dzaW5nIHN0YXRlIGlm
IHdlIGhhdmUgc2V0IGEgc2Vzc2lvbiBJRC4KLSAgICBBU1NFUlQobV9zZXNzaW9uSUQgPT0gU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkgfHwgbV9zZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgIEFTU0VSVChtX3Nlc3Npb25JRCA9PSBQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpIHx8IG1fc2Vzc2lvbklEID09IFBBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogCi0gICAgc2V0U2Vzc2lvbklEKHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQgPyBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICBzZXRTZXNzaW9uSUQocHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCA/IFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBQ
YWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSh1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCkBAIC0y
MTA1LDEyICsyMTA1LDEyIEBAIHZvaWQgUGFnZTo6c2V0VmlzaXRlZExpbmtTdG9yZShSZWY8Vmlz
aXRlZExpbmtTdG9yZT4mJiB2aXNpdGVkTGlua1N0b3JlKQogICAgIGludmFsaWRhdGVTdHlsZXNG
b3JBbGxMaW5rcygpOwogfQogCi1TZXNzaW9uSUQgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKK1BB
TDo6U2Vzc2lvbklEIFBhZ2U6OnNlc3Npb25JRCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Vz
c2lvbklEOwogfQogCi12b2lkIFBhZ2U6OnNldFNlc3Npb25JRChTZXNzaW9uSUQgc2Vzc2lvbklE
KQordm9pZCBQYWdlOjpzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBiNTRk
NzYyZDMwNC4uMjNlOTRlNzVhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0zMiwxMyArMzIsMTMgQEAK
ICNpbmNsdWRlICJSVENDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsVHlwZXMuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTdXBw
bGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5j
bHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1
ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAg
LTUxMCw4ICs1MTAsOCBAQCBwdWJsaWM6CiAgICAgVmlzaXRlZExpbmtTdG9yZSYgdmlzaXRlZExp
bmtTdG9yZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmlzaXRlZExpbmtTdG9yZShS
ZWY8VmlzaXRlZExpbmtTdG9yZT4mJik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXNzaW9uSUQg
c2Vzc2lvbklEKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZXNzaW9uSUQo
U2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQo
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlc3Npb25JRChQQUw6OlNlc3Np
b25JRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbmFibGVMZWdhY3lQcml2YXRlQnJvd3Np
bmcoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKICAgICBib29sIHVzZXNFcGhlbWVyYWxT
ZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsgfQogCkBA
IC03ODEsNyArNzgxLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VV
c2FnZU92ZXJsYXk+IG1fcmVzb3VyY2VVc2FnZU92ZXJsYXk7CiAjZW5kaWYKIAotICAgIFNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIAogICAg
IGJvb2wgbV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BsdWdJbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QbHVnSW5DbGllbnQu
aAppbmRleCAyNWE2OTYyY2JkMS4uYjhlOTFmYmM2MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGx1Z0luQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QbHVnSW5D
bGllbnQuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNl
c3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0LDcgKzM0LDcg
QEAgY2xhc3MgUGx1Z0luQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFnZURl
c3Ryb3llZCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXV0b1N0YXJ0RnJvbU9yaWdp
bihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0RnJv
bU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBTZXNzaW9uSUQpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lv
bklEKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5QbHVnSW5DbGllbnQoKSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKaW5kZXggYTc2NWQ0ZDY5NWIuLjA3
OGMyN2Q1ZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmNwcApAQCAtMzAs
NyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi1SZWY8U29ja2V0U3RyZWFt
SGFuZGxlPiBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVS
TCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgU2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKQorUmVmPFNvY2tldFN0cmVh
bUhhbmRsZT4gU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBV
UkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKQogewogICAgIHJl
dHVybiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUodXJsLCBjbGllbnQsIHNlc3Npb25J
RCwgY3JlZGVudGlhbFBhcnRpdGlvbiwgeyB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJv
dmlkZXIuaAppbmRleCA1NTljYWQwMjdhMS4uNzVjMDJlNjI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NvY2tldFByb3ZpZGVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBVUkw7CiBjbGFzcyBX
RUJDT1JFX0VYUE9SVCBTb2NrZXRQcm92aWRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxTb2NrZXRQcm92aWRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U29ja2V0UHJvdmlk
ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0UHJvdmlkZXIpOyB9Ci0g
ICAgdmlydHVhbCBSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5k
bGUoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgU2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pOworICAgIHZpcnR1YWwgUmVmPFNvY2tldFN0
cmVhbUhhbmRsZT4gY3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0
cmVhbUhhbmRsZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRp
YWxQYXJ0aXRpb24pOwogICAgIHZpcnR1YWwgflNvY2tldFByb3ZpZGVyKCkgeyB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaAppbmRleCBlMDQ5YmUzNTA1
NC4uNWRjNzUyZTcxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tp
ZXNTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZXNTdHJhdGVn
eS5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIENvb2tpZXNTdHJhdGVneV9oCiAjZGVmaW5l
IENvb2tpZXNTdHJhdGVneV9oCiAKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDxw
YWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
Y29va2llU3RyaW5nKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJM
JikgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgVVJMJikgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKFNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmKSA9IDA7
CisgICAgdmlydHVhbCBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAKaW5k
ZXggMTIxYTg2Y2IxMzYuLjQwMzY3NmE5OGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTMxLDEyICszMSwxMiBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNvcmVDcm9zc1RocmVhZENvcGll
ci5oIgogCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiVGhyZWFkU2FmZURhdGFC
dWZmZXIuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNw
YWNlIFdURiB7CiAKLUNyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6
OlNlc3Npb25JRD46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgV2Vi
Q29yZTo6U2Vzc2lvbklEPjo6Y29weShjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNlc3Npb25J
RCkKK0Nyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFBBTDo6U2Vzc2lvbklEPjo6
VHlwZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBQQUw6OlNlc3Npb25JRD46
OmNvcHkoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkKIHsKICAgICByZXR1cm4gc2Vz
c2lvbklEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNy
b3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJDb3JlQ3Jvc3NU
aHJlYWRDb3BpZXIuaAppbmRleCA3ZTNiOWJjMTE4Mi4uYjRjOTIzOTFjMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5oCkBAIC0z
MywxNiArMzMsMTkgQEAKIAogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogCi1u
YW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgUEFMIHsKIGNsYXNzIFNlc3Npb25JRDsKK30K
KworbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiB9CiAK
IG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJh
c2U8ZmFsc2UsIGZhbHNlLCBXZWJDb3JlOjpTZXNzaW9uSUQ+IHsKLSAgICB0eXBlZGVmIFdlYkNv
cmU6OlNlc3Npb25JRCBUeXBlOwotICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgV2ViQ29yZTo6
U2Vzc2lvbklEJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIGZhbHNlLCBQQUw6OlNlc3Npb25JRD4geworICAgIHR5cGVkZWYgUEFMOjpTZXNzaW9uSUQg
VHlwZTsKKyAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7CiB9Owog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBX
ZWJDb3JlOjpUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCmluZGV4IGM1MjZjNDE3ZmUzLi4y
MmI4MzMzMzFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9D
YWNoZVZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Q2FjaGVWYWxpZGF0aW9uLmNwcApAQCAtMzM5LDcgKzMzOSw3IEBAIENhY2hlQ29udHJvbERpcmVj
dGl2ZXMgcGFyc2VDYWNoZUNvbnRyb2xEaXJlY3RpdmVzKGNvbnN0IEhUVFBIZWFkZXJNYXAmIGhl
YWRlcnMpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFN0cmluZyBoZWFkZXJWYWx1
ZUZvclZhcnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGhl
YWRlck5hbWUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitzdGF0aWMgU3RyaW5nIGhlYWRlclZhbHVl
Rm9yVmFyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgaGVh
ZGVyTmFtZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIEV4cGxpY2l0IGhh
bmRsaW5nIGZvciBjb29raWVzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZXkgYXJlIGFkZGVkIG1hZ2lj
YWxseSBieSB0aGUgbmV0d29ya2luZyBsYXllci4KICAgICAvLyBGSVhNRTogVGhlIHZhbHVlIG1p
Z2h0IGhhdmUgY2hhbmdlZCBiZXR3ZWVuIG1ha2luZyB0aGUgcmVxdWVzdCBhbmQgcmV0cmlldmlu
ZyB0aGUgY29va2llIGhlcmUuCkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RhdGljIFN0cmluZyBoZWFk
ZXJWYWx1ZUZvclZhcnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIGgKICAgICBpZiAoaGVhZGVyTmFtZSA9PSBodHRwSGVhZGVyTmFtZVN0cmluZyhIVFRQSGVh
ZGVyTmFtZTo6Q29va2llKSkgewogICAgICAgICBhdXRvKiBjb29raWVTdHJhdGVneSA9IHBsYXRm
b3JtU3RyYXRlZ2llcygpID8gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgp
IDogbnVsbHB0cjsKICAgICAgICAgaWYgKCFjb29raWVTdHJhdGVneSkgewotICAgICAgICAgICAg
QVNTRVJUKHNlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAg
ICAgICAgICBBU1NFUlQoc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCkpOwogICAgICAgICAgICAgcmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCksIHJlcXVlc3Qu
Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSk7CiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIGNvb2tpZVN0cmF0ZWd5LT5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShz
ZXNzaW9uSUQsIHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSk7
CkBAIC0zNTYsNyArMzU2LDcgQEAgc3RhdGljIFN0cmluZyBoZWFkZXJWYWx1ZUZvclZhcnkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGgKICAgICByZXR1cm4g
cmVxdWVzdC5odHRwSGVhZGVyRmllbGQoaGVhZGVyTmFtZSk7CiB9CiAKLVZlY3RvcjxzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgU3RyaW5nPj4gY29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgU3RyaW5n
IHZhcnlWYWx1ZSA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChXZWJDb3JlOjpIVFRQSGVhZGVy
TmFtZTo6VmFyeSk7CiAgICAgaWYgKHZhcnlWYWx1ZS5pc0VtcHR5KCkpCkBAIC0zNzMsNyArMzcz
LDcgQEAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNvbGxlY3RWYXJ5aW5nUmVx
dWVzdEhlYWRlcnMoY29uc3QgV2ViQ29yZTo6UmUKICAgICByZXR1cm4gdmFyeWluZ1JlcXVlc3RI
ZWFkZXJzOwogfQogCi1ib29sIHZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBWZWN0
b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHZhcnlpbmdSZXF1ZXN0SGVhZGVycywgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklE
KQorYm9vbCB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgVmVjdG9yPHN0ZDo6cGFp
cjxTdHJpbmcsIFN0cmluZz4+JiB2YXJ5aW5nUmVxdWVzdEhlYWRlcnMsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIGZvciAoYXV0byYgdmFyeWluZ1JlcXVlc3RIZWFkZXIgOiB2YXJ5aW5nUmVxdWVzdEhlYWRl
cnMpIHsKICAgICAgICAgLy8gRklYTUU6IFZhcnk6ICogaW4gcmVzcG9uc2Ugd291bGQgaWRlYWxs
eSB0cmlnZ2VyIGEgY2FjaGUgZGVsZXRlIGluc3RlYWQgb2YgYSBzdG9yZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5oCmluZGV4IDQ0M2Iy
MzFlOGQ2Li5lZmU1MGVhYmJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5oCkBAIC0yNiw4ICsyNiw4IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIlBsYXRmb3JtRXhwb3J0TWFjcm9zLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklE
LmgiCiAjaW5jbHVkZSA8Y2hyb25vPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTcwLDggKzcwLDggQEAgc3RydWN0
IENhY2hlQ29udHJvbERpcmVjdGl2ZXMgewogfTsKIFdFQkNPUkVfRVhQT1JUIENhY2hlQ29udHJv
bERpcmVjdGl2ZXMgcGFyc2VDYWNoZUNvbnRyb2xEaXJlY3RpdmVzKGNvbnN0IEhUVFBIZWFkZXJN
YXAmKTsKIAotV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+
IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIFNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKTsKLVdFQkNPUkVfRVhQT1JUIGJvb2wgdmVyaWZ5VmFyeWluZ1JlcXVlc3RIZWFkZXJz
KGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdmFyeWluZ1JlcXVlc3RI
ZWFkZXJzLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8c3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPj4gY29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUEFMOjpTZXNzaW9uSUQgPSBQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wgdmVyaWZ5
VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJp
bmc+PiYgdmFyeWluZ1JlcXVlc3RIZWFkZXJzLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6
OlNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogCiBXRUJD
T1JFX0VYUE9SVCBib29sIGlzU3RhdHVzQ29kZUNhY2hlYWJsZUJ5RGVmYXVsdChpbnQgc3RhdHVz
Q29kZSk7CiBXRUJDT1JFX0VYUE9SVCBib29sIGlzU3RhdHVzQ29kZVBvdGVudGlhbGx5Q2FjaGVh
YmxlKGludCBzdGF0dXNDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAppbmRleCA5OGRhMDgyYWVlNi4u
NDE2ODhjMDVmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKQEAgLTI2LDI3ICsyNiwyNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogCi0j
aW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNl
c3Npb24+PiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnbG9iYWxTZXNzaW9uTWFwKCkKK0hhc2hN
YXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+
PiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnbG9iYWxTZXNzaW9uTWFwKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrU3RvcmFnZVNlc3Npb24+Pj4gbWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNo
TWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9u
Pj4+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCi1OZXR3b3JrU3RvcmFnZVNlc3Npb24qIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkK
K05ldHdvcmtTdG9yYWdlU2Vzc2lvbiogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKKyAgICBpZiAoc2Vzc2lvbklEID09IFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgICAgIHJldHVybiAmZGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKCk7CiAgICAgcmV0dXJuIGdsb2JhbFNlc3Npb25NYXAoKS5nZXQoc2Vzc2lv
bklEKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlc3Ryb3lTZXNzaW9uKFNl
c3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJveVNl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQg
IT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIEFTU0VSVChzZXNzaW9uSUQg
IT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgZ2xvYmFsU2Vzc2lv
bk1hcCgpLnJlbW92ZShzZXNzaW9uSUQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCBkZWQyNmNh
ZjRjMS4uYjQ1OWZjMzNlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtMjYsNyArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgotI2luY2x1ZGUgIlNl
c3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC02MiwxNSArNjIsMTUgQEAgY2xhc3MgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOZXR3b3JrU3RvcmFnZVNl
c3Npb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBkZWZhdWx0U3RvcmFnZVNlc3Npb24o
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBzdG9y
YWdlU2Vzc2lvbihTZXNzaW9uSUQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXJCYXNlID0gU3RyaW5nKCkpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVu
c3VyZVNlc3Npb24oU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlID0gU3Ry
aW5nKCkpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRlc3Ryb3lTZXNzaW9uKFNl
c3Npb25JRCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biogc3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UgPSBTdHJpbmcoKSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyQmFzZSA9IFN0cmluZygpKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCBkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgZm9yRWFjaChjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJik+Jik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CiAKLSAgICBTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIENyZWRlbnRp
YWxTdG9yYWdlJiBjcmVkZW50aWFsU3RvcmFnZSgpIHsgcmV0dXJuIG1fY3JlZGVudGlhbFN0b3Jh
Z2U7IH0KIAogI2lmZGVmIF9fT0JKQ19fCkBAIC03OCw4ICs3OCw4IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllckJhc2UsIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiYm
KTsKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklELCBSZXRhaW5QdHI8Q0ZVUkxT
dG9yYWdlU2Vzc2lvblJlZj4mJiwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVuc3VyZVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UsIFJldGFpblB0cjxDRkhUVFBDb29r
aWVTdG9yYWdlUmVmPiYmKTsKKyAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9u
SUQsIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiYmLCBSZXRhaW5QdHI8Q0ZIVFRQ
Q29va2llU3RvcmFnZVJlZj4mJik7CiAKICAgICAvLyBNYXkgYmUgbnVsbCwgaW4gd2hpY2ggY2Fz
ZSBhIEZvdW5kYXRpb24gZGVmYXVsdCBzaG91bGQgYmUgdXNlZC4KICAgICBDRlVSTFN0b3JhZ2VT
ZXNzaW9uUmVmIHBsYXRmb3JtU2Vzc2lvbigpIHsgcmV0dXJuIG1fcGxhdGZvcm1TZXNzaW9uLmdl
dCgpOyB9CkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNob3VsZFBhcnRpdGlvbkNvb2tpZXNGb3JIb3N0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZG9tYWluc1RvUmVtb3ZlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQWRkLCBib29s
IGNsZWFyRmlyc3QpOwogI2VuZGlmCiAjZWxpZiBVU0UoU09VUCkKLSAgICBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24oU2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPiYm
KTsKKyAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVl
X3B0cjxTb3VwTmV0d29ya1Nlc3Npb24+JiYpOwogICAgIH5OZXR3b3JrU3RvcmFnZVNlc3Npb24o
KTsKIAogICAgIFNvdXBOZXR3b3JrU2Vzc2lvbiogc291cE5ldHdvcmtTZXNzaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uLmdldCgpOyB9OwpAQCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGdldENyZWRlbnRpYWxGcm9tUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgUHJvdGVj
dGlvblNwYWNlJiwgRnVuY3Rpb248dm9pZCAoQ3JlZGVudGlhbCYmKT4gY29tcGxldGlvbkhhbmRs
ZXIpOwogICAgIHZvaWQgc2F2ZUNyZWRlbnRpYWxUb1BlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFBy
b3RlY3Rpb25TcGFjZSYsIGNvbnN0IENyZWRlbnRpYWwmKTsKICNlbHNlCi0gICAgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCwgTmV0d29ya2luZ0NvbnRleHQqKTsKKyAgICBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIE5ldHdvcmtpbmdDb250ZXh0Kik7CiAgICAg
fk5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpOwogCiAgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQoKSBjb25zdDsKQEAgLTExNyw4ICsxMTcsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBmbHVzaENvb2tpZVN0b3JlKCk7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEhhc2hN
YXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIGds
b2JhbFNlc3Npb25NYXAoKTsKLSAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgc3RhdGlj
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNl
c3Npb24+PiYgZ2xvYmFsU2Vzc2lvbk1hcCgpOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lv
bklEOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAg
UmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IG1fcGxhdGZvcm1TZXNzaW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb25TdHViLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKaW5kZXggNGUxZTMzZTZiZGMuLmIyYTY1N2YyYmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblN0dWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1OZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihT
ZXNzaW9uSUQgc2Vzc2lvbklELCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK05ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKIHsKQEAgLTQ5LDEyICs0OSwxMiBAQCBO
ZXR3b3JraW5nQ29udGV4dCogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb250ZXh0KCkgY29uc3QK
ICAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJikKIHsKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24o
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVu
c3VyZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiYgZGVmYXVsdFNlc3Npb24oKQogTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigp
CiB7CiAgICAgaWYgKCFkZWZhdWx0U2Vzc2lvbigpKQotICAgICAgICBkZWZhdWx0U2Vzc2lvbigp
ID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBudWxscHRyKTsKKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKSA9IHN0
ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBudWxscHRyKTsKICAgICByZXR1cm4gKmRlZmF1bHRTZXNzaW9uKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKaW5kZXggM2UwODU0ZjRmNzku
LjdlOTAzMmMzNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApAQCAtNjks
NyArNjksNyBAQCBzdGF0aWMgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IGNyZWF0
ZUNGU3RvcmFnZVNlc3Npb25Gb3JJZGVudGlmaWVyKENGUwogICAgIHJldHVybiBzdG9yYWdlU2Vz
c2lvbjsKIH0KIAotTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24o
U2Vzc2lvbklEIHNlc3Npb25JRCwgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+JiYg
cGxhdGZvcm1TZXNzaW9uLCBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4mJiBwbGF0
Zm9ybUNvb2tpZVN0b3JhZ2UpCitOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VT
ZXNzaW9uUmVmPiYmIHBsYXRmb3JtU2Vzc2lvbiwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWY+JiYgcGxhdGZvcm1Db29raWVTdG9yYWdlKQogICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lv
bklEKQogICAgICwgbV9wbGF0Zm9ybVNlc3Npb24oV1RGTW92ZShwbGF0Zm9ybVNlc3Npb24pKQog
ewpAQCAtOTksMjMgKzk5LDIzIEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hU
b05ld1Rlc3RpbmdTZXNzaW9uKCkKICAgICBpZiAoc2Vzc2lvbikKICAgICAgICAgY29va2llU3Rv
cmFnZSA9IGFkb3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBzZXNzaW9uLmdldCgpKSk7CiAKLSAgICBkZWZhdWx0TmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4o
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdURk1vdmUoc2Vzc2lvbiksIFdURk1vdmUo
Y29va2llU3RvcmFnZSkpOworICAgIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSA9IHN0
ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBXVEZNb3ZlKHNlc3Npb24pLCBXVEZNb3ZlKGNvb2tpZVN0b3JhZ2Up
KTsKIH0KIAogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRl
ZmF1bHRTdG9yYWdlU2Vzc2lvbigpCiB7CiAgICAgaWYgKCFkZWZhdWx0TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCkpCi0gICAgICAgIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSA9IHN0ZDo6
bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgICAgIGRlZmF1bHROZXR3b3JrU3RvcmFn
ZVNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBudWxscHRyLCBudWxscHRyKTsKICAgICBy
ZXR1cm4gKmRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKIH0KIAotdm9pZCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSkKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSkKIHsKICAgICBBU1NFUlQoc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCkpOwogICAgIGVuc3VyZVNlc3Npb24oc2Vzc2lvbklELCBpZGVu
dGlmaWVyQmFzZSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNz
aW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UsIFJl
dGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiYmIGNvb2tpZVN0b3JhZ2UpCit2b2lkIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UsIFJldGFpblB0cjxDRkhUVFBDb29raWVT
dG9yYWdlUmVmPiYmIGNvb2tpZVN0b3JhZ2UpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBnbG9i
YWxTZXNzaW9uTWFwKCkuYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CiAgICAgaWYgKCFhZGRSZXN1
bHQuaXNOZXdFbnRyeSkKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6ZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlk
ZQogICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbj4oc2Vzc2lvbklELCBXVEZNb3ZlKHN0b3JhZ2VTZXNzaW9uKSwgV1RG
TW92ZShjb29raWVTdG9yYWdlKSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpl
bnN1cmVTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmll
ckJhc2UpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UpCiB7CiAgICAg
ZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIGlkZW50aWZpZXJCYXNlLCBudWxscHRyKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmgKaW5kZXggMDlkMmE4NzFiNjAuLjVkNmYyM2Y4NTc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0
cmVhbUhhbmRsZUltcGwuaApAQCAtMzEsOCArMzEsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZS5oIgorI2lu
Y2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvU3RyZWFtQnVmZmVyLmg+CiAKQEAgLTQ2LDcgKzQ2LDcgQEAg
Y2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50OwogCiBjbGFzcyBTb2NrZXRTdHJlYW1IYW5k
bGVJbXBsIDogcHVibGljIFNvY2tldFN0cmVhbUhhbmRsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNvY2tl
dFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYm
IGF1ZGl0RGF0YSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBs
KHVybCwgY2xpZW50LCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFdURk1vdmUoYXVk
aXREYXRhKSkpOyB9CisgICAgc3RhdGljIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBjcmVh
dGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwg
U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFNvY2tldFN0cmVhbUhhbmRsZUltcGwodXJsLCBjbGllbnQsIHNlc3Npb25JRCwgY3Jl
ZGVudGlhbFBhcnRpdGlvbiwgV1RGTW92ZShhdWRpdERhdGEpKSk7IH0KIAogICAgIHZpcnR1YWwg
flNvY2tldFN0cmVhbUhhbmRsZUltcGwoKTsKIApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgog
ICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBwbGF0Zm9ybVNlbmRJbnRlcm5hbChjb25zdCBjaGFy
Kiwgc2l6ZV90KTsKICAgICBib29sIHNlbmRQZW5kaW5nRGF0YSgpOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbChjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQmLCBTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwg
U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNvY2tl
dFN0cmVhbUhhbmRsZUltcGwoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Jiwg
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgU291cmNl
QXBwbGljYXRpb25BdWRpdFRva2VuJiYpOwogICAgIHZvaWQgY3JlYXRlU3RyZWFtcygpOwogICAg
IHZvaWQgc2NoZWR1bGVTdHJlYW1zKCk7CiAgICAgdm9pZCBjaG9vc2VQcm94eSgpOwpAQCAtOTks
NyArOTksNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDRldyaXRlU3RyZWFtUmVmPiBtX3dy
aXRlU3RyZWFtOwogCiAgICAgUmV0YWluUHRyPENGVVJMUmVmPiBtX2h0dHBzVVJMOyAvLyB3cyhz
KTogcmVwbGFjZWQgd2l0aCBodHRwczoKLSAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAg
UEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgU3RyaW5nIG1fY3JlZGVudGlhbFBhcnRp
dGlvbjsKICAgICBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4gbV9hdWRpdERhdGE7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
U29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAppbmRleCAzMzY2YWE2MDZkYS4uMDk5OGEx
ZTg1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29j
a2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKQEAgLTY0LDcgKzY0
LDcgQEAgZXh0ZXJuICJDIiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3RyZWFtU29ja2V0U2V0Tm9E
ZWxheTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpT
b2NrZXRTdHJlYW1IYW5kbGVJbXBsKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVD
bGllbnQmIGNsaWVudCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50
aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEpCitT
b2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsKGNvbnN0IFVSTCYg
dXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxpY2F0
aW9uQXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSkKICAgICA6IFNvY2tldFN0cmVhbUhhbmRsZSh1cmws
IGNsaWVudCkKICAgICAsIG1fY29ubmVjdGluZ1N1YnN0YXRlKE5ldykKICAgICAsIG1fY29ubmVj
dGlvblR5cGUoVW5rbm93bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCmluZGV4IGRiMzA5MGU4
OGE2Li44MGI5ODBiZGFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCkBAIC0zNyw4ICsz
Nyw4IEBACiAjaW5jbHVkZSA8d2luc29jazIuaD4KICNlbmRpZgogCi0jaW5jbHVkZSAiU2Vzc2lv
bklELmgiCiAjaW5jbHVkZSA8Y3VybC9jdXJsLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIv
U2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBT
b2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ7CiAKIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUltcGwg
OiBwdWJsaWMgU29ja2V0U3RyZWFtSGFuZGxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNv
Y2tldFN0cmVhbUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFt
SGFuZGxlQ2xpZW50JiBjbGllbnQsIFNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBw
bGljYXRpb25BdWRpdFRva2VuJiYpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0U3RyZWFt
SGFuZGxlSW1wbCh1cmwsIGNsaWVudCkpOyB9CisgICAgc3RhdGljIFJlZjxTb2NrZXRTdHJlYW1I
YW5kbGVJbXBsPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVu
dCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwbGljYXRp
b25BdWRpdFRva2VuJiYpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0U3RyZWFtSGFuZGxl
SW1wbCh1cmwsIGNsaWVudCkpOyB9CiAKICAgICB2aXJ0dWFsIH5Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCA1YzVmZDc1
NDEzZC4uMGRmYzY2NTQwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAK
QEAgLTQ5LDcgKzQ5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1OZXR3b3JrU3RvcmFn
ZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6
OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPiYmIHNlc3Npb24pCitOZXR3b3JrU3RvcmFn
ZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHN0ZDo6dW5pcXVlX3B0cjxTb3VwTmV0d29ya1Nlc3Npb24+JiYgc2Vzc2lvbikKICAgICA6IG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fc2Vzc2lvbihXVEZNb3ZlKHNlc3Npb24pKQog
ewpAQCAtNzUsMjUgKzc1LDI1IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uPiYgZGVmYXVsdFNlc3Npb24oKQogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpCiB7CiAgICAgaWYgKCFk
ZWZhdWx0U2Vzc2lvbigpKQotICAgICAgICBkZWZhdWx0U2Vzc2lvbigpID0gc3RkOjptYWtlX3Vu
aXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCBudWxscHRyKTsKKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8
TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCBudWxscHRyKTsKICAgICByZXR1cm4gKmRlZmF1bHRTZXNzaW9uKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSk7CisgICAgQVNTRVJUKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICBBU1NFUlQoIWdsb2JhbFNlc3Npb25NYXAoKS5jb250
YWlucyhzZXNzaW9uSUQpKTsKICAgICBnbG9iYWxTZXNzaW9uTWFwKCkuYWRkKHNlc3Npb25JRCwg
c3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KHNlc3Npb25JRCwgc3RkOjpt
YWtlX3VuaXF1ZTxTb3VwTmV0d29ya1Nlc3Npb24+KCkpKTsKIH0KIAotdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24oU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQordm9p
ZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudAogfQogCiB2b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpCiB7Ci0gICAgZGVm
YXVsdFNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgc3RkOjptYWtlX3VuaXF1ZTxTb3VwTmV0d29y
a1Nlc3Npb24+KCkpOworICAgIGRlZmF1bHRTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbj4oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwg
c3RkOjptYWtlX3VuaXF1ZTxTb3VwTmV0d29ya1Nlc3Npb24+KCkpOwogfQogCiBTb3VwTmV0d29y
a1Nlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0T3JDcmVhdGVTb3VwTmV0d29ya1Nl
c3Npb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgKaW5kZXggOTM3ODk5NTBhMGYu
LmZlMDI0MjNlYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgKQEAgLTM2LDcgKzM2LDcg
QEAKIAogI2lmIFVTRShTT1VQKQogCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1N0cmVhbUJ1ZmZlci5o
PgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KIApAQCAtNDcsNyArNDcsNyBAQCBjbGFz
cyBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ7CiAKIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUlt
cGwgZmluYWwgOiBwdWJsaWMgU29ja2V0U3RyZWFtSGFuZGxlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFNvY2tldFN0cmVhbUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmLCBTb2NrZXRT
dHJlYW1IYW5kbGVDbGllbnQmLCBTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGxp
Y2F0aW9uQXVkaXRUb2tlbiYmKTsKKyAgICBzdGF0aWMgUmVmPFNvY2tldFN0cmVhbUhhbmRsZUlt
cGw+IGNyZWF0ZShjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBQQUw6OlNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYpOwog
ICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGUoR1NvY2tldENvbm5lY3Rp
b24qLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmKTsKIAogICAgIHZpcnR1YWwgflNvY2tldFN0
cmVhbUhhbmRsZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbFNvdXAuY3BwCmlu
ZGV4IGU4NTk0ZTk0M2MxLi44ZTUwYmQ2YzM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbFNvdXAuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyB2b2lkIHdzc1NvY2tldENsaWVu
dEV2ZW50Q2FsbGJhY2soR1NvY2tldENsaWVudCosIEdTb2NrZXRDbGllbnRFdmVudCBldmVuCiAg
ICAgZ19zaWduYWxfY29ubmVjdChjb25uZWN0aW9uLCAiYWNjZXB0LWNlcnRpZmljYXRlIiwgR19D
QUxMQkFDSyh3c3NDb25uZWN0aW9uQWNjZXB0Q2VydGlmaWNhdGVDYWxsYmFjayksIG51bGxwdHIp
OwogfQogCi1SZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gU29ja2V0U3RyZWFtSGFuZGxlSW1w
bDo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVu
dCwgU2Vzc2lvbklELCBjb25zdCBTdHJpbmcmLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4m
JikKK1JlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpj
cmVhdGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2Vu
JiYpCiB7CiAgICAgUmVmPFNvY2tldFN0cmVhbUhhbmRsZUltcGw+IHNvY2tldCA9IGFkb3B0UmVm
KCpuZXcgU29ja2V0U3RyZWFtSGFuZGxlSW1wbCh1cmwsIGNsaWVudCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCmlu
ZGV4IDdiNzNmNTkzM2RhLi4xMjEwNTg1MzM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTQxLDcgKzQxLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRl
ZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJD
b25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFBy
b3ZpZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlPiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmln
aW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQ
cm92aWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0UmVmKCpuZXcgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUodXJsLCBpZGVudGlmaWVy
LCB1c2VyQWdlbnQsIHRocmVhZCwgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBXVEZNb3ZlKHRvcE9yaWdpbiksIHRpbWVPcmlnaW4sIGNvbm5lY3Rpb25Qcm94eSwg
c29ja2V0UHJvdmlkZXIsIHNlc3Npb25JRCkpOwogICAgIGlmICghc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5KQpAQCAtNDksNyArNDksNyBAQCBSZWY8RGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29u
c3QgVVJMJiB1cgogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1EZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdv
cmtlclRocmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGlt
ZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblBy
b3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIFNlc3Npb25JRCBzZXNzaW9uSUQp
CitEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUo
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRv
cE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIs
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IFdvcmtlckdsb2JhbFNjb3BlKHVybCwg
aWRlbnRpZmllciwgdXNlckFnZW50LCB0aHJlYWQsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgV1RGTW92ZSh0b3BPcmlnaW4pLCB0aW1lT3JpZ2luLCBjb25uZWN0
aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBzZXNzaW9uSUQpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggMmQ1
MDhmMWE4OTMuLjM0ZWRlYzA2ZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAogY2xhc3MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUg
ZmluYWwgOiBwdWJsaWMgV29ya2VyR2xvYmFsU2NvcGUgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQmLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBi
b29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgU2Vzc2lvbklEKTsKKyAg
ICBzdGF0aWMgUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVk
aWNhdGVkV29ya2VyVGhyZWFkJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIFBBTDo6
U2Vzc2lvbklEKTsKICAgICB2aXJ0dWFsIH5EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpOwog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6
OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmKTsK
QEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBCYXNlID0gV29y
a2VyR2xvYmFsU2NvcGU7CiAKLSAgICBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3Rvbmlj
VGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFBy
b3ZpZGVyKiwgU2Vzc2lvbklEKTsKKyAgICBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3Rv
bmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tl
dFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgYm9vbCBpc0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IGltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3Bw
CmluZGV4IGE0ODM4YjQ3MGIzLi41MDkyYmM5Y2I2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApAQCAtMzgsNyArMzgsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLURlZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29y
a2VyVGhyZWFkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRl
clByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVj
dFByb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0
UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3Ms
IFNlc3Npb25JRCBzZXNzaW9uSUQpCitEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdv
cmtlclRocmVhZChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmpl
Y3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJveHksIFNvY2tl
dFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdz
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBXb3JrZXJUaHJlYWQodXJsLCBpZGVu
dGlmaWVyLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJP
YmplY3RQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdG9wT3JpZ2lu
LCB0aW1lT3JpZ2luLCBjb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxh
Z3MsIHNlc3Npb25JRCkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkod29ya2VyT2JqZWN0UHJv
eHkpCiB7CkBAIC00OCw3ICs0OCw3IEBAIERlZGljYXRlZFdvcmtlclRocmVhZDo6fkRlZGljYXRl
ZFdvcmtlclRocmVhZCgpCiB7CiB9CiAKLVJlZjxXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVk
V29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIFNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8V29ya2VyR2xvYmFsU2NvcGU+IERl
ZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3Rvbmlj
VGltZSB0aW1lT3JpZ2luLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgcmV0dXJu
IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUodXJsLCBpZGVudGlmaWVyLCB1c2Vy
QWdlbnQsICp0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgV1RGTW92ZSh0b3BPcmlnaW4p
LCB0aW1lT3JpZ2luLCBpZGJDb25uZWN0aW9uUHJveHkoKSwgc29ja2V0UHJvdmlkZXIoKSwgc2Vz
c2lvbklEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVk
V29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRo
cmVhZC5oCmluZGV4IGVjMDEyZjViZmEwLi43NzViMGMwOWI2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCkBAIC00OSwxMSArNDksMTEgQEAg
cHVibGljOgogICAgIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSgpIGNvbnN0
IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0UHJveHk7IH0KIAogcHJvdGVjdGVkOgotICAgIFJlZjxX
b3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmln
aW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgU2Vzc2lvbklEKSBvdmVycmlkZTsKKyAgICBS
ZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
T3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIERl
ZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtl
ckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUs
IGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdp
biYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29u
bmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vzc2lv
bklEKTsKKyAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29ya2VyVGhy
ZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMm
LCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgSlNDOjpSdW50aW1l
RmxhZ3MsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIFdvcmtlck9iamVjdFByb3h5JiBtX3dvcmtl
ck9iamVjdFByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCA0MzYxMmQy
MzNkZC4uODI5MDMxNDA1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTE2Nyw3
ICsxNjcsNyBAQCB2b2lkIFdvcmtlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZQogdm9pZCBXb3JrZXI6Om5vdGlmeUZp
bmlzaGVkKCkKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBjb250ZXh0ID8gY29udGV4dC0+c2Vzc2lvbklE
KCkgOiBTZXNzaW9uSUQoKTsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBjb250ZXh0
ID8gY29udGV4dC0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRCgpOwogCiAgICAgaWYgKG1f
c2NyaXB0TG9hZGVyLT5mYWlsZWQoKSB8fCAhc2Vzc2lvbklELmlzVmFsaWQoKSkKICAgICAgICAg
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBmYWxz
ZSwgdHJ1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cAppbmRleCAxODBmODhlNjk1OC4uNzYyYjQxMTZjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01Miw3ICs1Miw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV29ya2VyR2xvYmFsU2Nv
cGU6Oldvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmIHRocmVhZCwgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50
OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNv
Y2tldFByb3ZpZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorV29ya2VyR2xvYmFsU2NvcGU6Oldv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmIHRocmVhZCwgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJD
b25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFBy
b3ZpZGVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3VybCh1cmwpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBjNWIwZDUy
YWI0Yy4uNjcwNzM0NDc3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmgKQEAgLTI5LDEzICsyOSwxMyBAQAogI2luY2x1ZGUgIkJhc2U2NFV0aWxpdGllcy5o
IgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRRdWV1ZS5oIgogI2lu
Y2x1ZGUgIldvcmtlclNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZp
ZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTA4LDcgKzEwOCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgZmluYWw7CiAK
IHByb3RlY3RlZDoKLSAgICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmLCBi
b29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgU2Vzc2lvbklEKTsKKyAg
ICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRv
cE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBh
cHBseUNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmKTsKIApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZh
dGU6CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uc3RfY2FzdDxXb3JrZXJHbG9iYWxTY29wZSo+KHRo
aXMpOyB9CiAgICAgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwot
ICAgIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25J
RDsgfQorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc2Vzc2lvbklEOyB9CiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBm
aW5hbDsKICAgICB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBm
aW5hbDsKICAgICB2b2lkIGRpc2FibGVXZWJBc3NlbWJseShjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSkgZmluYWw7CkBAIC0xODIsNyArMTgyLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UGVy
Zm9ybWFuY2U+IG1fcGVyZm9ybWFuY2U7CiAgICAgbXV0YWJsZSBSZWZQdHI8Q3J5cHRvPiBtX2Ny
eXB0bzsKIAotICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNjdhZGY3MDE0Nzcu
LmMxZGY0OWM2ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlUHJveHkuaApAQCAtMzUsMTAgKzM1LDEzIEBACiAjaW5jbHVkZSA8cnVudGltZS9SdW50
aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogCituYW1lc3BhY2Ug
UEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM7Ci1jbGFzcyBTZXNzaW9uSUQ7
CiBjbGFzcyBVUkw7CiBjbGFzcyBXb3JrZXI7CiAKQEAgLTQ3LDcgKzUwLDcgQEAgY2xhc3MgV29y
a2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNj
b3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vz
c2lvbklEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29u
c3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9u
aWNUaW1lIHRpbWVPcmlnaW4sIEpTQzo6UnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKFJlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxB
cnJheT4pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cAppbmRleCAxOTY1M2Q4YzJiNS4uNGIyYWMxMzBiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFdvcmtl
ck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8
V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGN1cnJlbnRU
aHJlYWQoKSA9PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkudGhyZWFkKCkudGhyZWFkSUQoKSkpOwogfQogCi12b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQ
b2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGlt
ZUZsYWdzLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6
c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBN
b25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncywg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8g
YmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBB
U1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCA3OTNhNGM1MDY1MS4uYzEyM2UzZjkyNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRhdGlvbnMg
b2YgV29ya2VyR2xvYmFsU2NvcGVQcm94eS4KICAgICAvLyAoT25seSB1c2UgdGhlc2UgZnVuY3Rp
b25zIGluIHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4pCi0gICAgdm9pZCBzdGFydFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vzc2lv
bklEKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBz
Y3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIEpTQzo6UnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCkgZmluYWw7CiAgICAg
dm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1l
c3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYs
IHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4pIGZpbmFsOwogICAgIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAKaW5kZXggZjZhYjllNGVmZTEuLmE2YjcxMTIyNDllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHVuc2ln
bmVkIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkQ291bnQoKQogc3RydWN0IFdvcmtlclRocmVh
ZFN0YXJ0dXBEYXRhIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJUaHJlYWRTdGFy
dHVwRGF0YSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdvcmtlclRo
cmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUs
IFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgU2Vzc2lvbklEKTsKKyAgICBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwm
IHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKTsKIAog
ICAgIFVSTCBtX3NjcmlwdFVSTDsKICAgICBTdHJpbmcgbV9pZGVudGlmaWVyOwpAQCAtODMsMTAg
KzgzLDEwIEBAIHB1YmxpYzoKICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5OwogICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gbV90b3BPcmlnaW47CiAg
ICAgTW9ub3RvbmljVGltZSBtX3RpbWVPcmlnaW47Ci0gICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklE
OworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAotV29ya2VyVGhyZWFkU3Rh
cnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGlt
ZSB0aW1lT3JpZ2luLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorV29ya2VyVGhyZWFkU3RhcnR1cERh
dGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1l
T3JpZ2luLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3NjcmlwdFVSTChzY3Jp
cHRVUkwuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllci5pc29s
YXRlZENvcHkoKSkKICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudC5pc29sYXRlZENvcHkoKSkK
QEAgLTEwMCw3ICsxMDAsNyBAQCBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6V29ya2VyVGhyZWFk
U3RhcnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cgogewogfQogCi1Xb3Jr
ZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9y
dGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0
YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2lu
LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgSlNDOjpS
dW50aW1lRmxhZ3MgcnVudGltZUZsYWdzLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorV29ya2VyVGhy
ZWFkOjpXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29k
ZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQ
cm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1v
ZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9u
b3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29u
bmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGlt
ZUZsYWdzIHJ1bnRpbWVGbGFncywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV93
b3JrZXJMb2FkZXJQcm94eSh3b3JrZXJMb2FkZXJQcm94eSkKICAgICAsIG1fd29ya2VyUmVwb3J0
aW5nUHJveHkod29ya2VyUmVwb3J0aW5nUHJveHkpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50
aW1lRmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCBjNTkzMjI5
NjdmZC4uY2ZlMzQzZWVmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApA
QCAtMzEsMTMgKzMxLDE2IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30K
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnM7CiBjbGFzcyBVUkw7CiBjbGFzcyBOb3RpZmljYXRpb25DbGllbnQ7CiBjbGFz
cyBTZWN1cml0eU9yaWdpbjsKLWNsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFNvY2tldFByb3ZpZGVy
OwogY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CiBjbGFzcyBXb3JrZXJMb2FkZXJQcm94eTsKQEAg
LTgxLDEwICs4NCwxMCBAQCBwdWJsaWM6CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZs
YWdzKCkgY29uc3QgeyByZXR1cm4gbV9ydW50aW1lRmxhZ3M7IH0KIAogcHJvdGVjdGVkOgotICAg
IFdvcmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRl
clByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVj
dGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vzc2lvbklE
KTsKKyAgICBXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3Jr
ZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRN
b2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgSlNDOjpSdW50aW1lRmxhZ3MsIFBB
TDo6U2Vzc2lvbklEKTsKIAogICAgIC8vIEZhY3RvcnkgbWV0aG9kIGZvciBjcmVhdGluZyBhIG5l
dyB3b3JrZXIgY29udGV4dCBmb3IgdGhlIHRocmVhZC4KLSAgICB2aXJ0dWFsIFJlZjxXb3JrZXJH
bG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1v
bm90b25pY1RpbWUgdGltZU9yaWdpbiwgU2Vzc2lvbklEKSA9IDA7CisgICAgdmlydHVhbCBSZWY8
V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3Jp
Z2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKSA9IDA7CiAKICAg
ICAvLyBFeGVjdXRlcyB0aGUgZXZlbnQgbG9vcCBmb3IgdGhlIHdvcmtlciB0aHJlYWQuIERlcml2
ZWQgY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gcGVyZm9ybSBhY3Rpb25zIGJlZm9yZS9hZnRlciBl
bnRlcmluZyB0aGUgZXZlbnQgbG9vcC4KICAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250YWluZXIuaAppbmRleCAxMDJjMmZjZmZjMy4uMGU0MmJjNGNmODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuaApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JDbGllbnQu
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIK
KyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggYmE3NDM0YTBlNTIuLjFmOTJhN2ZkMjNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvblBhcmFtZXRlcnMuaApAQCAtMjksMTMgKzI5LDEzIEBACiAKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uT3B0aW9ucy5oIgotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlVS
TC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycyB7
Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7
CiAgICAgVVJMIHNjcmlwdFVSTDsKICAgICBVUkwgY2xpZW50Q3JlYXRpb25VUkw7CiAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTA4ZjRhMjcxNzAuLjVlY2Zi
YTAzYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4MSBAQAogMjAxNy0wOC0xNSAgRG9uIE9sbXN0
ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCisgICAgICAgIFtQQUxdIE1vdmUgU2Vzc2lv
bklEIGludG8gUEFMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzQxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZCk6CisgICAg
ICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6cmVzdW1lRG93bmxvYWQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRTdHJlYW0pOgor
ICAgICAgICAoV2ViS2l0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2Fk
VG9Eb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmdldFJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25s
b2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5j
cHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktp
dDo6ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmRvd25sb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpy
ZXN1bWVEb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpO
ZXR3b3JrU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnNlc3Npb25JRCBjb25zdCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTb2NrZXRTdHJlYW06Ok5ldHdvcmtTb2NrZXRTdHJlYW0pOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkOjpTcGVjdWxhdGl2ZUxvYWQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0Ojpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Np
b25Db2NvYTo6ZGVmYXVsdFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uU291cDo6TmV0d29ya1Nlc3Npb25Tb3VwKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtTZXNzaW9uU291cC5oOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMudGVtcGxh
dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKGNsYXNzX3RlbXBsYXRlX2hlYWRlcnMudGVtcGxhdGUp
OiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDaGlsZFByb2Nlc3M6OmluaXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9TZXNz
aW9uVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OnN0YXRpY1Nlc3Npb25NYXApOgorICAg
ICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24pOgorICAgICAgICAo
V2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNl
c3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbik6CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25U
cmFja2VyLmg6CisgICAgICAgICogU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW0ubW06CisgICAgICAgIChXZWJLaXQ6OndlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhl
YWRlckZpZWxkc0ZvclVSTCk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQpOgorICAgICAgICAqIFN0b3JhZ2VQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBT
dG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3Jh
Z2VQcm9jZXNzOjppZGJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6
ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjpkZWxl
dGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjpkZWxldGVX
ZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQ
cm9jZXNzLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKToKKyAgICAgICAgKiBTdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJ
OjpQYWdlQ29uZmlndXJhdGlvbjo6c2V0V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChBUEk6
OlBhZ2VDb25maWd1cmF0aW9uOjpzZXNzaW9uSUQpOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmln
dXJhdGlvbjo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVBhZ2VD
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0
b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9y
ZSk6CisgICAgICAgIChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZUxlZ2FjeSk6CisgICAg
ICAgIChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyR2V0
SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29v
a2llc0Zvckhvc3RuYW1lKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tp
ZXMpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0
ZXJEYXRlKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6
CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMpOgor
ICAgICAgICAoV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKC1b
V0tQcm9jZXNzUG9vbCBfc2V0Q29va2llQWNjZXB0UG9saWN5Ol0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNp
dGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgICh3ZWJraXRfY29v
a2llX21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3kpOgorICAgICAgICAod2Via2l0X2Nvb2tpZV9t
YW5hZ2VyX2dldF9hY2NlcHRfcG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
SW5BdXRvU3RhcnRQcm92aWRlcjo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIpOgorICAgICAgICAo
V2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YWRkQXV0b1N0YXJ0T3JpZ2luSGFzaCk6
CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmln
aW5zVGFibGVDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJv
dmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmRpZFJlY2VpdmVVc2VySW50
ZXJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0
ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJz
aXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdl
YnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5
OjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVN
YW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0QWxsQ29va2llcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXJQcm94eTo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2ll
T2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94
eTo6cmVnaXN0ZXJPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6dW5yZWdpc3Rlck9ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFu
YWdlclByb3h5Ojpjb29raWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Vz
c2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZl
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGFnZUFk
ZGVkVG9Qcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBhZ2VSZW1v
dmVkRnJvbVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxv
YWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
SGFzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbHVnSW5EaWRSZWNlaXZl
VXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluc0luQWxsUGVyc2lzdGVudERhdGFTdG9yZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OnRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zV2l0aFdlYnNpdGVEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
OjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9XZWJDb29r
aWVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6Z2V0SG9z
dG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpk
ZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5h
Z2VyOjpkZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
cjo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6ZGVs
ZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVN
YW5hZ2VyOjpnZXRBbGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
cjo6Z2V0Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnNldENv
b2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZXMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpub3RpZnlDb29raWVzRGlkQ2hhbmdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9XZWJDb29r
aWVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFn
ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVy
Rm9yU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQ
cm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9h
ZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0
cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdIYW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9XZWJTb2NrZXRTdHJlYW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRTdHJl
YW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFN0cmVhbTo6V2ViU29ja2V0
U3RyZWFtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246
OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rv
d25sb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGx1Z0luQ2xpZW50OjpkaWRTdGFydEZyb21PcmlnaW4pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6c3RhcnREb3dubG9hZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2gp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5EZWZhdWx0SGFzaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVz
ZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisKKzIw
MTctMDgtMTUgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKwogICAgICAg
ICBbUEFMXSBNb3ZlIFNsZWVwIGNsYXNzZXMgaW50byBQQUwKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ1NgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggYmY4NDQzYjU3
MTguLmNkOTIxOTUyMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9O
KQotRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBE
b3dubG9hZElEIGRvd25sb2FkSUQsIE5ldHdvcmtEYXRhVGFzayYgZG93bmxvYWQsIGNvbnN0IFNl
c3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCitEb3dubG9h
ZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQg
ZG93bmxvYWRJRCwgTmV0d29ya0RhdGFUYXNrJiBkb3dubG9hZCwgY29uc3QgUEFMOjpTZXNzaW9u
SUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQogICAgIDogbV9kb3du
bG9hZE1hbmFnZXIoZG93bmxvYWRNYW5hZ2VyKQogICAgICwgbV9kb3dubG9hZElEKGRvd25sb2Fk
SUQpCiAgICAgLCBtX2Rvd25sb2FkKCZkb3dubG9hZCkKQEAgLTU3LDcgKzU3LDcgQEAgRG93bmxv
YWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElE
IGRvd25sb2FkSUQsIE5ldHcKICAgICBtX2Rvd25sb2FkTWFuYWdlci5kaWRDcmVhdGVEb3dubG9h
ZCgpOwogfQogI2lmIFBMQVRGT1JNKENPQ09BKQotRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2Fk
TWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIE5TVVJMU2Vz
c2lvbkRvd25sb2FkVGFzayogZG93bmxvYWQsIGNvbnN0IFNlc3Npb25JRCYgc2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCitEb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRN
YW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgTlNVUkxTZXNz
aW9uRG93bmxvYWRUYXNrKiBkb3dubG9hZCwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQogICAgIDogbV9kb3dubG9hZE1hbmFnZXIo
ZG93bmxvYWRNYW5hZ2VyKQogICAgICwgbV9kb3dubG9hZElEKGRvd25sb2FkSUQpCiAgICAgLCBt
X2Rvd25sb2FkVGFzayhkb3dubG9hZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCmluZGV4IGFlNGQ3Y2ZmNmNmLi5iYzllYTRmNTIyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5oCkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KIApAQCAtNzYsOSArNzYsOSBAQCBjbGFzcyBEb3dubG9hZCA6IHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERvd25sb2FkKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLSAgICBE
b3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBOZXR3b3JrRGF0YVRhc2smLCBj
b25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0
ZWRGaWxlbmFtZSA9IHsgfSk7CisgICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxv
YWRJRCwgTmV0d29ya0RhdGFUYXNrJiwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgTlNVUkxTZXNz
aW9uRG93bmxvYWRUYXNrKiwgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUgPSB7IH0pOworICAgIERvd25sb2FkKERvd25s
b2FkTWFuYWdlciYsIERvd25sb2FkSUQsIE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayosIGNvbnN0
IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5h
bWUgPSB7IH0pOwogI2VuZGlmCiAjZWxzZQogICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYs
IERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgc3VnZ2VzdGVkRmlsZW5hbWUgPSB7IH0pOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRvd25sb2Fk
VGFzaz4gbV9kb3dubG9hZFRhc2s7CiAjZW5kaWYKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9z
ZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAjZWxzZSAvLyBVU0Uo
TkVUV09SS19TRVNTSU9OKQogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7
CiAgICAgU3RyaW5nIG1fcmVzcG9uc2VNSU1FVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCmluZGV4
IGI3NmJhNDdiZDEwLi5lZjE1MzAxOWEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCkBAIC0zMyw3
ICszMyw3IEBACiAjaW5jbHVkZSAiUGVuZGluZ0Rvd25sb2FkLmgiCiAjaW5jbHVkZSAiU2Vzc2lv
blRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpAQCAtNDUsNyArNDUsNyBAQCBEb3dubG9hZE1hbmFnZXI6OkRvd25sb2FkTWFuYWdl
cihDbGllbnQmIGNsaWVudCkKIHsKIH0KIAotdm9pZCBEb3dubG9hZE1hbmFnZXI6OnN0YXJ0RG93
bmxvYWQoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24sIFNlc3Npb25J
RCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCit2b2lkIERvd25sb2FkTWFu
YWdlcjo6c3RhcnREb3dubG9hZChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVj
dGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1l
KQogewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgYXV0byogbmV0d29ya1Nlc3Npb24g
PSBTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKQEAgLTE2Miw3ICsx
NjIsNyBAQCB2b2lkIERvd25sb2FkTWFuYWdlcjo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxv
YWREZXN0aW5hdGlvbihEb3dubG9hZElEIGRvd25sbwogI2VuZGlmCiB9CiAKLXZvaWQgRG93bmxv
YWRNYW5hZ2VyOjpyZXN1bWVEb3dubG9hZChTZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJ
RCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRs
ZSkKK3ZvaWQgRG93bmxvYWRNYW5hZ2VyOjpyZXN1bWVEb3dubG9hZChQQUw6OlNlc3Npb25JRCwg
RG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURh
dGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKaW5kZXggYjRkNTI1YjcyZDQuLjE2M2Mw
MGE1YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaApAQCAtMzUsMTIgKzM1LDE1IEBACiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAorbmFtZXNwYWNl
IFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IEJsb2JEYXRhRmlsZVJlZmVyZW5jZTsKIGNsYXNzIFJlc291cmNlSGFuZGxlOwogY2xhc3MgUmVz
b3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFNlc3Npb25JRDsK
IH0KIAogbmFtZXNwYWNlIElQQyB7CkBAIC03NSw3ICs3OCw3IEBAIHB1YmxpYzoKIAogICAgIGV4
cGxpY2l0IERvd25sb2FkTWFuYWdlcihDbGllbnQmKTsKIAotICAgIHZvaWQgc3RhcnREb3dubG9h
ZChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyosIFdlYkNvcmU6OlNlc3Npb25JRCwgRG93
bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWROYW1lID0geyB9KTsKKyAgICB2b2lkIHN0YXJ0RG93bmxvYWQoTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MqLCBQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9
KTsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIHZvaWQgZGF0YVRhc2tCZWNhbWVEb3du
bG9hZFRhc2soRG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkPiYmKTsKICNpZiBV
U0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQpAQCAtODcsNyArOTAsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjb252ZXJ0TmV0d29ya0xvYWRUb0Rvd25sb2FkKERvd25sb2FkSUQsIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrTG9hZD4mJiwgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9i
RGF0YUZpbGVSZWZlcmVuY2U+PiYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBjb250aW51ZURlY2lk
ZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQsIFN0cmluZyBkZXN0aW5hdGlv
biwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7
CiAKLSAgICB2b2lkIHJlc3VtZURvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxvYWRJ
RCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOworICAgIHZvaWQgcmVzdW1lRG93
bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmKTsKIAogICAgIHZvaWQgY2FuY2VsRG93bmxvYWQoRG93bmxvYWRJRCk7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXIuaAppbmRleCA2NTIyZDk4MjY4NC4uYWU5NDc0YTUxZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1By
ZWZsaWdodENoZWNrZXIuaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VIYW5kbGVUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsNyAr
NDYsNyBAQCBwdWJsaWM6CiAgICAgc3RydWN0IFBhcmFtZXRlcnMgewogICAgICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0OwogICAgICAgICBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+IHNvdXJjZU9yaWdpbjsKLSAgICAgICAgV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRDsKKyAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgICAgICBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOwogICAgIH07
CiAgICAgZW51bSBjbGFzcyBSZXN1bHQgeyBTdWNjZXNzLCBGYWlsdXJlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IDczYmE2MGMyN2UzLi5kMjQxYzBkNzM1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTUxLDcgKzUxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9w
dGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklE
Lmg+CiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogI2luY2x1ZGUgIlBpbmdMb2FkLmgiCkBA
IC0xNzMsNyArMTczLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIEkKIHsKIH0KIAotdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0U3RyZWFtKFVSTCYmIHVy
bCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRfdCBp
ZGVudGlmaWVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlU29j
a2V0U3RyZWFtKFVSTCYmIHVybCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgY2Fj
aGVQYXJ0aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFtX25ldHdv
cmtTb2NrZXRTdHJlYW1zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKICAgICBXZWJDb3JlOjpTb3Vy
Y2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4gdG9rZW4gPSB7IH07CkBAIC0yNjMsMTAgKzI2MywxMCBA
QCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25zdCBT
dHJpbmcmIGhvc3RuYW1lKQogICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVmZXRj
aEROUyhob3N0bmFtZSk7CiB9CiAKLXN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3Jh
Z2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCitzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNT
RVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIGlmIChzZXNzaW9uSUQgIT0gU2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKKyAgICBpZiAoc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNz
aW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQog
ICAgICAgICAgICAgcmV0dXJuICpzdG9yYWdlU2Vzc2lvbjsKIApAQCAtMjc3LDEyICsyNzcsMTIg
QEAgc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oU2Vzc2lvbklE
IHNlc3Npb25JRCkKICAgICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3Rv
cmFnZVNlc3Npb24oKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
c3RhcnREb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRO
YW1lKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RhcnREb3dubG9hZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCiB7CiAg
ICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93
bmxvYWQodGhpcywgc2Vzc2lvbklELCBkb3dubG9hZElELCByZXF1ZXN0LCBzdWdnZXN0ZWROYW1l
KTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5S
ZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5S
ZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9h
ZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAg
IGF1dG8mIG5ldHdvcmtQcm9jZXNzID0gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpOwogICAg
IGlmICghbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIpIHsKQEAgLTI5OSwzMiArMjk5LDMyIEBA
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VM
b2FkVG9Eb3dubG9hZChTZXNzaW9uSUQKICAgICBsb2FkZXItPmNvbnZlcnRUb0Rvd25sb2FkKGRv
d25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkKK3ZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcm
IHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBXZWJDb3JlOjpjb29raWVzRm9yRE9NKHN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKFNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
Y29va2llU3RyaW5nKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29v
a2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKICAgICBX
ZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTShzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpLCBmaXJz
dFBhcnR5LCB1cmwsIGNvb2tpZVN0cmluZyk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJvb2wmIHJlc3VsdCkKK3ZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgYm9vbCYgcmVz
dWx0KQogewogICAgIHJlc3VsdCA9IFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKHN0b3JhZ2VTZXNz
aW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFN0cmlu
ZyYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICByZXN1
bHQgPSBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lv
bihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByZXN1bHQp
Cit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVy
bCwgVmVjdG9yPENvb2tpZT4mIHJlc3VsdCkKIHsKICAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVz
KHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCwgcmVzdWx0KTsKIH0K
IAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llKFNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUp
Cit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVO
YW1lKQogewogICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZShzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpLCB1cmwsIGNvb2tpZU5hbWUpOwogfQpAQCAtNDIwLDcgKzQyMCw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmlj
c0VuYWJsZWQoYm9vCiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3Vy
ZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewotICAgIE5ldHdvcmtQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHtTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQoKSwgeyB9LCB7IH0sIHsgfX0pOworICAgIE5ldHdvcmtQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHtQQUw6OlNlc3Npb25J
RDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCB7IH0sIHsgfSwgeyB9fSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDM4NGNjZTc0YzQy
Li4yNjdhMWE2YWFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtODgsMTUgKzg4LDE1
IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgYm9vbCk7CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRpcmVjdFVSTCk7Ci0gICAg
dm9pZCBzdGFydERvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0g
eyB9KTsKLSAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3Jl
OjpTZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9h
ZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBzdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBE
b3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcm
IHN1Z2dlc3RlZE5hbWUgPSB7IH0pOworICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRU
b0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9pZCBjb29raWVzRm9yRE9NKFdl
YkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgdm9pZCBzZXRDb29raWVzRnJvbURP
TShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBjb29raWVzRW5hYmxl
ZChXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgYm9vbCYgcmVzdWx0KTsKLSAgICB2b2lkIGNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgdm9p
ZCBnZXRSYXdDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYp
OwotICAgIHZvaWQgZGVsZXRlQ29va2llKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JE
T00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1bHQpOworICAgIHZvaWQgc2V0Q29va2llc0Zyb21E
T00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjb29raWVzRW5hYmxlZChQ
QUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJD
b3JlOjpVUkwmLCBib29sJiByZXN1bHQpOworICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1bHQpOworICAgIHZvaWQgZ2V0UmF3Q29v
a2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpOworICAgIHZvaWQgZGVs
ZXRlQ29va2llKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJp
bmcmIGNvb2tpZU5hbWUpOwogCiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFdl
YkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCByZWdpc3RlckJs
b2JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiYmLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wp
OwogCi0gICAgdm9pZCBjcmVhdGVTb2NrZXRTdHJlYW0oV2ViQ29yZTo6VVJMJiYsIFdlYkNvcmU6
OlNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRfdCk7CisgICAgdm9pZCBj
cmVhdGVTb2NrZXRTdHJlYW0oV2ViQ29yZTo6VVJMJiYsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcg
Y2FjaGVQYXJ0aXRpb24sIHVpbnQ2NF90KTsKICAgICB2b2lkIGRlc3Ryb3lTb2NrZXRTdHJlYW0o
dWludDY0X3QpOwogICAgIAogICAgIHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
ZWUyNTg0YmMzYmMuLjk2MDhiNDliZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTI5LDE1ICsyOSwxNSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0RGVmZXJzTG9hZGlu
Zyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sIGRlZmVycykKICAgICBQcmVm
ZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCiAKLSAgICBTdGFydERvd25sb2FkKFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUpCi0gICAgQ29u
dmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2Fk
SUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCisgICAgU3RhcnREb3dubG9hZChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUpCisgICAgQ29udmVy
dE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWlu
dDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3du
bG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZSkKIAotICAgIENvb2tpZXNGb3JET00oV2ViQ29yZTo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwp
IC0+IChTdHJpbmcgcmVzdWx0KQotICAgIFNldENvb2tpZXNGcm9tRE9NKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJs
LCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVkKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJs
KSAtPiAoYm9vbCBlbmFibGVkKQotICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJD
b3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKLSAgICBHZXRSYXdDb29raWVzKFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3Jl
OjpVUkwgdXJsKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKLSAgICBEZWxl
dGVDb29raWUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIHVybCwg
U3RyaW5nIGNvb2tpZU5hbWUpCisgICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3Ry
aW5nIHJlc3VsdCkKKyAgICBTZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29v
a2llU3RyaW5nKQorICAgIENvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChib29sIGVuYWJs
ZWQpCisgICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0
cmluZyByZXN1bHQpCisgICAgR2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4gY29va2llcykKKyAgICBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKIAogICAgIFJl
Z2lzdGVyRmlsZUJsb2JVUkwoV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRU
eXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTChXZWJDb3JlOjpVUkwgdXJsLCBWZWN0b3I8V2ViQ29y
ZTo6QmxvYlBhcnQ+IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRUeXBlKQpAQCAtNTMsNyArNTMs
NyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciB7CiAKICAgICBTZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJv
b2wgZW5hYmxlZCkKIAotICAgIENyZWF0ZVNvY2tldFN0cmVhbShXZWJDb3JlOjpVUkwgdXJsLCBX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgY2FjaGVQYXJ0aXRpb24sIHVpbnQ2
NF90IGlkZW50aWZpZXIpCisgICAgQ3JlYXRlU29ja2V0U3RyZWFtKFdlYkNvcmU6OlVSTCB1cmws
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRf
dCBpZGVudGlmaWVyKQogCiAgICAgRW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4
IDA0NzQ3YzQwYTAyLi44NWE1YjEyZTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1ZGUg
PHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggZDA2NGJlYmVjZWEuLjE0
YTVlOTNiNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Np
b25JRC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBO
ZXR3b3JrTG9hZFBhcmFtZXRlcnMgewogcHVibGljOgogICAgIHVpbnQ2NF90IHdlYlBhZ2VJRCB7
IDAgfTsKICAgICB1aW50NjRfdCB3ZWJGcmFtZUlEIHsgMCB9OwotICAgIFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQgeyBXZWJDb3JlOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkgfTsK
KyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgeyBQQUw6OlNlc3Npb25JRDo6ZW1wdHlTZXNz
aW9uSUQoKSB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJD
b3JlOjpTbmlmZkNvbnRlbnQgfTsKICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBhbGxv
d1N0b3JlZENyZWRlbnRpYWxzIHsgV2ViQ29yZTo6RG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxz
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CmluZGV4IDFiZTM4YTI3MjE4Li5lMWVmMTUxYmJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTYxLDkgKzYxLDkgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkhhc2guaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTFBhcnNlci5oPgorI2luY2x1ZGUg
PHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4K
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
QEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29y
a1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJgogCiAgICAgLy8gRklY
TUU6IGluc3RlYWQgb2YgaGFuZGxpbmcgdGhpcyBoZXJlLCBhIG1lc3NhZ2Ugc2hvdWxkIGJlIHNl
bnQgbGF0ZXIgKHNjYWxlcyB0byBtdWx0aXBsZSBzZXNzaW9ucykKICAgICBpZiAocGFyYW1ldGVy
cy5wcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih7U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKCksIHsgfSwgeyB9LCB7IH19KTsKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oe1BBTDo6U2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCksIHsgfSwgeyB9LCB7IH19KTsKIAogICAgIGlmIChwYXJhbWV0
ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbikKICAgICAgICAgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CkBAIC0yOTgsNyArMjk4LDcg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMKICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24oV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAK
LXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQp
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiB7CiAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCk7
CiB9CkBAIC0zMjUsNyArMzI1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dXBkYXRlQ29va2ll
UGFydGl0aW9uaW5nRm9yVG9wUHJpdmF0ZWx5T3duZWREb21haW5zKGNvbnN0IFYKIH0KICNlbmRp
ZgogCi1zdGF0aWMgdm9pZCBmZXRjaERpc2tDYWNoZUVudHJpZXMoU2Vzc2lvbklEIHNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgRnVuY3Rp
b248dm9pZCAoVmVjdG9yPFdlYnNpdGVEYXRhOjpFbnRyeT4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQorc3RhdGljIHZvaWQgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgRnVu
Y3Rpb248dm9pZCAoVmVjdG9yPFdlYnNpdGVEYXRhOjpFbnRyeT4pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmIChhdXRvKiBjYWNoZSA9
IE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZSgpKSB7CkBAIC0zNjAsNyArMzYwLDcg
QEAgc3RhdGljIHZvaWQgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKFNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGMKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRj
aE9wdGlvbj4gZmV0Y2hPcHRpb25zLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIE9wdGlvblNldDxXZWJzaXRl
RGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAg
ICAgc3RydWN0IENhbGxiYWNrQWdncmVnYXRvciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPENh
bGxiYWNrQWdncmVnYXRvcj4gewogICAgICAgICBleHBsaWNpdCBDYWxsYmFja0FnZ3JlZ2F0b3Io
RnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNDAy
LDcgKzQwMiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhCiAgICAgfQogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0
X3QgY2FsbGJhY2tJRCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAod2Vic2l0ZURh
dGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkhTVFNDYWNoZSkpIHsKQEAgLTQ2MCw3
ICs0NjAsNyBAQCBzdGF0aWMgdm9pZCBjbGVhckRpc2tDYWNoZUVudHJpZXMoY29uc3QgVmVjdG9y
PFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIEZ1bgogICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8
U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tp
ZUhvc3ROYW1lcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRl
bGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1
cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9z
dE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVz
LmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6Q29va2llcykpIHsKICAgICAgICAgaWYgKGF1dG8q
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNl
c3Npb24oc2Vzc2lvbklEKSkKQEAgLTQ3OSwxMiArNDc5LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8CiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZG93bmxvYWRSZXF1ZXN0KFNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxv
YWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dl
c3RlZEZpbGVuYW1lKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRSZXF1ZXN0KFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCiB7CiAg
ICAgZG93bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChudWxscHRyLCBzZXNzaW9uSUQsIGRv
d25sb2FkSUQsIHJlcXVlc3QsIHN1Z2dlc3RlZEZpbGVuYW1lKTsKIH0KIAotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6cmVzdW1lRG93bmxvYWQoU2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBk
b3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0
cmluZyYgcGF0aCwgY29uc3QgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXN1bWVEb3dubG9hZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQog
ewogICAgIGRvd25sb2FkTWFuYWdlcigpLnJlc3VtZURvd25sb2FkKHNlc3Npb25JRCwgZG93bmxv
YWRJRCwgcmVzdW1lRGF0YSwgcGF0aCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZGRmMWZh
MjI0OTUuLmVkZTJiZjNlOTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAiRG93bmxvYWRNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+
CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgpAQCAtNDIsMTMgKzQyLDE2
IEBACiAjaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCiAjZW5kaWYKIAorbmFt
ZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIERvd25sb2FkSUQ7CiBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBOZXR3b3Jr
U3RvcmFnZVNlc3Npb247CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBTZWN1cml0eU9y
aWdpbjsKLWNsYXNzIFNlc3Npb25JRDsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1
Y3QgU291cE5ldHdvcmtQcm94eVNldHRpbmdzOwogfQpAQCAtMTcxLDE5ICsxNzQsMTkgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBhZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzJiYpOwotICAgIHZvaWQgZGVzdHJveVNlc3Npb24oV2ViQ29yZTo6U2Vzc2lv
bklEKTsKKyAgICB2b2lkIGRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKIAotICAgIHZv
aWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6
dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lk
IGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhPiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0
Y2hPcHRpb24+LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVE
YXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJv
bm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxs
YmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2ll
SG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIHZvaWQgY2xlYXJDYWNoZWRD
cmVkZW50aWFscygpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSBzZXNzaW9u
IElEIHNvIHdlIGNhbiBpZGVudGlmeSB3aGljaCBkaXNrIGNhY2hlIHRvIGRlbGV0ZS4KICAgICB2
b2lkIGNsZWFyRGlza0NhY2hlKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQg
bW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAK
LSAgICB2b2lkIGRvd25sb2FkUmVxdWVzdChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVk
RmlsZW5hbWUpOwotICAgIHZvaWQgcmVzdW1lRG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklELCBE
b3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0
cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CisgICAgdm9pZCBk
b3dubG9hZFJlcXVlc3QoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpOworICAg
IHZvaWQgcmVzdW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICAgICB2b2lkIGNhbmNlbERvd25sb2FkKERvd25s
b2FkSUQpOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdm9p
ZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UodWludDY0X3Qg
cmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCBjYW5BdXRoZW50aWNhdGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggMzZlNDc3Nzg5ZjIuLmFjYWY4MWYyZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM3
LDE0ICszNywxNCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7
CiAKICAgICBFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHN0cnVjdCBXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKQogICAgIEFk
ZFdlYnNpdGVEYXRhU3RvcmUoc3RydWN0IFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMgd2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMpOwotICAgIERlc3Ryb3lTZXNzaW9uKFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgRGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogCi0gICAgRmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0
aW9ucywgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+
IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQg
bW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBEZWxldGVXZWJzaXRlRGF0
YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zLCBWZWN0b3I8U3RyaW5nPiBjb29raWVIb3N0TmFtZXMs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hP
cHRpb25zLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3
ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1v
ZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRGVsZXRlV2Vic2l0ZURhdGFG
b3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vi
c2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhPiBvcmlnaW5zLCBWZWN0b3I8U3RyaW5nPiBjb29raWVIb3N0TmFtZXMsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiAKLSAgICBEb3dubG9hZFJlcXVlc3QoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUpCi0gICAgUmVzdW1l
RG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElE
IGRvd25sb2FkSUQsIElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bWVEYXRhLCBTdHJpbmcgcGF0aCwg
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkK
KyAgICBEb3dubG9hZFJlcXVlc3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRv
d25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0
cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSkKKyAgICBSZXN1bWVEb3dubG9hZChQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBJUEM6OkRhdGFSZWZl
cmVuY2UgcmVzdW1lRGF0YSwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgQ2FuY2VsRG93bmxvYWQoV2ViS2l0
OjpEb3dubG9hZElEIGRvd25sb2FkSUQpCiAKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRI
X0NBTExCQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4IDFjZmU3YThiZTNmLi44YWY0
MjFhMTEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAtMzQsNyArMzQsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3BhY2UgSVBD
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oCmluZGV4IDZlZDVmN2ZmMjE0Li5kYmU1MTljNDI3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC03
Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2U7IH0KIAogICAgIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkgeyByZXR1cm4g
bV9jb25uZWN0aW9uOyB9Ci0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuc2Vzc2lvbklEOyB9CiAgICAg
UmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXI7IH0KICAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1
cm4gbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQ7IH0KICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25z
dCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViUGFnZUlEOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDQ5ODAwNWVkMWM5Li42Nzk0
ZDAwZGZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1SZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9uOjpj
cmVhdGUoU2Vzc2lvbklEIHNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBj
dXN0b21Qcm90b2NvbE1hbmFnZXIpCitSZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9u
OjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2NvbE1h
bmFnZXIqIGN1c3RvbVByb3RvY29sTWFuYWdlcikKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICByZXR1cm4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKHNlc3Npb25JRCwgY3VzdG9tUHJv
dG9jb2xNYW5hZ2VyKTsKQEAgLTYyLDcgKzYyLDcgQEAgTmV0d29ya1Nlc3Npb24mIE5ldHdvcmtT
ZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbigpCiAgICAgcmV0dXJuIE5ldHdvcmtTZXNzaW9uQ29jb2E6
OmRlZmF1bHRTZXNzaW9uKCk7CiAjZWxzZQogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
Ci0gICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uID0gJk5ldHdvcmtTZXNzaW9uOjpj
cmVhdGUoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpLmxlYWtSZWYoKTsKKyAgICBzdGF0
aWMgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24gPSAmTmV0d29ya1Nlc3Npb246OmNyZWF0ZShQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKS5sZWFrUmVmKCk7CiAgICAgcmV0dXJuICpz
ZXNzaW9uOwogI2VuZGlmCiB9CkBAIC03NCw3ICs3NCw3IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYgTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiAgICAgcmV0
dXJuICpzdG9yYWdlU2Vzc2lvbjsKIH0KIAotTmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9u
KFNlc3Npb25JRCBzZXNzaW9uSUQpCitOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4
IGFjMjMwOTE0M2I3Li41YTNmZTZjZTMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgVVNFKE5FVFdP
UktfU0VTU0lPTikKIAotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQzLDIz
ICs0MywyMyBAQCBjbGFzcyBOZXR3b3JrRGF0YVRhc2s7CiAKIGNsYXNzIE5ldHdvcmtTZXNzaW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Nlc3Npb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklELCBMZWdhY3lD
dXN0b21Qcm90b2NvbE1hbmFnZXIqID0gbnVsbHB0cik7CisgICAgc3RhdGljIFJlZjxOZXR3b3Jr
U2Vzc2lvbj4gY3JlYXRlKFBBTDo6U2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXIqID0gbnVsbHB0cik7CiAgICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uJiBkZWZhdWx0U2Vzc2lv
bigpOwogICAgIHZpcnR1YWwgfk5ldHdvcmtTZXNzaW9uKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUFuZENhbmNlbCgpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckNyZWRlbnRpYWxz
KCkgeyB9OwogCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0OwogCiAgICAgdm9pZCByZWdpc3Rlck5l
dHdvcmtEYXRhVGFzayhOZXR3b3JrRGF0YVRhc2smIHRhc2spIHsgbV9kYXRhVGFza1NldC5hZGQo
JnRhc2spOyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtEYXRh
VGFzayYgdGFzaykgeyBtX2RhdGFUYXNrU2V0LnJlbW92ZSgmdGFzayk7IH0KIAogcHJvdGVjdGVk
OgotICAgIE5ldHdvcmtTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgTmV0d29ya1Nl
c3Npb24oUEFMOjpTZXNzaW9uSUQpOwogCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lv
bklEOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogCiAgICAgSGFzaFNldDxOZXR3
b3JrRGF0YVRhc2sqPiBtX2RhdGFUYXNrU2V0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uY3BwCmluZGV4IDMzMTcwZGE4M2Yy
Li5jMTE2MDgzMWMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTb2NrZXRTdHJlYW0uY3BwCkBAIC0zNSwxMiArMzUsMTIgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8TmV0d29ya1NvY2tldFN0
cmVhbT4gTmV0d29ya1NvY2tldFN0cmVhbTo6Y3JlYXRlKFdlYkNvcmU6OlVSTCYmIHVybCwgV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0
aW9uLCB1aW50NjRfdCBpZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNv
dXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSkKK1JlZjxOZXR3b3JrU29ja2V0
U3RyZWFtPiBOZXR3b3JrU29ja2V0U3RyZWFtOjpjcmVhdGUoV2ViQ29yZTo6VVJMJiYgdXJsLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlv
biwgdWludDY0X3QgaWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTb3Vy
Y2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTmV0d29ya1NvY2tldFN0cmVhbShXVEZNb3ZlKHVybCksIHNlc3Npb25JRCwgY3Jl
ZGVudGlhbFBhcnRpdGlvbiwgaWRlbnRpZmllciwgY29ubmVjdGlvbiwgV1RGTW92ZShhdWRpdERh
dGEpKSk7CiB9CiAKLU5ldHdvcmtTb2NrZXRTdHJlYW06Ok5ldHdvcmtTb2NrZXRTdHJlYW0oVVJM
JiYgdXJsLCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0
aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhKQorTmV0d29ya1NvY2tldFN0
cmVhbTo6TmV0d29ya1NvY2tldFN0cmVhbShVUkwmJiB1cmwsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlm
aWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRU
b2tlbiYmIGF1ZGl0RGF0YSkKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwg
bV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX2ltcGwoU29ja2V0U3RyZWFtSGFuZGxl
SW1wbDo6Y3JlYXRlKHVybCwgKnRoaXMsIHNlc3Npb25JRCwgY3JlZGVudGlhbFBhcnRpdGlvbiwg
V1RGTW92ZShhdWRpdERhdGEpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU29ja2V0U3RyZWFtLmgKaW5kZXggN2RjM2QwY2UzZTkuLmU0NjUwNzNiYzkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJl
YW0uaApAQCAtMjcsOSArMjcsOSBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRp
Zmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwpA
QCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1NvY2tl
dFN0cmVhbSA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtTb2NrZXRTdHJlYW0+LCBwdWJsaWMg
SVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBX
ZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8TmV0d29ya1NvY2tldFN0cmVhbT4gY3JlYXRlKFdlYkNvcmU6OlVSTCYmLCBXZWJDb3JlOjpT
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgdWludDY0X3QsIElQ
Qzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmKTsK
KyAgICBzdGF0aWMgUmVmPE5ldHdvcmtTb2NrZXRTdHJlYW0+IGNyZWF0ZShXZWJDb3JlOjpVUkwm
JiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgdWlu
dDY0X3QsIElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNvdXJjZUFwcGxpY2F0aW9uQXVkaXRU
b2tlbiYmKTsKICAgICB+TmV0d29ya1NvY2tldFN0cmVhbSgpOwogCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKQEAgLTY2LDcgKzY2
LDcgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkgZmluYWw7CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBm
aW5hbDsKIAotICAgIE5ldHdvcmtTb2NrZXRTdHJlYW0oV2ViQ29yZTo6VVJMJiYsIFdlYkNvcmU6
OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCB1aW50NjRfdCwg
SVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYp
OworICAgIE5ldHdvcmtTb2NrZXRTdHJlYW0oV2ViQ29yZTo6VVJMJiYsIFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90LCBJUEM6OkNvbm5l
Y3Rpb24mLCBXZWJDb3JlOjpTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CiAKICAgICB1
aW50NjRfdCBtX2lkZW50aWZpZXI7CiAgICAgSVBDOjpDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0LmgKaW5kZXggYWIzZWZiYjQyMTcuLjJlNGU3Yzk1MjEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5o
CkBAIC0yOCw3ICsyOCw3IEBACiAjZGVmaW5lIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0X2gKIAog
I2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzYsNyArMzYsNyBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnM7CiAKIGNsYXNzIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0IGZpbmFsIDog
cHVibGljIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQor
ICAgIHN0YXRpYyBSZWY8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0KHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkpOwogICAgIH0KQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsgfQogCiBwcml2
YXRlOgotICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAg
ICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICAgICAgOiBtX3Nl
c3Npb25JRChzZXNzaW9uSUQpCiAgICAgICAgICwgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0KHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qp
CiAgICAgewpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0
IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7
CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgYm9vbCBtX3Nob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3BlY3VsYXRpdmVMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAppbmRleCBlMzc1N2M5MTkxMC4uOGQ2ZWQw
NGYxMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTMyLDcgKzMy
LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZC5o
IgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCkBAIC01Miw3ICs1
Miw3IEBAIFNwZWN1bGF0aXZlTG9hZDo6U3BlY3VsYXRpdmVMb2FkKENhY2hlJiBjYWNoZSwgY29u
c3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgY29uCiAgICAgQVNTRVJUKCFtX2NhY2hlRW50cnkg
fHwgbV9jYWNoZUVudHJ5LT5uZWVkc1ZhbGlkYXRpb24oKSk7CiAKICAgICBOZXR3b3JrTG9hZFBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKLSAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBwYXJhbWV0ZXJzLmFsbG93U3RvcmVk
Q3JlZGVudGlhbHMgPSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwogICAgIHBhcmFtZXRlcnMuY29u
dGVudFNuaWZmaW5nUG9saWN5ID0gRG9Ob3RTbmlmZkNvbnRlbnQ7CiAgICAgcGFyYW1ldGVycy5y
ZXF1ZXN0ID0gbV9vcmlnaW5hbFJlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCmluZGV4IDM1MTY0MTJj
MDQ4Li40OTAwMWU2MDVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hIGZpbmFsIDogcHVibGlj
IE5ldHdvcmtTZXNzaW9uIHsKICAgICBmcmllbmQgY2xhc3MgTmV0d29ya0RhdGFUYXNrQ29jb2E7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKFdlYkNvcmU6
OlNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKik7CisgICAgc3RhdGljIFJl
ZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKFBBTDo6U2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXIqKTsKICAgICBzdGF0aWMgTmV0d29ya1Nlc3Npb24mIGRlZmF1bHRTZXNzaW9u
KCk7CiAgICAgfk5ldHdvcmtTZXNzaW9uQ29jb2EoKTsKIApAQCAtNjQsNyArNjQsNyBAQCBwdWJs
aWM6CiAgICAgRG93bmxvYWRJRCB0YWtlRG93bmxvYWRJRChOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
VGFza0lkZW50aWZpZXIpOwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtTZXNzaW9uQ29jb2EoV2Vi
Q29yZTo6U2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIqKTsKKyAgICBOZXR3
b3JrU2Vzc2lvbkNvY29hKFBBTDo6U2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXIqKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIG92ZXJyaWRlOwogICAgIHZv
aWQgY2xlYXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDBm
ODVkMDcwYWVjLi44NzU0ODIxNzM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNDU1LDcgKzQ1
NSw3IEBAIHN0YXRpYyBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIqIGxlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlcjsKIHN0YXRpYyBib29sIHNlc3Npb25zQ3JlYXRlZCA9IGZhbHNlOwogI2Vu
ZGlmCiAKLXN0YXRpYyBOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uRm9y
U2Vzc2lvbklEKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgc2Vzc2lvbikKK3N0YXRpYyBOU1VS
TFNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKGNvbnN0IFBB
TDo6U2Vzc2lvbklEJiBzZXNzaW9uKQogewogICAgIGlmIChzZXNzaW9uLmlzRXBoZW1lcmFsKCkp
IHsKICAgICAgICAgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtO
U1VSTFNlc3Npb25Db25maWd1cmF0aW9uIGVwaGVtZXJhbFNlc3Npb25Db25maWd1cmF0aW9uXTsK
QEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnNldENURGF0YUNv
bm5lY3Rpb25TZXJ2aWNlVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB9CiAjZW5kaWYKIAotUmVm
PE5ldHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBjdXN0b21Qcm90
b2NvbE1hbmFnZXIpCitSZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNy
ZWF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ciogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5l
dHdvcmtTZXNzaW9uQ29jb2Eoc2Vzc2lvbklELCBjdXN0b21Qcm90b2NvbE1hbmFnZXIpKTsKIH0K
QEAgLTU0MSwxMSArNTQxLDExIEBAIFJlZjxOZXR3b3JrU2Vzc2lvbj4gTmV0d29ya1Nlc3Npb25D
b2NvYTo6Y3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIExlCiBOZXR3b3JrU2Vz
c2lvbiYgTmV0d29ya1Nlc3Npb25Db2NvYTo6ZGVmYXVsdFNlc3Npb24oKQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9u
ID0gJk5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSwgbGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKS5sZWFrUmVmKCk7Cisg
ICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uID0gJk5ldHdvcmtTZXNzaW9uQ29jb2E6
OmNyZWF0ZShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBsZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXIpLmxlYWtSZWYoKTsKICAgICByZXR1cm4gKnNlc3Npb247CiB9CiAKLU5l
dHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBjdXN0b21Qcm90b2NvbE1h
bmFnZXIpCitOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBjdXN0b21Qcm90
b2NvbE1hbmFnZXIpCiAgICAgOiBOZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpCiB7CiAgICAgcmVs
YXhBZG9wdGlvblJlcXVpcmVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCmluZGV4IGY2YmFlZGFjMTcy
Li5kYzY5Y2M2ZGYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1OZXR3b3JrU2Vzc2lv
blNvdXA6Ok5ldHdvcmtTZXNzaW9uU291cChTZXNzaW9uSUQgc2Vzc2lvbklEKQorTmV0d29ya1Nl
c3Npb25Tb3VwOjpOZXR3b3JrU2Vzc2lvblNvdXAoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIDogTmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKQogewogICAgIG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbigpLnNldENvb2tpZU9ic2VydmVySGFuZGxlcihbdGhpc10gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5oCmluZGV4
IGUwMTk2MDI5YTFhLi5mNThjZDgxMmUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaApAQCAtMzMsNyArMzMsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Nlc3Npb25Tb3VwIGZpbmFsIDog
cHVibGljIE5ldHdvcmtTZXNzaW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtT
ZXNzaW9uPiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBzdGF0aWMg
UmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Nlc3Npb25Tb3VwKHNlc3Np
b25JRCkpOwogICAgIH0KQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIFNvdXBTZXNzaW9u
KiBzb3VwU2Vzc2lvbigpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtTZXNzaW9uU291
cChXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIE5ldHdvcmtTZXNzaW9uU291cChQQUw6OlNlc3Np
b25JRCk7CiAKICAgICB2b2lkIGNsZWFyQ3JlZGVudGlhbHMoKSBvdmVycmlkZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmZTZiZjg5NmRkOC4uYzVm
ZTUwNmE0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAt
MzUyLDYgKzM1Miw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogCiAgICAgc3BlY2lh
bF9jYXNlcyA9IHsKICAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmluZy5oPidd
LAorICAgICAgICAnUEFMOjpTZXNzaW9uSUQnOiBbJzxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncyc6IFsnPFdlYkNvcmUv
QXV0b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyc6
IFsnPFdlYkNvcmUvSlNET01FeGNlcHRpb25IYW5kbGluZy5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6RmlsZUNob29zZXJTZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmlsZUNob29zZXIuaD4nXSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IGE2YTg2MzQ3ZDg3Li5jODEwMmEw
OWY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCkBAIC0yOCw3ICsyOCw3
IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVk
ZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtNzMsOCArNzMsOCBAQCB2b2lkIENoaWxkUHJvY2Vzczo6aW5p
dGlhbGl6ZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFt
ZQogICAgIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMgc2FuZGJveFBhcmFtZXRlcnM7
CiAgICAgaW5pdGlhbGl6ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRlcnMpOwog
Ci0gICAgLy8gSW4gV2ViS2l0Miwgb25seSB0aGUgVUkgcHJvY2VzcyBzaG91bGQgZXZlciBiZSBn
ZW5lcmF0aW5nIG5vbi1kZWZhdWx0IFNlc3Npb25JRHMuCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklE
OjplbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOworICAgIC8vIEluIFdlYktpdDIsIG9ubHkg
dGhlIFVJIHByb2Nlc3Mgc2hvdWxkIGV2ZXIgYmUgZ2VuZXJhdGluZyBub24tZGVmYXVsdCBQQUw6
OlNlc3Npb25JRHMuCisgICAgUEFMOjpTZXNzaW9uSUQ6OmVuYWJsZUdlbmVyYXRpb25Qcm90ZWN0
aW9uKCk7CiAKICAgICBtX2Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVu
dENvbm5lY3Rpb24ocGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOwogICAg
IG1fY29ubmVjdGlvbi0+c2V0RGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxsYmFjayhk
aWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9u
VHJhY2tlci5jcHAKaW5kZXggNDhhZThhNTZhZGQuLmQ3MzgzNTdkN2Y0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCkBAIC01NiwyOSArNTYsMjkgQEAgdm9pZCBTZXNz
aW9uVHJhY2tlcjo6c2V0SWRlbnRpZmllckJhc2UoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQog
fQogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLXN0YXRpYyBIYXNoTWFwPFNlc3Npb25JRCwg
UmVmUHRyPE5ldHdvcmtTZXNzaW9uPj4mIHN0YXRpY1Nlc3Npb25NYXAoKQorc3RhdGljIEhhc2hN
YXA8UEFMOjpTZXNzaW9uSUQsIFJlZlB0cjxOZXR3b3JrU2Vzc2lvbj4+JiBzdGF0aWNTZXNzaW9u
TWFwKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hNYXA8U2Vzc2lvbklELCBSZWZQdHI8TmV0d29ya1Nlc3Npb24+Pj4g
bWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBS
ZWZQdHI8TmV0d29ya1Nlc3Npb24+Pj4gbWFwOwogICAgIHJldHVybiBtYXA7CiB9CiAKLU5ldHdv
cmtTZXNzaW9uKiBTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Np
b25JRCkKK05ldHdvcmtTZXNzaW9uKiBTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIGlmIChzZXNzaW9uSUQgPT0gU2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkpCisgICAgaWYgKHNlc3Npb25JRCA9PSBQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKQogICAgICAgICByZXR1cm4gJk5ldHdvcmtTZXNzaW9uOjpk
ZWZhdWx0U2Vzc2lvbigpOwogICAgIHJldHVybiBzdGF0aWNTZXNzaW9uTWFwKCkuZ2V0KHNlc3Np
b25JRCk7CiB9CiAKLXZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oU2Vzc2lvbklEIHNl
c3Npb25JRCwgUmVmPE5ldHdvcmtTZXNzaW9uPiYmIHNlc3Npb24pCit2b2lkIFNlc3Npb25UcmFj
a2VyOjpzZXRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmVmPE5ldHdvcmtTZXNz
aW9uPiYmIHNlc3Npb24pCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CisgICAgQVNTRVJUKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICBzdGF0aWNTZXNzaW9uTWFwKCkuc2V0KHNlc3Np
b25JRCwgV1RGTW92ZShzZXNzaW9uKSk7CiB9CiAjZW5kaWYKIAotdm9pZCBTZXNzaW9uVHJhY2tl
cjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgU2Vzc2lvblRyYWNr
ZXI6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaAppbmRleCA5ZjdhNmMwNzAwMS4uYmZlMTUwOTdjNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaApAQCAtMzAsNyArMzAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CiB9CiAKLSNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00NiwxMCArNDYs
MTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldElkZW50aWZpZXJCYXNlKGNvbnN0IFN0
cmluZyYpOwogICAgIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgc3RhdGljIHZvaWQg
c2V0U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lvbj4mJik7Ci0g
ICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9u
SUQpOworICAgIHN0YXRpYyB2b2lkIHNldFNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIFJlZjxOZXR3
b3JrU2Vzc2lvbj4mJik7CisgICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lv
bihQQUw6OlNlc3Npb25JRCk7CiAjZW5kaWYKLSAgICBzdGF0aWMgdm9pZCBkZXN0cm95U2Vzc2lv
bihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IGUwZjM1MzY0MTE5Li40NjE3Mzc4ZDU3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjcsNyArMjcsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC00Myw3ICs0Myw3IEBA
IHN0cnVjdCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKLSAgICBXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAg
ICAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBTdHJpbmcgaW5kZXhlZERhdGFi
YXNlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKaW5kZXggOTljMzk1NGRjOTUuLjE0YTgyM2NiYjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTYxLDcgKzYxLDYgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0NvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TY3JvbGxpbmdDb29yZGluYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNoUG9w
dXBNZW51Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9y
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1pbmdGdW5jdGlvbi5oPgpAQCAtNzAsNiArNjksNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5o
PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9N
b25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCmluZGV4IDkyM2FiNzlmYmVmLi4wYzM5MDFiMjkyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ0LDYgKzQ0LDEwIEBAIGNsYXNz
IE1vbm90b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOwogfQogCituYW1lc3BhY2UgUEFMIHsKK2Ns
YXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWZmaW5lVHJh
bnNmb3JtOwogY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CkBAIC03OCw3ICs4Miw2IEBA
IGNsYXNzIFJlZ2lvbjsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgU2Vzc2lvbklEOwogY2xhc3MgU3By
aW5nVGltaW5nRnVuY3Rpb247CiBjbGFzcyBTdGVwc1RpbWluZ0Z1bmN0aW9uOwogY2xhc3MgU3Rp
Y2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDM3NjNjODc1ODUyLi5jOWU1OWE4
NGI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuaApAQCAtNDEsOCArNDEsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQcm9kdWNl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnaW5hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2Nyb2xsVHlwZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgorI2luY2x1ZGUgPHBhbC9p
ZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTg4LDcgKzg4LDcgQEAgc3RydWN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFN0cmluZyB1c2VyQWdlbnQ7CiAKICAgICBWZWN0
b3I8QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlPiBpdGVtU3RhdGVzOwotICAgIFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIHVp
bnQ2NF90IGhpZ2hlc3RVc2VkQmFja0ZvcndhcmRJdGVtSUQ7CiAKICAgICB1aW50NjRfdCB1c2Vy
Q29udGVudENvbnRyb2xsZXJJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA5YzExOGZkM2IxZS4uY2YyMDIzZDNhMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTE1Myw3ICsxNTMs
NyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgSGFzaE1hcDxT
dHJpbmcsIGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zOwogI2VuZGlmCiAKLSAgICBIYXNo
TWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4gcGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaGVzOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hN
YXA8dW5zaWduZWQsIGRvdWJsZT4+IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKICAgICBW
ZWN0b3I8U3RyaW5nPiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5zOwogCiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMuaAppbmRleCBlOTJjMDdmMmMyNy4uZTQwMWE5NjNiYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaApAQCAt
MjcsNyArMjcsNyBAQAogCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ29va2llLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3Ry
dWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHsKICAgICB2b2lkIGVuY29kZShJUEM6OkVu
Y29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmKTsKIAotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIFZlY3Rvcjx1aW50OF90
PiB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CiAgICAgVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4gcGVuZGluZ0Nvb2tpZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvQ29va2llU3RvcmFnZVNoaW0ubW0KaW5kZXggNTI5MTJmYWQzNDguLjM0Mjc0OGRlOGNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCkBAIC0z
MSw5ICszMSw5IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4K
ICNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC01Nyw3ICs1Nyw3IEBA
IHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgd2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVh
ZGVyRmllbGRzRm9yVVJMKENGSFRUUENvCiB7CiAgICAgU3RyaW5nIGNvb2tpZXM7CiAgICAgVVJM
IGZpcnN0UGFydHlGb3JDb29raWVzVVJMOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgZmlyc3RQYXJ0eUZvckNvb2tpZXNVUkws
IGluUmVxdWVzdFVSTCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Q29va2llc0ZvckRPTTo6UmVwbHkoY29va2llcyksIDApKQorICAgIGlmICghV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBmaXJzdFBhcnR5
Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpSZXBseShjb29raWVzKSwgMCkpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgaWYgKGNvb2tpZXMuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCAxZmY3YmU4MWFlOS4uYmQwNDUwMTA1YzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAtNDUsMTIgKzQ1LDEyIEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudD4gV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUoU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorUmVmPFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudD4gV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUo
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KGNvbm5lY3Rpb24s
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXNzaW9uSUQpKTsKIH0KIAotV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoU3RvcmFnZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikK
ICAgICAsIG1faWRlbnRpZmllcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKICAgICAsIG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKaW5k
ZXggZjM0M2UxM2QxZTAuLjg4MzM4MWQ1ZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNp
bmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgSURCQ3Vyc29ySW5mbzsKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLCBwdWJs
aWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudD4gY3JlYXRlKFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiwgdWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgc3RhdGlj
IFJlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IGNyZWF0ZShTdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBQQUw6OlNl
c3Npb25JRCk7CiAKICAgICB2aXJ0dWFsIH5XZWJJREJDb25uZWN0aW9uVG9DbGllbnQoKTsKIApA
QCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIFdlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudChTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudChTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYsIHVp
bnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKICAg
ICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWw7CiAKQEAg
LTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIFJlZjxTdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwotICAg
IFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nl
c3Npb25JRDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9D
bGllbnQ+IG1fY29ubmVjdGlvblRvQ2xpZW50OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAppbmRleCAxY2M3YTZiZDQwZS4uOTk0NmE2
OGVlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nl
c3MuY3BwCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9UZXh0RW5jb2RpbmcuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KIApAQCAtODksNyArODksNyBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rlcgog
fQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi1JREJTZXJ2ZXI6OklEQlNlcnZlciYg
U3RvcmFnZVByb2Nlc3M6OmlkYlNlcnZlcihTZXNzaW9uSUQgc2Vzc2lvbklEKQorSURCU2VydmVy
OjpJREJTZXJ2ZXImIFN0b3JhZ2VQcm9jZXNzOjppZGJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pZGJTZXJ2ZXJzLmFkZChzZXNzaW9u
SUQsIG51bGxwdHIpOwogICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpIHsKQEAgLTk4LDgg
Kzk4LDggQEAgSURCU2VydmVyOjpJREJTZXJ2ZXImIFN0b3JhZ2VQcm9jZXNzOjppZGJTZXJ2ZXIo
U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICB9CiAKICAgICBhdXRvIHBhdGggPSBtX2lkYkRhdGFi
YXNlUGF0aHMuZ2V0KHNlc3Npb25JRCk7Ci0gICAgLy8gVGhlcmUgc2hvdWxkIGFscmVhZHkgYmUg
YSByZWdpc3RlcmVkIHBhdGggZm9yIHRoaXMgU2Vzc2lvbklELgotICAgIC8vIElmIHRoZXJlJ3Mg
bm90LCB0aGVuIHdoZXJlIGRpZCB0aGlzIFNlc3Npb25JRCBjb21lIGZyb20/CisgICAgLy8gVGhl
cmUgc2hvdWxkIGFscmVhZHkgYmUgYSByZWdpc3RlcmVkIHBhdGggZm9yIHRoaXMgUEFMOjpTZXNz
aW9uSUQuCisgICAgLy8gSWYgdGhlcmUncyBub3QsIHRoZW4gd2hlcmUgZGlkIHRoaXMgUEFMOjpT
ZXNzaW9uSUQgY29tZSBmcm9tPwogICAgIEFTU0VSVCghcGF0aC5pc0VtcHR5KCkpOwogCiAgICAg
YWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IElEQlNlcnZlcjo6SURCU2VydmVyOjpjcmVhdGUo
cGF0aCwgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpKTsKQEAgLTE4MSw3ICsxODEsNyBAQCB2
b2lkIFN0b3JhZ2VQcm9jZXNzOjpjcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigp
CiAjZW5kaWYKIH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBTdG9yYWdlUHJvY2Vzczo6ZmV0Y2hXZWJz
aXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBj
YWxsYmFja0lEXShjb25zdCBXZWJzaXRlRGF0YSYgd2Vic2l0ZURhdGEpIHsKQEAgLTIwOSw3ICsy
MDksNyBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YQogI2VuZGlmCiB9CiAKLXZvaWQgU3RvcmFn
ZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJh
Y2tJRCkKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1
aW50NjRfdCBjYWxsYmFja0lEKQogewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAg
IGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgY2FsbGJhY2tJRF0oKSB7CkBAIC0yMjUs
NyArMjI1LDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFcKICNlbmRpZgogfQogCi12b2lkIFN0
b3JhZ2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIHNlY3VyaXR5T3JpZ2luRGF0YXMs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5E
YXRhPiYgc2VjdXJpdHlPcmlnaW5EYXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3Ro
aXMsIGNhbGxiYWNrSURdKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9y
YWdlUHJvY2Vzcy5oCmluZGV4IDNiYzcyZTIwNmEyLi5iOGM3Zjc3NjQ1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaApAQCAtMjksOCArMjksOCBA
QAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lEQkJh
Y2tpbmdTdG9yZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCU2VydmVyLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VuaXF1ZUlEQkRhdGFiYXNl
Lmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3Rm
L0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCkBAIC01Niw3
ICs1Niw3IEBAIHB1YmxpYzoKICAgICB+U3RvcmFnZVByb2Nlc3MoKTsKIAogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQotICAgIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyJiBpZGJT
ZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNl
cnZlciYgaWRiU2VydmVyKFBBTDo6U2Vzc2lvbklEKTsKICNlbmRpZgogCiAgICAgV29ya1F1ZXVl
JiBxdWV1ZSgpIHsgcmV0dXJuIG1fcXVldWUuZ2V0KCk7IH0KQEAgLTkyLDkgKzkyLDkgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKGNvbnN0IFN0b3JhZ2VQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBjcmVhdGVTdG9yYWdlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbigpOwogCi0gICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6
OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
dWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJDb3Jl
OjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMs
IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMo
V2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0
YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lu
cywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6
OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgdWludDY0
X3QgY2FsbGJhY2tJRCk7CiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKICAgICB2b2lk
IGdyYW50U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9icyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0
aHMsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Jik7CiAgICAgdm9pZCBkaWRH
ZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyh1aW50NjRfdCByZXF1ZXN0SUQsIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiYpOwpAQCAtMTEzLDggKzExMyw4IEBAIHByaXZhdGU6
CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBTdHJpbmc+IG1faWRiRGF0YWJh
c2VQYXRoczsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgUmVmUHRyPFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCU2VydmVyPj4gbV9pZGJTZXJ2ZXJzOworICAgIEhhc2hNYXA8UEFMOjpT
ZXNzaW9uSUQsIFN0cmluZz4gbV9pZGJEYXRhYmFzZVBhdGhzOworICAgIEhhc2hNYXA8UEFMOjpT
ZXNzaW9uSUQsIFJlZlB0cjxXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcj4+IG1faWRiU2Vy
dmVyczsKICNlbmRpZgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U2FuZGJveEV4dGVuc2lv
bj4+IG1fYmxvYlRlbXBvcmFyeUZpbGVTYW5kYm94RXh0ZW5zaW9uczsKICAgICBIYXNoTWFwPHVp
bnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5
JiYpPj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yQmxvYnNDb21wbGV0aW9uSGFuZGxlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNz
YWdlcy5pbgppbmRleCA0YmRlYzczZTY0Zi4uYzlkZWFkZjI3YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtMjcsOSArMjcsOSBAQCBtZXNzYWdlcyAtPiBTdG9yYWdlUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEg
V2ViUHJvY2VzcwogICAgIENyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKIAot
ICAgIEZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBj
YWxsYmFja0lEKQotICAgIERlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1
aW50NjRfdCBjYWxsYmFja0lEKQotICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5
cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+
IG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRmV0Y2hXZWJzaXRlRGF0YShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4g
d2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBEZWxldGVXZWJzaXRl
RGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGlt
ZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIERlbGV0ZVdl
YnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucywgdWludDY0X3QgY2FsbGJhY2tJRCkKICNpZiBF
TkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQogICAgIEdyYW50U2FuZGJveEV4dGVuc2lvbnNGb3JC
bG9icyhWZWN0b3I8U3RyaW5nPiBwYXRocywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGVBcnJheSBleHRlbnNpb25zKQogICAgIERpZEdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZp
bGVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVB
cnJheSBleHRlbnNpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA0YWNjMjY0
MDQ0Zi4uZGU5MTkxMWVlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xMDUs
NyArMTA1LDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlQ29ubmVjdGlvblRvU2VydmVySWRl
bnRpZmllcigpCiAgICAgcmV0dXJuICsraWRlbnRpZmllcjsKIH0KIAotdm9pZCBTdG9yYWdlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90JiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcikKK3ZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNv
bm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90JiBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciA9IGdlbmVyYXRlQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcigpOwogICAgIExPRyhJbmRl
eGVkREIsICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoSURCQ29ubmVj
dGlvblRvU2VydmVyIC0gJSIgUFJJdTY0LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMTJmZmU5NWQ4MjIuLjViZTk4MzJjZjBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUv
U2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01OSw3ICs1OSw3
IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAvLyBNZXNz
YWdlcyBoYW5kbGVycyAoTW9kZXJuIElEQikKLSAgICB2b2lkIGVzdGFibGlzaElEQkNvbm5lY3Rp
b25Ub1NlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQsIHVpbnQ2NF90JiBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcik7CisgICAgdm9pZCBlc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFM
OjpTZXNzaW9uSUQsIHVpbnQ2NF90JiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAg
dm9pZCByZW1vdmVJREJDb25uZWN0aW9uVG9TZXJ2ZXIodWludDY0X3Qgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudD4+IG1fd2ViSURCQ29ubmVjdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA1ODc2MTIwMjA1ZS4uOGQxMDhmNjQ1MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMs
NyBAQAogbWVzc2FnZXMgLT4gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVj
ZWl2ZXIgewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgICMgQ3JlYXRlcyBhIGNv
bm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MKLSAgICBFc3RhYmxp
c2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIEVzdGFibGlzaElEQkNv
bm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKICAgICBSZW1vdmVJREJDb25uZWN0aW9uVG9TZXJ2
ZXIodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3Bw
CmluZGV4IGYwM2E0ZTlmYTQwLi4yZmUzZmE2ZmIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0xNTAsMTcgKzE1
MCwxNyBAQCB2b2lkIFBhZ2VDb25maWd1cmF0aW9uOjpzZXRXZWJzaXRlRGF0YVN0b3JlKEFQSTo6
V2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdAogICAgIGlmIChtX3dlYnNpdGVEYXRhU3Rv
cmUpCiAgICAgICAgIG1fc2Vzc2lvbklEID0gbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0
YVN0b3JlKCkuc2Vzc2lvbklEKCk7CiAgICAgZWxzZQotICAgICAgICBtX3Nlc3Npb25JRCA9IFdl
YkNvcmU6OlNlc3Npb25JRCgpOworICAgICAgICBtX3Nlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklE
KCk7CiB9CiAKLVdlYkNvcmU6OlNlc3Npb25JRCBQYWdlQ29uZmlndXJhdGlvbjo6c2Vzc2lvbklE
KCkKK1BBTDo6U2Vzc2lvbklEIFBhZ2VDb25maWd1cmF0aW9uOjpzZXNzaW9uSUQoKQogewotICAg
IEFTU0VSVCghbV93ZWJzaXRlRGF0YVN0b3JlIHx8IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0
ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpID09IG1fc2Vzc2lvbklEIHx8IG1fc2Vzc2lvbklEID09
IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAgICBBU1NFUlQoIW1fd2Vi
c2l0ZURhdGFTdG9yZSB8fCBtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5z
ZXNzaW9uSUQoKSA9PSBtX3Nlc3Npb25JRCB8fCBtX3Nlc3Npb25JRCA9PSBQQUw6OlNlc3Npb25J
RDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKIAogICAgIHJldHVybiBtX3Nlc3Npb25JRDsK
IH0KIAotdm9pZCBQYWdlQ29uZmlndXJhdGlvbjo6c2V0U2Vzc2lvbklEKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCit2b2lkIFBhZ2VDb25maWd1cmF0aW9uOjpzZXRTZXNzaW9uSUQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaAppbmRleCBiMmFlMjQ3MmRlMy4uMjNjMDExZTQ0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCkBAIC0yOCw3ICsyOCw3
IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0
b3JlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRl
bnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KIApAQCAtODEsOCArODEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRX
ZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUqKTsKIAogICAgIC8vIEZJWE1FOiBPbmNl
IFBhZ2VDb25maWd1cmF0aW9ucyAqYWx3YXlzKiBoYXZlIGEgZGF0YSBzdG9yZSwgZ2V0IHJpZCBv
ZiB0aGUgc2VwYXJhdGUgc2Vzc2lvbklELgotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQoKTsKLSAgICB2b2lkIHNldFNlc3Npb25JRChXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpOworICAgIHZvaWQgc2V0U2Vzc2lvbklEKFBBTDo6U2Vz
c2lvbklEKTsKIAogICAgIGJvb2wgdHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1
cmUoKSB7IHJldHVybiBtX3RyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlOyB9
CiAgICAgdm9pZCBzZXRUcmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZShib29s
IHRyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlKSB7IG1fdHJlYXRzU0hBMVNp
Z25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmUgPSB0cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVz
QXNJbnNlY3VyZTsgfSAKQEAgLTExOSw3ICsxMTksNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxX
ZWJzaXRlRGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CiAgICAgLy8gRklYTUU6IFdlIGN1
cnJlbnRseSBoYXZlIHRvIHBhc3MgdGhlIHNlc3Npb24gSUQgc2VwYXJhdGVseSBoZXJlIHRvIHN1
cHBvcnQgdGhlIGxlZ2FjeSBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24uCiAgICAgLy8gT25jZSB3
ZSBnZXQgcmlkIG9mIGl0IHdlIHNob3VsZCBnZXQgcmlkIG9mIHRoaXMgY29uZmlndXJhdGlvbiBw
YXJhbWV0ZXIgYXMgd2VsbC4KLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Cisg
ICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAKICAgICBib29sIG1fdHJlYXRzU0hBMVNp
Z25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmUgPSB0cnVlOwogI2lmIFBMQVRGT1JNKElPUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNw
cAppbmRleCAwZGI1ZGQ5MmM1NC4uNTBmYTYwYmVmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTM1LDcgKzM1LDcg
QEAgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3Rv
cmUoKQogewogICAgIFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsKIAotICAgIHN0YXRpYyBX
ZWJzaXRlRGF0YVN0b3JlKiBkZWZhdWx0RGF0YVN0b3JlID0gYWRvcHRSZWYobmV3IFdlYnNpdGVE
YXRhU3RvcmUoZGVmYXVsdERhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKSwgV2ViQ29yZTo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpKS5sZWFrUmVmKCk7CisgICAgc3RhdGljIFdlYnNpdGVE
YXRhU3RvcmUqIGRlZmF1bHREYXRhU3RvcmUgPSBhZG9wdFJlZihuZXcgV2Vic2l0ZURhdGFTdG9y
ZShkZWZhdWx0RGF0YVN0b3JlQ29uZmlndXJhdGlvbigpLCBQQUw6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKSkubGVha1JlZigpOwogCiAgICAgcmV0dXJuICpkZWZhdWx0RGF0YVN0b3Jl
OwogfQpAQCAtNDcsNyArNDcsNyBAQCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURhdGFT
dG9yZTo6Y3JlYXRlTm9uUGVyc2lzdGVudERhdGFTdG9yZSgpCiAKIFJlZjxXZWJzaXRlRGF0YVN0
b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVMZWdhY3koV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2Vic2l0ZURhdGFTdG9yZShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBXZWJDb3JlOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYnNpdGVEYXRhU3RvcmUoV1RGTW92ZShjb25maWd1cmF0aW9uKSwgUEFMOjpTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSkpOwogfQogCiBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0
YVN0b3JlKCkKQEAgLTU1LDcgKzU1LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFT
dG9yZSgpCiB7CiB9CiAKLVdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24sIFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCitXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3Jl
KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3dlYnNpdGVEYXRhU3RvcmUoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUoV1RGTW92ZShjb25maWd1cmF0aW9uKSwgc2Vzc2lv
bklEKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElX
ZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0
ZURhdGFTdG9yZS5oCmluZGV4IDIzOGM2YzRkN2I0Li40NGIxZDNkZThmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0yOCw3
ICsyOCw3IEBACiAKICNpbmNsdWRlICJBUElIVFRQQ29va2llU3RvcmUuaCIKICNpbmNsdWRlICJX
ZWJzaXRlRGF0YVN0b3JlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNyZWF0ZU5vblBlcnNpc3RlbnREYXRhU3Rv
cmUoKTsKICAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNyZWF0ZUxlZ2FjeShXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRpb24pOwogCi0gICAgZXhwbGljaXQgV2Vi
c2l0ZURhdGFTdG9yZShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRpb24sIFdl
YkNvcmU6OlNlc3Npb25JRCk7CisgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZShXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2
aXJ0dWFsIH5XZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICBib29sIGlzUGVyc2lzdGVudCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAK
aW5kZXggMTkwZjU1MWM5YWEuLmFhNjJmMjZjN2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAKQEAgLTQ0LDE3ICs0NCwxNyBAQCB2
b2lkIFdLQ29va2llTWFuYWdlclNldENsaWVudChXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFu
YWdlclJlZiwgY29uc3QgV0tDb29raQogCiB2b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3RuYW1l
c1dpdGhDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCB2b2lkKiBj
b250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBjYWxsYmFj
aykKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmdldEhvc3RuYW1lc1dpdGhDb29r
aWVzKFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWNDYWxs
YmFja0Z1bmN0aW9uKGNvbnRleHQsIGNhbGxiYWNrKSk7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFn
ZXJSZWYpLT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRleHQsIGNhbGxiYWNrKSk7
CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29v
a2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBXS1N0cmluZ1JlZiBob3N0bmFtZSkKIHsK
LSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShX
ZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9JbXBsKGhvc3RuYW1lKS0+
c3RyaW5nKCkpOworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+ZGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvSW1wbChob3N0
bmFtZSktPnN0cmluZygpKTsKIH0KIAogdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29r
aWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmKQogewotICAgIHRvSW1wbChj
b29raWVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsQ29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVB
bGxDb29raWVzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCiB2b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZiwgZG91YmxlIGRhdGUpCkBAIC02MiwxNyArNjIs
MTcgQEAgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzTW9kaWZpZWRBZnRlckRh
dGUoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU0KICAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOjpj
aHJvbm87CiAKICAgICBhdXRvIHRpbWUgPSBzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQoZHVyYXRp
b25fY2FzdDxzeXN0ZW1fY2xvY2s6OmR1cmF0aW9uPihkdXJhdGlvbjxkb3VibGU+KGRhdGUpKSk7
Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVBbGxDb29raWVzTW9kaWZpZWRT
aW5jZShXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdGltZSwgW10oQ2Fs
bGJhY2tCYXNlOjpFcnJvcil7fSk7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxl
dGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpLCB0aW1lLCBbXShDYWxsYmFja0Jhc2U6OkVycm9yKXt9KTsKIH0KIAogdm9pZCBXS0Nvb2tp
ZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyLCBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewotICAgIHRvSW1w
bChjb29raWVNYW5hZ2VyKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGlj
eSksIFtdKENhbGxiYWNrQmFzZTo6RXJyb3Ipe30pOworICAgIHRvSW1wbChjb29raWVNYW5hZ2Vy
KS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW10oQ2FsbGJhY2tCYXNl
OjpFcnJvcil7fSk7CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgdm9pZCogY29udGV4dCwg
V0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNr
KQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9HZW5lcmljQ2FsbGJh
Y2tGdW5jdGlvbjxXS0hUVFBDb29raWVBY2NlcHRQb2xpY3ksIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k+KGNvbnRleHQsIGNhbGxiYWNrKSk7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5nZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCks
IHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb248V0tIVFRQQ29va2llQWNjZXB0UG9saWN5LCBIVFRQ
Q29va2llQWNjZXB0UG9saWN5Pihjb250ZXh0LCBjYWxsYmFjaykpOwogfQogCiB2b2lkIFdLQ29v
a2llTWFuYWdlclNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKFdLQ29va2llTWFu
YWdlclJlZiBjb29raWVNYW5hZ2VyLCBib29sIGVuYWJsZWQpCkBAIC04MiwxMCArODIsMTAgQEAg
dm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZChX
S0Nvb2tpZU1hbmFnZXJSZWYgY29va2kKIAogdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCiB7Ci0g
ICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV2Vi
Q29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIHRvSW1wbChjb29raWVN
YW5hZ2VyKS0+c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpOwogfQogCiB2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKQogewotICAgIHRv
SW1wbChjb29raWVNYW5hZ2VyKS0+c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIHRvSW1wbChjb29raWVNYW5hZ2Vy
KS0+c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tCmluZGV4IDRkZDhhMGQ1NTRjLi4xZjU5NzRkZjU3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAg
LTIwMCw3ICsyMDAsNyBAQCBzdGF0aWMgV2ViS2l0OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHRv
SFRUUENvb2tpZUFjY2VwdFBvbGljeShOU0hUVFBDb29raWVBY2NlcAogCiAtICh2b2lkKV9zZXRD
b29raWVBY2NlcHRQb2xpY3k6KE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3kKIHsKLSAg
ICBfcHJvY2Vzc1Bvb2wtPnN1cHBsZW1lbnQ8V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk+
KCktPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCksIHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbXShXZWJLaXQ6
OkNhbGxiYWNrQmFzZTo6RXJyb3Ipe30pOworICAgIF9wcm9jZXNzUG9vbC0+c3VwcGxlbWVudDxX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kocG9saWN5KSwgW10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKXt9KTsKIH0KIAog
LSAoaWQpX29iamVjdEZvckJ1bmRsZVBhcmFtZXRlcjooTlNTdHJpbmcgKilwYXJhbWV0ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCmluZGV4IDQxYjE4ZDA2MTJjLi44YzEyMTJiZTQ5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
CkBAIC0xOTAsNyArMTkwLDcgQEAgc3RhdGljIFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVEYXRhUmVj
b3JkPiB0b1dlYnNpdGVEYXRhUmVjb3JkcyhOU0FycmF5ICpkYXRhUmVjb3IKICAgICBpZiAoY29u
ZmlndXJhdGlvbi5fY29va2llU3RvcmFnZUZpbGUpCiAgICAgICAgIGNvbmZpZy5jb29raWVTdG9y
YWdlRmlsZSA9IGNvbmZpZ3VyYXRpb24uX2Nvb2tpZVN0b3JhZ2VGaWxlLnBhdGg7CiAKLSAgICBB
UEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6V2Vic2l0ZURhdGFTdG9yZT4oc2Vs
ZiwgY29uZmlnLCBXZWJDb3JlOjpTZXNzaW9uSUQ6OmdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25J
RCgpKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6V2Vic2l0ZURh
dGFTdG9yZT4oc2VsZiwgY29uZmlnLCBQQUw6OlNlc3Npb25JRDo6Z2VuZXJhdGVQZXJzaXN0ZW50
U2Vzc2lvbklEKCkpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwCmluZGV4
IGQ3ZWFjODRjNzU0Li4yZWY1NDJlZGEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTI3LDcgKzI3
LDcgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFS
ZWNvcmQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9p
ZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KQEAgLTE4MCw3ICsxODAsNyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNj
ZXB0X3BvbGljeShXZWJLaXRDb29raWVNYW5hZ2VyKiBtYW5hZ2VyLCBXZWJLaQogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0NPT0tJRV9NQU5BR0VSKG1hbmFnZXIpKTsKIAogICAgIGZv
ciAoYXV0byogcHJvY2Vzc1Bvb2wgOiB3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJHZXRQcm9jZXNz
UG9vbHMobWFuYWdlci0+cHJpdi0+ZGF0YU1hbmFnZXIpKQotICAgICAgICBwcm9jZXNzUG9vbC0+
c3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPnNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvSFRUUENvb2tp
ZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbXShDYWxsYmFja0Jhc2U6OkVycm9yKXt9KTsKKyAgICAg
ICAgcHJvY2Vzc1Bvb2wtPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5zZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCks
IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbXShDYWxsYmFja0Jhc2U6OkVycm9y
KXt9KTsKIH0KIAogLyoqCkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCB3ZWJraXRfY29va2llX21h
bmFnZXJfZ2V0X2FjY2VwdF9wb2xpY3koV2ViS2l0Q29va2llTWFuYWdlciogbWFuYWdlciwgR0Nh
bmMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHByb2Nlc3NQb29sc1swXS0+c3VwcGxl
bWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
V2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFt0YXNrID0gV1RGTW92ZSh0
YXNrKV0oSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3Ip
IHsKKyAgICBwcm9jZXNzUG9vbHNbMF0tPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5
PigpLT5nZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCksIFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oSFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpIHsKICAgICAgICAgZ190YXNrX3JldHVybl9pbnQo
dGFzay5nZXQoKSwgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSk7CiAgICAgfSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjZjM5NmY0YjEwZi4uOTFiYTlhMDY2MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIERvd25sb2FkUHJveHkqIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByCiAgICAg
cmV0dXJuIG1fZG93bmxvYWRQcm94eU1hcC0+Y3JlYXRlRG93bmxvYWRQcm94eShtX3Byb2Nlc3NQ
b29sLCByZXNvdXJjZVJlcXVlc3QpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZl
dGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4gZGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hP
cHRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgV1RGOjpGdW5j
dGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKGNhblNlbmRNZXNzYWdlKCkpOwogCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXQKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RmV0Y2hXZWJz
aXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgZmV0Y2hPcHRpb25zLCBjYWxsYmFja0lEKSwg
MCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0
YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2lu
Y2UsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lk
ICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gY2FsbGJhY2tJRCA9IGdlbmVy
YXRlQ2FsbGJhY2tJRCgpOwogICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNz
UHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29y
ayBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwpAQCAtMTQ5LDcgKzE0
OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBtb2RpZmll
ZFNpbmNlLCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0
TmFtZXMsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKaW5kZXggOTIzZGQyYTkwODcuLjQwZWQ2YjA4YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMzUs
NiArMzUsMTAgQEAKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAK
K25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKIGNsYXNzIFByb3RlY3Rpb25TcGFj
ZTsKQEAgLTQyLDcgKzQ2LDYgQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogZW51bSBjbGFzcyBT
aG91bGRTYW1wbGU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdp
bkRhdGE7Ci1jbGFzcyBTZXNzaW9uSUQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjQs
OSArNjcsOSBAQCBwdWJsaWM6CiAKICAgICBEb3dubG9hZFByb3h5KiBjcmVhdGVEb3dubG9hZFBy
b3h5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgdm9pZCBmZXRjaFdl
YnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgV1RGOjpGdW5jdGlvbjx2b2lkKFdl
YnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRl
RGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6
OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIFdURjo6RnVu
Y3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNp
dGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6Oldl
YnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+
JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBmZXRjaFdlYnNp
dGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURh
dGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4s
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcik7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNl
dFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCmlu
ZGV4IDNjMGNhMmQ3MjliLi4yMjI1ZTMzMjU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAKQEAg
LTQyLDggKzQyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBQbHVnSW5BdXRvU3RhcnRQcm92aWRl
cjo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQog
ICAgIDogbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKIHsKLSAgICBtX2hhc2hUb09yaWdpbk1h
cC5hZGQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIFN0
cmluZz4oKSk7Ci0gICAgbV9hdXRvU3RhcnRUYWJsZS5hZGQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCksIEF1dG9TdGFydFRhYmxlKCkpOworICAgIG1faGFzaFRvT3JpZ2luTWFwLmFkZChQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJp
bmc+KCkpOworICAgIG1fYXV0b1N0YXJ0VGFibGUuYWRkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCksIEF1dG9TdGFydFRhYmxlKCkpOwogfQogCiBzdGF0aWMgZG91YmxlIGV4cGly
YXRpb25UaW1lRnJvbU5vdygpCkBAIC01MSwxNCArNTEsMTQgQEAgc3RhdGljIGRvdWJsZSBleHBp
cmF0aW9uVGltZUZyb21Ob3coKQogICAgIHJldHVybiBjdXJyZW50VGltZSgpICsgcGx1Z0luQXV0
b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJlc2hvbGQ7CiB9CiAKLXZvaWQgUGx1Z0luQXV0b1N0YXJ0
UHJvdmlkZXI6OmFkZEF1dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2lu
LCB1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBQ
bHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YWRkQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJp
bmcmIHBhZ2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKICAgICBhdXRvIHNlc3Npb25JdGVyYXRvciA9IG1faGFzaFRvT3JpZ2lu
TWFwLmZpbmQoc2Vzc2lvbklEKTsKICAgICBpZiAoc2Vzc2lvbkl0ZXJhdG9yID09IG1faGFzaFRv
T3JpZ2luTWFwLmVuZCgpKSB7Ci0gICAgICAgIGlmIChtX2hhc2hUb09yaWdpbk1hcC5nZXQoU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpLmNvbnRhaW5zKHBsdWdJbk9yaWdpbkhhc2gpKQor
ICAgICAgICBpZiAobV9oYXNoVG9PcmlnaW5NYXAuZ2V0KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCkpLmNvbnRhaW5zKHBsdWdJbk9yaWdpbkhhc2gpKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBzZXNzaW9uSXRlcmF0b3IgPSBtX2hhc2hUb09yaWdpbk1hcC5zZXQoc2Vz
c2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+KCkpLml0ZXJhdG9yOwotICAgIH0gZWxz
ZSBpZiAoc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5jb250YWlucyhwbHVnSW5PcmlnaW5IYXNoKSB8
fCBtX2hhc2hUb09yaWdpbk1hcC5nZXQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpLmNv
bnRhaW5zKHBsdWdJbk9yaWdpbkhhc2gpKQorICAgIH0gZWxzZSBpZiAoc2Vzc2lvbkl0ZXJhdG9y
LT52YWx1ZS5jb250YWlucyhwbHVnSW5PcmlnaW5IYXNoKSB8fCBtX2hhc2hUb09yaWdpbk1hcC5n
ZXQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkuY29udGFpbnMocGx1Z0luT3Jp
Z2luSGFzaCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEF1dG9TdGFydFRhYmxlOjppdGVyYXRv
ciBpdCA9IG1fYXV0b1N0YXJ0VGFibGUuYWRkKHNlc3Npb25JRCwgQXV0b1N0YXJ0VGFibGUoKSku
aXRlcmF0b3ItPnZhbHVlLmFkZChwYWdlT3JpZ2luLCBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXAo
KSkuaXRlcmF0b3I7CkBAIC05Miw3ICs5Miw3IEBAIFJlZjxBUEk6OkRpY3Rpb25hcnk+IFBsdWdJ
bkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KCkgY29uc3QKICAg
ICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwogCiAgICAgZG91YmxlIG5vdyA9IGN1cnJl
bnRUaW1lKCk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBzdHJpbmdPcmlnaW5IYXNoIDogbV9hdXRv
U3RhcnRUYWJsZS5nZXQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpKSB7CisgICAgZm9y
IChjb25zdCBhdXRvJiBzdHJpbmdPcmlnaW5IYXNoIDogbV9hdXRvU3RhcnRUYWJsZS5nZXQoUEFM
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpIHsKICAgICAgICAgQVBJOjpEaWN0aW9u
YXJ5OjpNYXBUeXBlIGhhc2hNYXA7CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgb3JpZ2luSGFz
aCA6IHN0cmluZ09yaWdpbkhhc2gudmFsdWUpIHsKICAgICAgICAgICAgIGlmIChub3cgPD0gb3Jp
Z2luSGFzaC52YWx1ZSkKQEAgLTEyNyw4ICsxMjcsOCBAQCB2b2lkIFBsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdChBUEk6
OgogICAgIG1faGFzaFRvT3JpZ2luTWFwLmNsZWFyKCk7CiAgICAgbV9hdXRvU3RhcnRUYWJsZS5j
bGVhcigpOwogICAgIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4gaGFzaE1hcDsKLSAgICBIYXNo
TWFwPHVuc2lnbmVkLCBTdHJpbmc+JiBoYXNoVG9PcmlnaW5NYXAgPSBtX2hhc2hUb09yaWdpbk1h
cC5hZGQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIFN0
cmluZz4oKSkuaXRlcmF0b3ItPnZhbHVlOwotICAgIEF1dG9TdGFydFRhYmxlJiBhc3QgPSBtX2F1
dG9TdGFydFRhYmxlLmFkZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgQXV0b1N0YXJ0
VGFibGUoKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz4m
IGhhc2hUb09yaWdpbk1hcCA9IG1faGFzaFRvT3JpZ2luTWFwLmFkZChQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+KCkpLml0ZXJhdG9y
LT52YWx1ZTsKKyAgICBBdXRvU3RhcnRUYWJsZSYgYXN0ID0gbV9hdXRvU3RhcnRUYWJsZS5hZGQo
UEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgQXV0b1N0YXJ0VGFibGUoKSkuaXRl
cmF0b3ItPnZhbHVlOwogCiAgICAgZm9yIChhdXRvJiBzdHJEaWN0IDogdGFibGUubWFwKCkpIHsK
ICAgICAgICAgUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwIGhhc2hlczsKQEAgLTE2NCw5ICsxNjQs
OSBAQCB2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmlnaW5zQXJy
YXkoQVBJOjpBcnJheSYgb3JpZ2luTGlzdCkKICAgICAgICAgbV9hdXRvU3RhcnRPcmlnaW5zLmFw
cGVuZChzdHJpbmctPnN0cmluZygpKTsKIH0KIAotdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRl
cjo6ZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBT
ZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6ZGlkUmVj
ZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hN
YXA8dW5zaWduZWQsIFN0cmluZz4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBt
X2hhc2hUb09yaWdpbk1hcC5maW5kKHNlc3Npb25JRCk7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Np
b25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25J
dGVyYXRvciA9IG1faGFzaFRvT3JpZ2luTWFwLmZpbmQoc2Vzc2lvbklEKTsKICAgICBIYXNoTWFw
PHVuc2lnbmVkLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdDsKICAgICBib29sIGNvbnRhaW5z
ID0gZmFsc2U7CiAgICAgaWYgKHNlc3Npb25JdGVyYXRvciAhPSBtX2hhc2hUb09yaWdpbk1hcC5l
bmQoKSkgewpAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6
OmRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzCiAgICAg
ICAgIGNvbnRhaW5zID0gaXQgIT0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKTsKICAgICB9
CiAgICAgaWYgKCFjb250YWlucykgewotICAgICAgICBzZXNzaW9uSXRlcmF0b3IgPSBtX2hhc2hU
b09yaWdpbk1hcC5maW5kKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICAgICAg
c2Vzc2lvbkl0ZXJhdG9yID0gbV9oYXNoVG9PcmlnaW5NYXAuZmluZChQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICAgICAgaXQgPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVl
LmZpbmQocGx1Z0luT3JpZ2luSGFzaCk7CiAgICAgICAgIGlmIChpdCA9PSBzZXNzaW9uSXRlcmF0
b3ItPnZhbHVlLmVuZCgpKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0
YXJ0UHJvdmlkZXIuaAppbmRleCBjYTFiMDA0MDkyNy4uNDRiODRmN2Y0NDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXJfaAogI2RlZmluZSBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcl9oCiAKLSNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIAogdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBk
b3VibGU+IFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcDsKLXR5cGVkZWYgSGFzaE1hcDxXZWJDb3Jl
OjpTZXNzaW9uSUQsIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcD4gU2Vzc2lvblBsdWdJbkF1dG9T
dGFydE9yaWdpbk1hcDsKK3R5cGVkZWYgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUGx1Z0luQXV0
b1N0YXJ0T3JpZ2luTWFwPiBTZXNzaW9uUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwOwogdHlwZWRl
ZiBWZWN0b3I8U3RyaW5nPiBQbHVnSW5BdXRvU3RhcnRPcmlnaW5zOwogCiBjbGFzcyBQbHVnSW5B
dXRvU3RhcnRQcm92aWRlciB7CkBAIC01Miw4ICs1Miw4IEBAIGNsYXNzIFBsdWdJbkF1dG9TdGFy
dFByb3ZpZGVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQbHVnSW5BdXRvU3RhcnRQcm92aWRl
cihXZWJQcm9jZXNzUG9vbCopOwogCi0gICAgdm9pZCBhZGRBdXRvU3RhcnRPcmlnaW5IYXNoKGNv
bnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgV2ViQ29y
ZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odW5zaWdu
ZWQgcGx1Z0luT3JpZ2luSGFzaCwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGFkZEF1
dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1bnNpZ25lZCBwbHVn
SW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkaWRSZWNlaXZlVXNlcklu
dGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEKTsKIAog
ICAgIFJlZjxBUEk6OkRpY3Rpb25hcnk+IGF1dG9TdGFydE9yaWdpbnNUYWJsZUNvcHkoKSBjb25z
dDsKICAgICB2b2lkIHNldEF1dG9TdGFydE9yaWdpbnNUYWJsZShBUEk6OkRpY3Rpb25hcnkmKTsK
QEAgLTY5LDEwICs2OSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0QXV0b1N0YXJ0T3JpZ2lu
c1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QoQVBJOjpEaWN0aW9uYXJ5JiwgV1RGOjpGdW5jdGlv
bjxib29sKGRvdWJsZSBleHBpcmF0aW9uVGltZXN0YW1wKT4mJik7CiAKICAgICB0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXAsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4gQXV0b1N0YXJ0VGFibGU7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlNl
c3Npb25JRCwgQXV0b1N0YXJ0VGFibGU+IFNlc3Npb25BdXRvU3RhcnRUYWJsZTsKKyAgICB0eXBl
ZGVmIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEF1dG9TdGFydFRhYmxlPiBTZXNzaW9uQXV0b1N0
YXJ0VGFibGU7CiAgICAgU2Vzc2lvbkF1dG9TdGFydFRhYmxlIG1fYXV0b1N0YXJ0VGFibGU7CiAK
LSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5n
Pj4gbV9oYXNoVG9PcmlnaW5NYXA7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1h
cDx1bnNpZ25lZCwgU3RyaW5nPj4gbV9oYXNoVG9PcmlnaW5NYXA7CiAKICAgICBQbHVnSW5BdXRv
U3RhcnRPcmlnaW5zIG1fYXV0b1N0YXJ0T3JpZ2luczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAy
MGQyMGUwZWUzYy4uYTVhYTgxMThjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcApAQCAtODMsNyArODMsNyBA
QCB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZQogICAgIH0KIH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vz
c1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgV1RGOjpGdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0
YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmZldGNo
V2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiBkYXRhVHlwZXMsIFdURjo6RnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKIApAQCAt
OTMsNyArOTMsNyBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEo
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAogICAgIHNlbmQoTWVzc2FnZXM6
OlN0b3JhZ2VQcm9jZXNzOjpGZXRjaFdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBj
YWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vi
c2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50
IG1vZGlmaWVkU2luY2UsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpG
dW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gY2FsbGJh
Y2tJRCA9IGdlbmVyYXRlQ2FsbGJhY2tJRCgpOwogCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBT
dG9yYWdlUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb24KICAgICBzZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6RGVs
ZXRlV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVkU2luY2UsIGNhbGxi
YWNrSUQpLCAwKTsKIH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
PiYgb3JpZ2lucywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBl
cywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChj
YW5TZW5kTWVzc2FnZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuaAppbmRleCA1YzExMDZkMzY4Yi4uYzJkMmViYTYw
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZVByb2Nlc3NQcm94eS5oCkBAIC0zMSw5ICszMSwxMiBAQAogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vz
c2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsK
LWNsYXNzIFNlc3Npb25JRDsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiB9CiAKQEAgLTQ4
LDkgKzUxLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3RvcmFnZVByb2Nlc3NQcm94eT4g
Y3JlYXRlKFdlYlByb2Nlc3NQb29sKik7CiAgICAgflN0b3JhZ2VQcm9jZXNzUHJveHkoKTsKIAot
ICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdl
YkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdURjo6RnVuY3Rpb248dm9pZChXZWJz
aXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogCiAgICAgdm9pZCBnZXRTdG9yYWdlUHJvY2Vz
c0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFN0b3JhZ2VQcm9j
ZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggM2Y2Nzg5NjhjNjUuLmU2
NWM0ZmM5MzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCiAgICAgQVBJOjpPYmplY3Q6OmRlcmVm
KCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIb3N0bmFtZXNXaXRoQ29v
a2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5OjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIEZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBj
YWxsYmFja0Z1bmN0aW9uKQogewogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9O
ZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tp
ZU1hbmFnZXI6OkdldEhvc3RuYW1lc1dpdGhDb29raWVzKHNlc3Npb25JRCwgY2FsbGJhY2tJRCkp
OwpAQCAtMTI0LDQ3ICsxMjQsNDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZEdl
dEhvc3RuYW1lc1dpdGhDb29raWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBob3MKICAgICBjYWxs
YmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEFQSTo6QXJyYXk6OmNyZWF0ZVN0
cmluZ0FycmF5KGhvc3RuYW1lcykucHRyKCkpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFN0cmluZyYgaG9zdG5hbWUpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ29v
a2llc0Zvckhvc3RuYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBo
b3N0bmFtZSkKIHsKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1Jl
bGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUNv
b2tpZXNGb3JIb3N0bmFtZShzZXNzaW9uSUQsIGhvc3RuYW1lKSk7CiB9CiAKLXZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpkZWxldGVBbGxDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2
b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nl
c3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxl
dGVBbGxDb29raWVzKHNlc3Npb25JRCkpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6ZGVsZXRlQ29va2llKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZSYgY29va2ll
LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9u
KQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZSYgY29va2llLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGF1dG8gY2FsbGJhY2tJ
RCA9IG1fY2FsbGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBwcm9j
ZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nhcnko
TWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUNvb2tpZShzZXNzaW9uSUQsIGNvb2tp
ZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRl
QWxsQ29va2llc01vZGlmaWVkU2luY2UoU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCB0aW1lLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCB0aW1lLCBGdW5jdGlvbjx2
b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGF1
dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24p
KTsKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5n
SWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXNN
b2RpZmllZFNpbmNlKHNlc3Npb25JRCwgdGltZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IENvb2tpZSYgY29va2llLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBj
YWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZSYgY29va2llLCBGdW5jdGlvbjx2
b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGF1
dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24p
KTsKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5n
SWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldENvb2tpZShzZXNzaW9u
SUQsIGNvb2tpZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6c2V0Q29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPiYg
Y29va2llcywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMLCBGdW5j
dGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9p
ZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBWZWN0b3I8Q29va2llPiYgY29va2llcywgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFVSTCYgbWFpbkRvY3VtZW50VVJMLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJh
Y2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBwcm9jZXNzUG9vbCgpLT5z
ZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6Oldl
YkNvb2tpZU1hbmFnZXI6OlNldENvb2tpZXMoc2Vzc2lvbklELCBjb29raWVzLCB1cmwsIG1haW5E
b2N1bWVudFVSTCwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6Z2V0QWxsQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkIChjb25z
dCBWZWN0b3I8Q29va2llPiYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rp
b24pCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0QWxsQ29va2llcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxDb29raWU+JiwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxi
YWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAg
cHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNz
YXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRBbGxDb29raWVzKHNlc3Npb25JRCwg
Y2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0Q29va2ll
cyhTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgRnVuY3Rpb248dm9pZCAoY29u
c3QgVmVjdG9yPENvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0
aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9y
PENvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewog
ICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVu
Y3Rpb24pKTsKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1
bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkdldENvb2tpZXMo
c2Vzc2lvbklELCB1cmwsIGNhbGxiYWNrSUQpKTsKQEAgLTE4NSwxOCArMTg1LDE4IEBAIHZvaWQg
V2ViQ29va2llTWFuYWdlclByb3h5OjpkaWREZWxldGVDb29raWVzKFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogICAgIG1fY2FsbGJhY2tzLnRha2U8Vm9pZENhbGxiYWNrPihjYWxsYmFj
a0lEKS0+cGVyZm9ybUNhbGxiYWNrKCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5
OjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQg
V2ViQ29va2llTWFuYWdlclByb3h5OjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtp
bmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
cjo6U3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKHNlc3Npb25JRCkpOwogfQogCi12b2lkIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoU2Vzc2lvbklE
IHNlc3Npb25JRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgcHJvY2Vzc1Bvb2wo
KS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2Vz
OjpXZWJDb29raWVNYW5hZ2VyOjpTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhzZXNzaW9uSUQp
KTsKIH0KIAogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llT2JzZXJ2ZXJD
YWxsYmFjayhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQg
KCk+JiYgY2FsbGJhY2spCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llT2Jz
ZXJ2ZXJDYWxsYmFjayhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248dm9p
ZCAoKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoY2FsbGJhY2spCiAgICAgICAgIG1fbGVnYWN5
Q29va2llT2JzZXJ2ZXJzLnNldChzZXNzaW9uSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKQEAgLTIw
NCw3ICsyMDQsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llT2JzZXJ2
ZXJDYWxsYmFjayhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbgogICAgICAgICBtX2xlZ2FjeUNv
b2tpZU9ic2VydmVycy5yZW1vdmUoc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5h
Z2VyUHJveHk6OnJlZ2lzdGVyT2JzZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T2JzZXJ2ZXImIG9ic2VydmVyKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnJlZ2lzdGVy
T2JzZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7
CiAgICAgYXV0byByZXN1bHQgPSBtX2Nvb2tpZU9ic2VydmVycy5zZXQoc2Vzc2lvbklELCBIYXNo
U2V0PE9ic2VydmVyKj4oKSk7CiAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQoJm9ic2Vy
dmVyKTsKQEAgLTIxMyw3ICsyMTMsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6cmVn
aXN0ZXJPYnNlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnNlcgogICAgICAg
ICBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OnVucmVnaXN0ZXJPYnNlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPYnNlcnZlciYgb2JzZXJ2ZXIpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6dW5yZWdpc3Rlck9ic2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT2JzZXJ2ZXIm
IG9ic2VydmVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX2Nvb2tpZU9ic2VydmVycy5maW5k
KHNlc3Npb25JRCk7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fY29va2llT2JzZXJ2ZXJzLmVuZCgp
KQpAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojp1bnJlZ2lz
dGVyT2JzZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT2JzCiAgICAgc3RvcE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5h
Z2VyUHJveHk6OmNvb2tpZXNEaWRDaGFuZ2UoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5Ojpjb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKIHsKICAgICBtX2NsaWVudC5jb29raWVzRGlkQ2hhbmdlKHRoaXMpOwogICAgIGF1dG8g
bGVnYWN5SXRlcmF0b3IgPSBtX2xlZ2FjeUNvb2tpZU9ic2VydmVycy5maW5kKHNlc3Npb25JRCk7
CkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNvb2tpZXNE
aWRDaGFuZ2UoU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgb2JzZXJ2ZXItPmNvb2tpZXNE
aWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koU2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwg
RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikK
K3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBB
TDo6U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgRnVuY3Rpb248dm9p
ZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBpZiAoIXByb2Nlc3NQb29sKCktPmlzVXNpbmdUZXN0aW5nTmV0d29y
a1Nlc3Npb24oKSkKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcAog
ICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpXZWJD
b29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSwgT3B0aW9uYWxD
YWxsYmFja0lEKGNhbGxiYWNrSUQpKSk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5
OjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoSFRU
UENvb2tpZUFjY2VwdFBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5j
dGlvbikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KFBBTDo6U2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkIChIVFRQQ29va2llQWNjZXB0UG9saWN5
LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGF1dG8g
Y2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsK
ICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZO
ZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkdldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koY2FsbGJhY2tJRCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkuaAppbmRleCAzN2YyNjM3N2RkNS4uNzNkYzRmNDc3OTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC0zMCw3
ICszMCw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29u
dGV4dFN1cHBsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHlDbGllbnQu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlm
aWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKQEAgLTY0LDI3ICs2NCwyNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRp
YWxpemVDbGllbnQoY29uc3QgV0tDb29raWVNYW5hZ2VyQ2xpZW50QmFzZSopOwogICAgIAotICAg
IHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBGdW5jdGlv
bjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwotICAgIHZvaWQg
ZGVsZXRlQ29va2llKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q29va2llJiwg
RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwotICAgIHZvaWQgZGVsZXRl
Q29va2llc0Zvckhvc3RuYW1lKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBob3N0
bmFtZSk7Ci0gICAgdm9pZCBkZWxldGVBbGxDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0g
ICAgdm9pZCBkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShXZWJDb3JlOjpTZXNzaW9uSUQs
IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQsIEZ1bmN0aW9uPHZvaWQgKENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVz
KFBBTDo6U2Vzc2lvbklELCBGdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNl
OjpFcnJvcik+JiYpOworICAgIHZvaWQgZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpDb29raWUmLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4m
Jik7CisgICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgaG9zdG5hbWUpOworICAgIHZvaWQgZGVsZXRlQWxsQ29va2llcyhQQUw6OlNl
c3Npb25JRCk7CisgICAgdm9pZCBkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShQQUw6OlNl
c3Npb25JRCwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCwgRnVuY3Rpb248
dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogCi0gICAgdm9pZCBzZXRDb29raWUoV2Vi
Q29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBGdW5jdGlvbjx2b2lkIChD
YWxsYmFja0Jhc2U6OkVycm9yKT4mJik7Ci0gICAgdm9pZCBzZXRDb29raWVzKFdlYkNvcmU6OlNl
c3Npb25JRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBjb25zdCBXZWJDb3JlOjpV
UkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIG1haW5Eb2N1bWVudFVSTCwgRnVuY3Rpb248dm9pZCAo
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZvaWQgc2V0Q29va2llKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6
OkVycm9yKT4mJik7CisgICAgdm9pZCBzZXRDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgbWFpbkRvY3VtZW50VVJMLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJik7CiAKLSAgICB2b2lkIGdldEFsbENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBG
dW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICB2b2lkIGdldENvb2tpZXMoV2Vi
Q29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBGdW5jdGlvbjx2b2lkIChjb25z
dCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIEZ1
bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgQ2FsbGJhY2tCYXNl
OjpFcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZ2V0Q29va2llcyhQQUw6
OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjb21wbGV0aW9u
SGFuZGxlcik7CiAKLSAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6
U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJik7Ci0gICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdl
YkNvcmU6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoSFRUUENvb2tpZUFjY2VwdFBvbGljeSwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShQQUw6OlNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgRnVuY3Rpb248dm9p
ZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShQQUw6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoSFRUUENvb2tpZUFjY2VwdFBv
bGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogCiAgICAgdm9pZCBzZXRDb29raWVTdG9y
YWdlUGFydGl0aW9uaW5nRW5hYmxlZChib29sKTsKIAotICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBzdG9wT2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgc3RhcnRPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIHN0b3BPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKIAotICAgIHZvaWQgc2V0Q29va2llT2JzZXJ2
ZXJDYWxsYmFjayhXZWJDb3JlOjpTZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJik7
CisgICAgdm9pZCBzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKFBBTDo6U2Vzc2lvbklELCBXVEY6
OkZ1bmN0aW9uPHZvaWQgKCk+JiYpOwogCiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1Ymxp
YzoKQEAgLTkzLDggKzkzLDggQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgbWFuYWdl
ckRlc3Ryb3llZCgpID0gMDsKICAgICB9OwogCi0gICAgdm9pZCByZWdpc3Rlck9ic2VydmVyKFdl
YkNvcmU6OlNlc3Npb25JRCwgT2JzZXJ2ZXImKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJPYnNlcnZl
cihXZWJDb3JlOjpTZXNzaW9uSUQsIE9ic2VydmVyJik7CisgICAgdm9pZCByZWdpc3Rlck9ic2Vy
dmVyKFBBTDo6U2Vzc2lvbklELCBPYnNlcnZlciYpOworICAgIHZvaWQgdW5yZWdpc3Rlck9ic2Vy
dmVyKFBBTDo6U2Vzc2lvbklELCBPYnNlcnZlciYpOwogCiAjaWYgVVNFKFNPVVApCiAgICAgdm9p
ZCBzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShjb25zdCBTdHJpbmcmIHN0b3JhZ2VQYXRoLCB1
aW50MzJfdCBzdG9yYWdlVHlwZSk7CkBAIC0xMTUsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZEdldENvb2tpZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBXZWJLaXQ6
OkNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlQ29va2llcyhXZWJLaXQ6OkNhbGxiYWNr
SUQpOwogCi0gICAgdm9pZCBjb29raWVzRGlkQ2hhbmdlKFdlYkNvcmU6OlNlc3Npb25JRCk7Cisg
ICAgdm9pZCBjb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIC8vIFdlYkNv
bnRleHRTdXBwbGVtZW50CiAgICAgdm9pZCBwcm9jZXNzUG9vbERlc3Ryb3llZCgpIG92ZXJyaWRl
OwpAQCAtMTMzLDggKzEzMyw4IEBAIHByaXZhdGU6CiAKICAgICBDYWxsYmFja01hcCBtX2NhbGxi
YWNrczsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZv
aWQgKCk+PiBtX2xlZ2FjeUNvb2tpZU9ic2VydmVyczsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNl
c3Npb25JRCwgSGFzaFNldDxPYnNlcnZlcio+PiBtX2Nvb2tpZU9ic2VydmVyczsKKyAgICBIYXNo
TWFwPFBBTDo6U2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+PiBtX2xlZ2FjeUNvb2tp
ZU9ic2VydmVyczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoU2V0PE9ic2VydmVy
Kj4+IG1fY29va2llT2JzZXJ2ZXJzOwogCiAgICAgV2ViQ29va2llTWFuYWdlclByb3h5Q2xpZW50
IG1fY2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJD
b29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYTVkNzdiOTYyOTkuLjMzZGY0OTVj
Mzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yOSw1ICsyOSw1IEBAIG1lc3NhZ2VzIC0+IFdl
YkNvb2tpZU1hbmFnZXJQcm94eSB7CiAgICAgRGlkU2V0Q29va2llcyhXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCk7CiAgICAgRGlkR2V0Q29va2llcyhWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiBjb29raWVzLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCk7CiAKLSAgICBDb29raWVz
RGlkQ2hhbmdlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgQ29va2llc0RpZENo
YW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDY0NGVkNzVjNDgzLi4wOWY0OTY4ZWRmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI5NSw3ICsyOTUsNyBAQCBwdWJsaWM6CiAg
ICAgdWludDY0X3QgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KIAogICAgIC8v
IEZJWE1FOiBEb24ndCBrZWVwIGEgc2VwYXJhdGUgc2Vzc2lvbklEIC0gUmVseSBvbiB0aGUgV2Vi
c2l0ZURhdGFTdG9yZQotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7
IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKICAgICBXZWJGcmFtZVByb3h5KiBtYWluRnJh
bWUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZS5nZXQoKTsgfQogICAgIFdlYkZyYW1lUHJv
eHkqIGZvY3VzZWRGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1lLmdldCgpOyB9
CkBAIC0xODQ3LDcgKzE4NDcsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHVpbnQ2NF90IG1fcGFn
ZUlEOwogCiAgICAgLy8gRklYTUU6IERvbid0IGtlZXAgYSBzZXBhcmF0ZSBzZXNzaW9uSUQgLSBS
ZWx5IG9uIHRoZSBXZWJzaXRlRGF0YVN0b3JlCi0gICAgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOworICAgIGNvbnN0IFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogCiAg
ICAgYm9vbCBtX2lzUGFnZVN1c3BlbmRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2FkZHNWaXNp
dGVkTGlua3MgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKaW5kZXggNDY1MWM5MjRiMjcuLjEzNGMzNDg1MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03Niw4ICs3Niw4IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkxQYXJzZXIuaD4KKyNpbmNsdWRl
IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgpAQCAtNTg0LDE1ICs1ODQsMTUgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QW55
UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGUKIHsK
ICAgICBpZiAobmV0d29ya1Byb2Nlc3MoKSkgewogICAgICAgICBpZiAocHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCkKLSAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHtTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgeyB9LCB7IH0sIHsgfX0pLCAwKTsKKyAgICAgICAgICAg
IG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKHtQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Np
b25JRCgpLCB7IH0sIHsgfSwgeyB9fSksIDApOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBu
ZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVNl
c3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKKyAgICAgICAg
ICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZXN0
cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSwgMCk7
CiAgICAgfQogCiAgICAgaWYgKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIHNlbmRU
b0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOworICAgICAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwog
ICAgIGVsc2UKLSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpEZXN0cm95U2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpOwor
ICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKIH0KIAog
dm9pZCAoKnNfaW52YWxpZE1lc3NhZ2VDYWxsYmFjaykoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUp
OwpAQCAtNzc0LDcgKzc3NCw3IEBAIFdlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNy
ZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSYgd2Vic2l0ZURhCiAjZW5kaWYKIAog
ICAgIGlmIChXZWJQcmVmZXJlbmNlczo6YW55UGFnZXNBcmVVc2luZ1ByaXZhdGVCcm93c2luZygp
KQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSwg
MCk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQoKSksIDApOwogCiAgICAgaWYgKG1fYXV0b21hdGlvblNlc3Npb24pCiAgICAgICAgIHByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZUF1dG9tYXRpb25TZXNzaW9uUHJv
eHkobV9hdXRvbWF0aW9uU2Vzc2lvbi0+c2Vzc2lvbklkZW50aWZpZXIoKSksIDApOwpAQCAtOTI2
LDcgKzkyNiw3IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQ
YWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgaWYgKCFwYWdlQ29uZmln
dXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpKSB7CiAgICAgICAgIEFTU0VSVCghcGFnZUNvbmZp
Z3VyYXRpb24tPnNlc3Npb25JRCgpLmlzVmFsaWQoKSk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0
aW9uLT5zZXRXZWJzaXRlRGF0YVN0b3JlKG1fd2Vic2l0ZURhdGFTdG9yZS5wdHIoKSk7Ci0gICAg
ICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRTZXNzaW9uSUQocGFnZUNvbmZpZ3VyYXRpb24tPnBy
ZWZlcmVuY2VzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCgpIDogbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3Jl
KCkuc2Vzc2lvbklEKCkpOworICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0U2Vzc2lvbklE
KHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCkgPyBQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIDogbV93ZWJzaXRl
RGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkpOwogICAgIH0KIAogICAg
IFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3M7CkBAIC05NTQsNyArOTU0LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGFnZUFkZGVkVG9Qcm9jZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSkK
ICAgICAgICAgQVNTRVJUKHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLnBhcmFtZXRlcnMoKS5zZXNz
aW9uSUQgPT0gc2Vzc2lvbklEKTsKICAgICAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHBhZ2Uu
d2Vic2l0ZURhdGFTdG9yZSgpLnBhcmFtZXRlcnMoKSkpOwogICAgICAgICBwYWdlLnByb2Nlc3Mo
KS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KHNlc3Npb25JRCksIDApOwotICAgIH0gZWxzZSBpZiAoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKSB7CisgICAgfSBlbHNlIGlmIChzZXNzaW9uSUQgIT0gUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgewogICAgICAgICBzZW5kVG9OZXR3b3JraW5n
UHJvY2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUocGFn
ZS53ZWJzaXRlRGF0YVN0b3JlKCkucGFyYW1ldGVycygpKSk7CiAgICAgICAgIHBhZ2UucHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUocGFnZS53
ZWJzaXRlRGF0YVN0b3JlKCkucGFyYW1ldGVycygpKSwgMCk7CiAKQEAgLTk3OCwxMCArOTc4LDEw
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBhZ2VSZW1vdmVkRnJvbVByb2Nlc3MoV2ViUGFnZVBy
b3h5JiBwYWdlKQogICAgIGlmIChpdGVyYXRvci0+dmFsdWUuaXNFbXB0eSgpKSB7CiAgICAgICAg
IG1fc2Vzc2lvblRvUGFnZXNNYXAucmVtb3ZlKGl0ZXJhdG9yKTsKIAotICAgICAgICBpZiAoc2Vz
c2lvbklEID09IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgICAgICBpZiAoc2Vz
c2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgLy8gVGhlIGxhc3QgdXNlciBvZiB0aGlzIG5vbi1kZWZhdWx0
IFNlc3Npb25JRCBpcyBnb25lLCBzbyBjbGVhbiBpdCB1cCBpbiB0aGUgY2hpbGQgcHJvY2Vzc2Vz
LgorICAgICAgICAvLyBUaGUgbGFzdCB1c2VyIG9mIHRoaXMgbm9uLWRlZmF1bHQgUEFMOjpTZXNz
aW9uSUQgaXMgZ29uZSwgc28gY2xlYW4gaXQgdXAgaW4gdGhlIGNoaWxkIHByb2Nlc3Nlcy4KICAg
ICAgICAgaWYgKG5ldHdvcmtQcm9jZXNzKCkpCiAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcygp
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oc2Vzc2lvbklE
KSwgMCk7CiAgICAgICAgIHBhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OkRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCksIDApOwpAQCAtOTkxLDcgKzk5MSw3IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBhZ2VSZW1vdmVkRnJvbVByb2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdl
KQogRG93bmxvYWRQcm94eSogV2ViUHJvY2Vzc1Bvb2w6OmRvd25sb2FkKFdlYlBhZ2VQcm94eSog
aW5pdGlhdGluZ1BhZ2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Ry
aW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSkKIHsKICAgICBEb3dubG9hZFByb3h5KiBkb3dubG9hZFBy
b3h5ID0gY3JlYXRlRG93bmxvYWRQcm94eShyZXF1ZXN0KTsKLSAgICBTZXNzaW9uSUQgc2Vzc2lv
bklEID0gaW5pdGlhdGluZ1BhZ2UgPyBpbml0aWF0aW5nUGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQg
PSBpbml0aWF0aW5nUGFnZSA/IGluaXRpYXRpbmdQYWdlLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAKICAgICBpZiAoaW5pdGlhdGluZ1BhZ2UpCiAg
ICAgICAgIGluaXRpYXRpbmdQYWdlLT5oYW5kbGVEb3dubG9hZFJlcXVlc3QoZG93bmxvYWRQcm94
eSk7CkBAIC0xMDIxLDcgKzEwMjEsNyBAQCBEb3dubG9hZFByb3h5KiBXZWJQcm9jZXNzUG9vbDo6
cmVzdW1lRG93bmxvYWQoY29uc3QgQVBJOjpEYXRhKiByZXN1bWVEYXRhLCBjb25zdAogCiAgICAg
aWYgKG5ldHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgLy8gRklYTUU6IElmIHdlIHN0YXJ0ZWQg
YSBkb3dubG9hZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lvbiBhbmQgdGhhdCBzZXNzaW9uIHN0aWxs
IGV4aXN0cywgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gdXNlIHRoYXQgc2FtZSBzZXNzaW9uLgot
ICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
UmVzdW1lRG93bmxvYWQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIGRvd25sb2FkUHJv
eHktPmRvd25sb2FkSUQoKSwgcmVzdW1lRGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBwYXRoLCBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKSwgMCk7CisgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXN1bWVEb3dubG9hZChQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpLCBkb3dubG9hZFByb3h5LT5kb3dubG9hZElEKCksIHJlc3VtZURh
dGEtPmRhdGFSZWZlcmVuY2UoKSwgcGF0aCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIDApOwog
ICAgICAgICByZXR1cm4gZG93bmxvYWRQcm94eTsKICAgICB9CiAKQEAgLTE1MzQsMTIgKzE1MzQs
MTIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0SmF2YVNjcmlwdEdhcmJhZ2VDb2xsZWN0b3JU
aW1lckVuYWJsZWQoYm9vbCBmbGFnKQogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6
V2ViUHJvY2Vzczo6U2V0SmF2YVNjcmlwdEdhcmJhZ2VDb2xsZWN0b3JUaW1lckVuYWJsZWQoZmxh
ZykpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjphZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwg
U2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmFkZFBsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1bnNpZ25lZCBwbHVnSW5P
cmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgbV9wbHVnSW5BdXRv
U3RhcnRQcm92aWRlci5hZGRBdXRvU3RhcnRPcmlnaW5IYXNoKHBhZ2VPcmlnaW4sIHBsdWdJbk9y
aWdpbkhhc2gsIHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsdWdJbkRp
ZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsdWdJbkRpZFJlY2VpdmVVc2Vy
SW50ZXJhY3Rpb24odW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewogICAgIG1fcGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuZGlkUmVjZWl2ZVVzZXJJ
bnRlcmFjdGlvbihwbHVnSW5PcmlnaW5IYXNoLCBzZXNzaW9uSUQpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYzcwMDdkYTVkMGYuLmNjMDgyMmMzNTA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ1LDcgKzQ1
LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNDU3LDggKzQ1Nyw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCB1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCk7CiAjZW5kaWYKIAot
ICAgIHZvaWQgYWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcmIHBhZ2VP
cmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0g
ICAgdm9pZCBwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9y
aWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBhZGRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3Jp
Z2luSGFzaCwgUEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJ
bnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCk7CiAK
ICAgICB2b2lkIHNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQo
Ym9vbCk7CiAKQEAgLTYxMCw3ICs2MTAsNyBAQCBwcml2YXRlOgogICAgIH07CiAgICAgUGF0aHMg
bV9yZXNvbHZlZFBhdGhzOwogCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hT
ZXQ8V2ViUGFnZVByb3h5Kj4+IG1fc2Vzc2lvblRvUGFnZXNNYXA7CisgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgSGFzaFNldDxXZWJQYWdlUHJveHkqPj4gbV9zZXNzaW9uVG9QYWdlc01hcDsK
IH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCmluZGV4IGUwYmIyNjk0YWE1Li42MGFhOGUy
MjQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
bWVzc2FnZXMuaW4KQEAgLTMyLDggKzMyLDggQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Bvb2wg
ewogI2VuZGlmCiAKICAgICAjIFBsdWctaW4gbWVzc2FnZXMuCi0gICAgdm9pZCBBZGRQbHVnSW5B
dXRvU3RhcnRPcmlnaW5IYXNoKFN0cmluZyBwYWdlT3JpZ2luLCB1aW50MzJfdCBoYXNoLCBXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAgIHZvaWQgUGx1Z0luRGlkUmVjZWl2ZVVzZXJJ
bnRlcmFjdGlvbih1aW50MzJfdCBoYXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQor
ICAgIHZvaWQgQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChTdHJpbmcgcGFnZU9yaWdpbiwg
dWludDMyX3QgaGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIHZvaWQgUGx1Z0lu
RGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1aW50MzJfdCBoYXNoLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCiAKICAgICBSZXBvcnRXZWJDb250ZW50Q1BVVGltZShTZWNvbmRzIGNwdVRpbWUs
IHVpbnQ2NF90IGFjdGl2aXR5U3RhdGUpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCA3MDg1Y2U5MjQwNi4uNzJlYWU2MmI2MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjQ3LDcgKzI0Nyw3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvclRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW5zSW5BbGxQZXJzCiAgICAgCiAgICAgUmVmUHRyPENhbGxiYWNrQWdn
cmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gYWRvcHRSZWYobmV3IENhbGxiYWNrQWdncmVn
YXRvcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwogCi0gICAgSGFzaFNldDxXZWJDb3Jl
OjpTZXNzaW9uSUQ+IHZpc2l0ZWRTZXNzaW9uSURzOworICAgIEhhc2hTZXQ8UEFMOjpTZXNzaW9u
SUQ+IHZpc2l0ZWRTZXNzaW9uSURzOwogICAgIGZvciAoYXV0byYgcGFnZSA6IGdsb2JhbFBhZ2VN
YXAoKSkgewogICAgICAgICBhdXRvJiBkYXRhU3RvcmUgPSBwYWdlLnZhbHVlLT53ZWJzaXRlRGF0
YVN0b3JlKCk7CiAgICAgICAgIGlmICghZGF0YVN0b3JlLmlzUGVyc2lzdGVudCgpIHx8IHZpc2l0
ZWRTZXNzaW9uSURzLmNvbnRhaW5zKGRhdGFTdG9yZS5zZXNzaW9uSUQoKSkpCkBAIC0zMDksNyAr
MzA5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW5zV2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWIKICAgICAKICAgICBSZWZQdHI8Q2FsbGJh
Y2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBhZG9wdFJlZihuZXcgQ2FsbGJhY2tB
Z2dyZWdhdG9yKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CiAgICAgCi0gICAgSGFzaFNl
dDxXZWJDb3JlOjpTZXNzaW9uSUQ+IHZpc2l0ZWRTZXNzaW9uSURzOworICAgIEhhc2hTZXQ8UEFM
OjpTZXNzaW9uSUQ+IHZpc2l0ZWRTZXNzaW9uSURzOwogICAgIGZvciAoYXV0byYgcGFnZSA6IGds
b2JhbFBhZ2VNYXAoKSkgewogICAgICAgICBhdXRvJiBkYXRhU3RvcmUgPSBwYWdlLnZhbHVlLT53
ZWJzaXRlRGF0YVN0b3JlKCk7CiAgICAgICAgIGlmICghZGF0YVN0b3JlLmlzUGVyc2lzdGVudCgp
IHx8IHZpc2l0ZWRTZXNzaW9uSURzLmNvbnRhaW5zKGRhdGFTdG9yZS5zZXNzaW9uSUQoKSkpCkBA
IC04MzQsNyArODM0LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OndpbmRvd1NlcnZlckNvbm5l
Y3Rpb25TdGF0ZUNoYW5nZWQoKQogICAgICAgICBwYWdlLT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdl
KEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxlKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5
cGVzLCBGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKQEAgLTg1Miw3ICs4NTIsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdAogICAgIH0pOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50
IG1vZGlmaWVkU2luY2UsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBGdW5jdGlvbjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkpOwog
CkBAIC04NjUsNyArODY1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVE
YXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGEKICAgICB9KTsKIH0K
IAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBGdW5jdGlv
bjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVs
ZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAxZWU0OGY3Y2IyZC4uNTU5MGRhZjJj
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zOSw4
ICszOSw4IEBACiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFz
aC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8bWVtb3J5Pgor
I2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgpAQCAtMTM4LDkgKzEzOCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFNhdmVUb1BhZ2VD
YWNoZSgpOwogICAgIHZvaWQgcmVsZWFzZVBhZ2VDYWNoZSgpOwogCi0gICAgdm9pZCBmZXRjaFdl
YnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IEZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICB2
b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZp
ZWRTaW5jZSwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICB2b2lk
IGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhPiYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBm
ZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiwgRnVuY3Rpb248dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAg
IHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVk
U2luY2UsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBk
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYs
IEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgc3RhdGljIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGFGb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc0luQWxsUGVy
c2lzdGVudERhdGFTdG9yZXMoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFZlY3RvcjxTdHJp
bmc+JiYgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnMsIGJvb2wgc2hvdWxkTm90aWZ5UGFn
ZXMsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKTsKICAgICBzdGF0aWMgdm9pZCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc1dp
dGhXZWJzaXRlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGJvb2wg
c2hvdWxkTm90aWZ5UGFnZSwgRnVuY3Rpb248dm9pZChIYXNoU2V0PFN0cmluZz4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpOwogICAgIHN0YXRpYyB2b2lkIG5vdGlmeVBhZ2VTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHNQcm9jZXNzZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggOTU4NjU2NjEzMjcu
LjJjMzlhNGNiOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNjMsMTUgKzYzLDE1IEBAIHN0YXRp
YyB1aW50NjRfdCBnZW5lcmF0ZUlkZW50aWZpZXIoKQogCiBSZWY8V2Vic2l0ZURhdGFTdG9yZT4g
V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlTm9uUGVyc2lzdGVudCgpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2Vic2l0ZURhdGFTdG9yZShXZWJDb3JlOjpTZXNzaW9uSUQ6OmdlbmVyYXRl
RXBoZW1lcmFsU2Vzc2lvbklEKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRl
RGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEOjpnZW5lcmF0ZUVwaGVtZXJhbFNlc3Npb25JRCgpKSk7
CiB9CiAKLVJlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUoQ29u
ZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQor
UmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZShDb25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0b3JlKFdURk1vdmUoY29uZmlndXJhdGlvbiks
IHNlc3Npb25JRCkpOwogfQogCi1XZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKENv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
K1dlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX2lkZW50aWZpZXIoZ2Vu
ZXJhdGVJZGVudGlmaWVyKCkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBt
X2NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKQEAgLTgxLDcgKzgxLDcgQEAg
V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShDb25maWd1cmF0aW9uIGNvbmZpZ3Vy
YXRpb24sIFdlYkNvcmU6OlNlc3Npb24KICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KIAot
V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQorV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiAgICAgOiBtX2lkZW50aWZpZXIoZ2VuZXJhdGVJZGVudGlmaWVyKCkpCiAg
ICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2NvbmZpZ3VyYXRpb24oKQpAQCAt
OTQsNyArOTQsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpCiB7CiAg
ICAgcGxhdGZvcm1EZXN0cm95KCk7CiAKLSAgICBpZiAobV9zZXNzaW9uSUQuaXNWYWxpZCgpICYm
IG1fc2Vzc2lvbklEICE9IFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7
CisgICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSAmJiBtX3Nlc3Npb25JRCAhPSBQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcHJvY2Vz
c1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpCiAgICAgICAgICAgICBw
cm9jZXNzUG9vbC0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpEZXN0cm95U2Vzc2lvbihtX3Nlc3Npb25JRCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRl
eCA4MGU4ZjA3ZTI1MC4uMDJmMTEzMzc5M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTI5LDcgKzI5LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVy
L1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgpAQCAtODEsMTMgKzgxLDEzIEBA
IHB1YmxpYzoKICAgICAgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VGaWxlOwogICAgIH07CiAgICAg
c3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVOb25QZXJzaXN0ZW50KCk7Ci0gICAg
c3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGUoQ29uZmlndXJhdGlvbiwgV2ViQ29y
ZTo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNyZWF0ZShD
b25maWd1cmF0aW9uLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+V2Vic2l0ZURhdGFT
dG9yZSgpOwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQogCiAgICAgYm9vbCBpc1BlcnNpc3RlbnQoKSBjb25zdCB7IHJldHVybiAhbV9z
ZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsgfQotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKICAgICBib29sIHJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZChib29sKTsKQEAgLTEzMSw4ICsxMzEsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQW5kU2V0VGVzdGluZ0NhbGxiYWNr
KEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYpPiYmIGNhbGxiYWNrKTsKIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0gICAg
ZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZShDb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZXNzaW9u
SUQpOworICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQpOworICAg
IGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9uSUQp
OwogCiAgICAgdm9pZCBmZXRjaERhdGFBbmRBcHBseShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCBSZWZQdHI8V29ya1F1ZXVlPiYm
LCBGdW5jdGlvbjx2b2lkKFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4pPiYmIGFwcGx5KTsKIApA
QCAtMTU5LDcgKzE1OSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlTWVkaWFL
ZXlzKGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSwgY29uc3QgSGFzaFNl
dDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+Jik7CiAKICAgICBjb25zdCB1aW50NjRfdCBt
X2lkZW50aWZpZXI7Ci0gICAgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwor
ICAgIGNvbnN0IFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogCiAgICAgY29uc3QgQ29uZmln
dXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247CiAgICAgQ29uZmlndXJhdGlvbiBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMv
V2ViQ29va2llTWFuYWdlci5jcHAKaW5kZXggMTIxM2QzYTg3M2IuLjlkYzU3NzA1N2RkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLmNwcApAQCAtNTQsNyArNTQsNyBAQCBXZWJDb29raWVNYW5hZ2VyOjpXZWJDb29raWVNYW5h
Z2VyKENoaWxkUHJvY2VzcyogcHJvY2VzcykKICAgICBtX3Byb2Nlc3MtPmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAq
dGhpcyk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tp
ZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJD
b29raWVNYW5hZ2VyOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBIYXNoU2V0PFN0cmluZz4gaG9z
dG5hbWVzOwogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAgLTY2LDIwICs2NiwyMCBAQCB2b2lk
IFdlYkNvb2tpZU1hbmFnZXI6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFNlc3Npb25JRCBzZXNz
aW9uSUQsIENhbGxiYWNrSUQgYwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQ29v
a2llTWFuYWdlclByb3h5OjpEaWRHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhob3N0bmFtZUxpc3Qs
IGNhbGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVDb29r
aWVzRm9ySG9zdG5hbWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBob3N0bmFt
ZSkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKIHsKICAgICBpZiAo
YXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNz
aW9uKHNlc3Npb25JRCkpCiAgICAgICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFt
ZXMoKnN0b3JhZ2VTZXNzaW9uLCB7IGhvc3RuYW1lIH0pOwogfQogCiAKLXZvaWQgV2ViQ29va2ll
TWFuYWdlcjo6ZGVsZXRlQWxsQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJD
b29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIFdlYkNvcmU6OmRlbGV0ZUFsbENv
b2tpZXMoKnN0b3JhZ2VTZXNzaW9uKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxl
dGVDb29raWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIENhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHN0b3JhZ2VT
ZXNzaW9uLT5kZWxldGVDb29raWUoY29va2llKTsKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBXZWJD
b29raWVNYW5hZ2VyOjpkZWxldGVDb29raWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29v
a2llJiBjb29raWUsIEMKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1h
bmFnZXJQcm94eTo6RGlkRGVsZXRlQ29va2llcyhjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQg
V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoU2Vzc2lvbklE
IHNlc3Npb25JRCwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCB0aW1lLCBD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENv
b2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCB0aW1lLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7
CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
dG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBXZWJDb3JlOjpkZWxldGVBbGxDb29r
aWVzTW9kaWZpZWRTaW5jZSgqc3RvcmFnZVNlc3Npb24sIHRpbWUpOwpAQCAtOTUsNyArOTUsNyBA
QCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFNl
c3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6YwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWREZWxldGVDb29raWVzKGNhbGxiYWNrSUQpLCAwKTsK
IH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRBbGxDb29raWVzKFNlc3Npb25JRCBzZXNz
aW9uSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0
QWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKIHsKICAgICBWZWN0b3I8Q29va2llPiBjb29raWVzOwogICAgIGlmIChhdXRvKiBzdG9yYWdl
U2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklE
KSkKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldEFsbENvb2tp
ZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRHZXRDb29raWVz
KGNvb2tpZXMsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpn
ZXRDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldENvb2tpZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogICAgIFZlY3RvcjxDb29raWU+IGNvb2tpZXM7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNz
aW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpA
QCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0Q29va2llcyhTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgQ2FsbGJhY2tJCiAgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldENvb2tpZXMoY29v
a2llcywgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENv
b2tpZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNvb2tpZSwg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRDb29raWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNvb2tpZSwgQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFn
ZVNlc3Npb24tPnNldENvb2tpZShjb29raWUpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6c2V0Q29va2llKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IENvb2tpZSYgY29vCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVN
YW5hZ2VyUHJveHk6OkRpZFNldENvb2tpZXMoY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwm
IG1haW5Eb2N1bWVudFVSTCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpzZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVjdG9y
PENvb2tpZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIG1haW5Eb2N1bWVu
dFVSTCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vz
c2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkK
ICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnNldENvb2tpZXMoY29va2llcywgdXJsLCBtYWluRG9j
dW1lbnRVUkwpOwpAQCAtMTI5LDEzICsxMjksMTMgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpz
ZXRDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxDb28K
ICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlk
U2V0Q29va2llcyhjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6
bm90aWZ5Q29va2llc0RpZENoYW5nZShTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpub3RpZnlDb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpDb29raWVzRGlkQ2hhbmdlKHNlc3Np
b25JRCksIDApOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpz
dGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3Rv
cmFnZVNlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBXZWJDb3JlOjpzdGFydE9ic2Vydmlu
Z0Nvb2tpZUNoYW5nZXMoKnN0b3JhZ2VTZXNzaW9uLCBbdGhpcywgc2Vzc2lvbklEXSB7CkBAIC0x
NDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdGFydE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMoU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICB9CiB9CiAKLXZvaWQgV2ViQ29va2ll
TWFuYWdlcjo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoU2Vzc2lvbklEIHNlc3Npb25JRCkK
K3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAg
V2ViQ29yZTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKnN0b3JhZ2VTZXNzaW9uKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
aAppbmRleCA4NDRmN2EzYjQ2ZC4uNjg3NDFhZDBlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKQEAgLTMxLDggKzMxLDgg
QEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlICJPcHRp
b25hbENhbGxiYWNrSUQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8Y2hyb25vPgorI2luY2x1ZGUg
PHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC02NCwz
MCArNjQsMzAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2Uo
Y29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgdWludDMyX3Qgc3RvcmFnZVR5cGUpOwogI2VuZGlm
CiAKLSAgICB2b2lkIG5vdGlmeUNvb2tpZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Vzc2lvbklEKTsK
KyAgICB2b2lkIG5vdGlmeUNvb2tpZXNEaWRDaGFuZ2UoUEFMOjpTZXNzaW9uSUQpOwogCiBwcml2
YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAotICAgIHZv
aWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBDYWxsYmFja0lE
KTsKKyAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKFBBTDo6U2Vzc2lvbklELCBDYWxs
YmFja0lEKTsKIAotICAgIHZvaWQgZGVsZXRlQ29va2llKFdlYkNvcmU6OlNlc3Npb25JRCwgY29u
c3QgV2ViQ29yZTo6Q29va2llJiwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkZWxldGVDb29raWVz
Rm9ySG9zdG5hbWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lk
IGRlbGV0ZUFsbENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIGRlbGV0ZUFs
bENvb2tpZXNNb2RpZmllZFNpbmNlKFdlYkNvcmU6OlNlc3Npb25JRCwgc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6dGltZV9wb2ludCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVDb29r
aWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIENhbGxiYWNrSUQpOwor
ICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFBBTDo6U2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmKTsKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQpOworICAg
IHZvaWQgZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQsIHN0ZDo6
Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQsIENhbGxiYWNrSUQpOwogCi0gICAgdm9p
ZCBzZXRDb29raWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBD
YWxsYmFja0lEKTsKLSAgICB2b2lkIHNldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgbWFpbkRvY3VtZW50VVJMLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGdldEFs
bENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGdldENv
b2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBDYWxsYmFja0lE
KTsKKyAgICB2b2lkIHNldENvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q29v
a2llJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBzZXRDb29raWVzKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgbWFpbkRvY3VtZW50VVJMLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdl
dEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0Q29v
a2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgQ2FsbGJhY2tJRCk7CiAK
ICAgICB2b2lkIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNj
ZXB0UG9saWN5KTsKICAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ2FsbGJhY2tJ
RCk7CiAgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwbGF0Zm9ybUdldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3koKTsKIAotICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNv
cmU6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJD
b3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBB
TDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6
U2Vzc2lvbklEKTsKIAogICAgIENoaWxkUHJvY2VzcyogbV9wcm9jZXNzOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLm1lc3NhZ2VzLmluCmluZGV4IDVmZWVmYTcxMmM4Li40M2Y2YTdiMjc5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNCwyMiArMjQsMjIgQEAKICAqLwogIAogIG1lc3NhZ2Vz
IC0+IFdlYkNvb2tpZU1hbmFnZXIgewotICAgIHZvaWQgR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMo
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCi0gICAgdm9pZCBEZWxldGVDb29raWVzRm9ySG9zdG5hbWUoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU3RyaW5nIGhvc3RuYW1lKQotICAgIHZvaWQgRGVsZXRlQWxsQ29va2llcyhX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIHZvaWQgR2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKKyAgICB2b2lkIERlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFN0cmluZyBob3N0bmFtZSkKKyAgICB2b2lkIERlbGV0ZUFsbENvb2tpZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCi0gICAgdm9pZCBTZXRDb29raWUoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tpZSBjb29raWUsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHZvaWQgU2V0Q29va2llcyhXZWJDb3JlOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzLCBXZWJDb3Jl
OjpVUkwgdXJsLCBXZWJDb3JlOjpVUkwgbWFpbkRvY3VtZW50VVJMLCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKLSAgICB2b2lkIEdldEFsbENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgdm9pZCBHZXRD
b29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCB1cmwsIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHZvaWQgRGVsZXRlQ29va2llKFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDb29raWUgY29va2llLCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICB2b2lkIERlbGV0ZUFsbENvb2tpZXNN
b2RpZmllZFNpbmNlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdGltZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCisgICAgdm9pZCBTZXRDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3Qg
V2ViQ29yZTo6Q29va2llIGNvb2tpZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisg
ICAgdm9pZCBTZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4gY29va2llcywgV2ViQ29yZTo6VVJMIHVybCwgV2ViQ29yZTo6VVJMIG1haW5E
b2N1bWVudFVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgdm9pZCBHZXRB
bGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCisgICAgdm9pZCBHZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6VVJMIHVybCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgdm9p
ZCBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViQ29yZTo6
Q29va2llIGNvb2tpZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgdm9pZCBE
ZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdGltZSwgV2ViS2l0OjpDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiAKICAgICB2b2lkIFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kodWlu
dDMyX3QgcG9saWN5LCBXZWJLaXQ6Ok9wdGlvbmFsQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAg
IHZvaWQgR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKICAgICAKLSAgICB2b2lkIFN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAgIHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICB2b2lkIFN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgdm9pZCBTdG9wT2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKICNpZiBVU0Uo
U09VUCkKICAgICBTZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShTdHJpbmcgc3RvcmFnZVBhdGgs
IHVpbnQzMl90IHN0b3JhZ2VUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHAKaW5kZXggNGQ3NmZiYjQzZTAuLmMxODNjNTQ5NWNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTU1LDEyICs1NSwx
MiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJl
ZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3Jl
YXRlKFNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyKHNl
c3Npb25JRCkpOwogfQogCi1XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcihTZXNzaW9uSUQgc2Vzc2lvbklEKQorV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
IDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogewogICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVu
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCBj
NzllMDQxZDRmMS4uMjk3NTU5NTYyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRl
ci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lE
QkNvbm5lY3Rpb25Ub1NlcnZlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+Cisj
aW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFdlYklEQlJlc3VsdDsKIAogY2xhc3MgV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OklEQkNsaWVudDo6SURC
Q29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1
YmxpYyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBjcmVhdGUoV2ViQ29yZTo6U2Vz
c2lvbklEKTsKKyAgICBzdGF0aWMgUmVmPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gY3JlYXRl
KFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZpcnR1YWwgfldlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cigpOwogCkBAIC0xMDksMTQgKzEwOSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25uZWN0aW9u
VG9TZXJ2ZXJMb3N0KCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
KFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6
U2Vzc2lvbklEKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBmaW5hbDsKIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKICAgICBib29s
IG1faXNPcGVuSW5TZXJ2ZXIgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV9jb25uZWN0aW9uVG9TZXJ2ZXI7Ci0gICAgV2Vi
Q29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lv
bklEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRl
eCAyYjg3YmFmOTRlNy4uZWIxNTFlZGQyZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcApAQCAtMjgs
NyArMjgsNyBAQAogCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlRvU3Rv
cmFnZVByb2Nlc3NDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
KyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC02OSw3ICs2OSw3
IEBAIFdlYkRhdGFiYXNlUHJvdmlkZXI6On5XZWJEYXRhYmFzZVByb3ZpZGVyKCkKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi1XZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Ub1NlcnZlciYgV2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9y
U2Vzc2lvbihjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkKK1dlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBXZWJEYXRhYmFzZVByb3ZpZGVyOjppZGJD
b25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9u
SUQpCiB7CiAgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CiAgICAgICAgIGF1dG8g
cmVzdWx0ID0gbV9pZGJFcGhlbWVyYWxDb25uZWN0aW9uTWFwLmFkZChzZXNzaW9uSUQuc2Vzc2lv
bklEKCksIG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
RGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAppbmRleCBiNzJiMjM0ZmYxZi4uZjlkYWFm
MTFhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2Vi
RGF0YWJhc2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvV2ViRGF0YWJhc2VQcm92aWRlci5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5XZWJEYXRhYmFzZVByb3ZpZGVyKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKLSAgICBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgaWRi
Q29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKSBm
aW5hbDsKKyAgICBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgaWRi
Q29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYpIGZpbmFs
OwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA5YThhNjBjMTUw
OS4uNGViMDE1OWUxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNzEsMTEgKzcxLDExIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Vc2VyU2NyaXB0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVl
dC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIgpAQCAt
MzE5LDkgKzMxOSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vCiB7CiAgICAgaWYgKGVuYWJs
ZWQpIHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTGVnYWN5UHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3MoKTsKLSAgICAgICAgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisgICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQoKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIFNlc3Npb25UcmFja2VyOjpk
ZXN0cm95U2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisgICAg
ICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCgpKTsKIAogICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9
IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsK
ICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsg
aXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5k
ZXggYTIzOTMwMjdhZDEuLmRkNzg2MGI1MjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
QEAgLTQxLDggKzQxLDggQEAKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01l
bW9yeUNhY2hlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25J
RC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTI5LDcgKzEyOSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxl
cyh1aW50NjRfdCByZXF1ZXN0SWRlCiB9CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNF
KQotdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxl
JiBoYW5kbGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewogICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IE1lbW9yeUNhY2hlOjpz
aW5nbGV0b24oKS5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBp
ZiAoIXJlc291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBmYjMwMTU2ZTg0NS4uNTZh
Y2E4YmY0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0zNSwxMSArMzUsMTQgQEAgbmFt
ZXNwYWNlIElQQyB7CiBjbGFzcyBEYXRhUmVmZXJlbmNlOwogfQogCituYW1lc3BhY2UgUEFMIHsK
K2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3Vy
Y2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7
Ci1jbGFzcyBTZXNzaW9uSUQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzMsNyArNzYs
NyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKICAgICAvLyBN
ZXNzYWdlIGhhbmRsZXJzLgotICAgIHZvaWQgZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgV2Vi
Q29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRpZENhY2hlUmVzb3VyY2UoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYsIFBB
TDo6U2Vzc2lvbklEKTsKICNlbmRpZgogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUg
d2ViIHByb2Nlc3MgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBhNGZjNDI2ZDgwNC4uMjNhMmVjYTAxOWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAK
IG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAK
ICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQotICAgIERpZENhY2hlUmVzb3VyY2UoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6
OkhhbmRsZSByZXNvdXJjZSwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBEaWRD
YWNoZVJlc291cmNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNo
YXJlYWJsZVJlc291cmNlOjpIYW5kbGUgcmVzb3VyY2UsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICNlbmRpZgogCiAgICAgRGlkV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXModWludDY0X3Qg
cmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApp
bmRleCA5ZDk3NzViMDQ4Zi4uNGE3NWNmYzc3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTU5LDkgKzU5
LDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlZmVycmVyUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4u
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0
dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnJlc291cmNlTG9hZGVyLmg+CisjaW5jbHVk
ZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0yMjIsNyArMjIyLDcgQEAgdm9pZCBXZWJM
b2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRl
ciwgQ2FjaGVkUmVzb3UKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gaWRlbnRpZmll
cjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFn
ZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdl
YkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdl
YlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5z
ZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBjb250ZW50U25pZmZpbmdQb2xpY3k7
CiAgICAgbG9hZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IGFsbG93U3RvcmVk
Q3JlZGVudGlhbHM7CkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgdW4K
ICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gcmVzb3VyY2VMb2FkSWRlbnRpZmllcjsK
ICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlE
KCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZy
YW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBh
Z2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
OworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNz
aW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9hZFBh
cmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNu
aWZmaW5nUG9saWN5ID0gU25pZmZDb250ZW50OwogICAgIGxvYWRQYXJhbWV0ZXJzLmFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMgPSBzdG9yZWRDcmVkZW50aWFsczsKQEAgLTQwMSw3ICs0MDEsNyBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpjcmVhdGVQaW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0
KiBuZXR3b3JraW5nQ29udGV4dCwgUgogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
IGxvYWRQYXJhbWV0ZXJzOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0Owog
ICAgIGxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiA9IFdURk1vdmUoc291cmNlT3JpZ2luKTsK
LSAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lv
bklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVy
cy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmFsbG93U3RvcmVk
Q3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6Ok9taXQgPyBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzOwogICAgIGxvYWRQYXJhbWV0ZXJzLm1vZGUgPSBvcHRpb25zLm1vZGU7CiAgICAg
bG9hZFBhcmFtZXRlcnMuc2hvdWxkRm9sbG93UmVkaXJlY3RzID0gb3B0aW9ucy5yZWRpcmVjdCA9
PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAKaW5kZXggZTMzM2Y2
NGExYmQuLjk4NzYwOTI3NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFNvY2tldFN0
cmVhbUhhbmRsZT4gV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShj
b25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbikKK1JlZjxTb2Nr
ZXRTdHJlYW1IYW5kbGU+IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5k
bGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbikK
IHsKICAgICByZXR1cm4gV2ViU29ja2V0U3RyZWFtOjpjcmVhdGUodXJsLCBjbGllbnQsIHNlc3Np
b25JRCwgY3JlZGVudGlhbFBhcnRpdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaAppbmRleCBhNGExODJjMmRmZC4u
MDI0NGU1ZjJjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0UHJvdmlkZXIuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIGNsYXNzIFdlYlNvY2tldFByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNvY2tl
dFByb3ZpZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlNvY2tldFByb3ZpZGVyPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldFByb3ZpZGVyKTsgfQotICAg
IFJlZjxXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGU+IGNyZWF0ZVNvY2tldFN0cmVhbUhhbmRs
ZShjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQm
LCBXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbikg
ZmluYWw7CisgICAgUmVmPFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZT4gY3JlYXRlU29ja2V0
U3RyZWFtSGFuZGxlKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlNvY2tldFN0cmVhbUhh
bmRsZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0
aXRpb24pIGZpbmFsOwogICAgIHZpcnR1YWwgfldlYlNvY2tldFByb3ZpZGVyKCkgeyB9CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRT
dHJlYW0uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3Ry
ZWFtLmNwcAppbmRleCA4ZjI0MzVhZjFkZS4uYzlmNTc5Y2M5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmNwcApAQCAtMzIs
OSArMzIsOSBAQAogI2luY2x1ZGUgIk5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0
U3RyZWFtRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvY2tldFN0cmVhbUhhbmRsZUNsaWVu
dC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTY1LDEy
ICs2NSwxMiBAQCB2b2lkIFdlYlNvY2tldFN0cmVhbTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkKCkK
ICAgICBnbG9iYWxXZWJTb2NrZXRTdHJlYW1NYXAoKS5jbGVhcigpOwogfQogCi1SZWY8V2ViU29j
a2V0U3RyZWFtPiBXZWJTb2NrZXRTdHJlYW06OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbikKK1JlZjxXZWJTb2NrZXRTdHJlYW0+IFdlYlNvY2tl
dFN0cmVhbTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQm
IGNsaWVudCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRp
YWxQYXJ0aXRpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU29ja2V0U3RyZWFt
KHVybCwgY2xpZW50LCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24pKTsKIH0KIAotV2Vi
U29ja2V0U3RyZWFtOjpXZWJTb2NrZXRTdHJlYW0oY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwsIFdl
YkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNhY2hlUGFydGl0aW9uKQorV2ViU29ja2V0U3Ry
ZWFtOjpXZWJTb2NrZXRTdHJlYW0oY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwsIFdlYkNvcmU6OlNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgY2FjaGVQYXJ0aXRpb24pCiAgICAgOiBTb2NrZXRTdHJlYW1IYW5kbGUo
dXJsLCBjbGllbnQpCiAgICAgLCBtX2lkZW50aWZpZXIobmV4dEF2YWlsYWJsZUlkZW50aWZpZXIr
KykKICAgICAsIG1fY2xpZW50KGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmgKaW5kZXggZWRhNzU3OGIwZDQuLmU5Njg0YWQ0
YjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRTdHJlYW0uaApAQCAtMjcsOCArMjcsOCBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGUuaD4KKyNpbmNsdWRl
IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBD
b25uZWN0aW9uOwpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
V2ViU29ja2V0U3RyZWFtIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIElQQzo6
TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYlNvY2tldFN0cmVhbT4gY3JlYXRlKGNvbnN0IFdlYkNv
cmU6OlVSTCYsIFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFdlYkNvcmU6OlNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKTsKKyAgICBzdGF0aWMg
UmVmPFdlYlNvY2tldFN0cmVhbT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6
OlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IGNyZWRlbnRpYWxQYXJ0aXRpb24pOwogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jh
c2hlZCgpOwogICAgIHN0YXRpYyBXZWJTb2NrZXRTdHJlYW0qIHN0cmVhbVdpdGhJZGVudGlmaWVy
KHVpbnQ2NF90KTsKICAgICAKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNv
bm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWw7CiAgICAgdWludDY0X3Qg
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBmaW5hbDsKIAotICAgIFdlYlNvY2tldFN0cmVh
bShjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQm
LCBXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbik7
CisgICAgV2ViU29ja2V0U3RyZWFtKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlNvY2tl
dFN0cmVhbUhhbmRsZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWxQYXJ0aXRpb24pOwogICAgIH5XZWJTb2NrZXRTdHJlYW0oKTsKIAogICAgIHNpemVfdCBt
X2J1ZmZlcmVkQW1vdW50IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CmluZGV4IDZiMjdkNzgxZDJkLi5hYmVhODFkMjNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3ND
b25uZWN0aW9uLmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFdlYlRvU3RvcmFnZVByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSQog
fQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi1XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXImIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJG
b3JTZXNzaW9uKGNvbnN0IFNlc3Npb25JRCYgc2Vzc2lvbklEKQorV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyJiBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6aWRiQ29ubmVjdGlvblRvU2Vy
dmVyRm9yU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQogewogICAgIGF1
dG8gcmVzdWx0ID0gbV93ZWJJREJDb25uZWN0aW9uc0J5U2Vzc2lvbi5hZGQoc2Vzc2lvbklELCBu
dWxscHRyKTsKICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNz
Q29ubmVjdGlvbi5oCmluZGV4IDI0MjZlNmNhZmIyLi5iMDMzYjRmMGU3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3Jh
Z2VQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0yOSwxMCArMjksMTAgQEAKICNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFBBTCB7CiBjbGFzcyBTZXNz
aW9uSUQ7CiB9CiAKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQogCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJD
b25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYpOwor
ICAgIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgaWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vz
c2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYpOwogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC02Nyw3
ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpT
ZXNzaW9uSUQsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+PiBtX3dlYklEQkNvbm5l
Y3Rpb25zQnlTZXNzaW9uOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZlB0cjxXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI+PiBtX3dlYklEQkNvbm5lY3Rpb25zQnlTZXNzaW9uOwogICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+PiBtX3dl
YklEQkNvbm5lY3Rpb25zQnlJZGVudGlmaWVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggNTg1MjlkYjYzNzEuLjkxZWNhOTY3OWJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE0NDEsNyArMTQ0MSw3IEBAIGJvb2wgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNhbkNhY2hlUGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuICFtX2ZyYW1l
SGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIgKmRvY3Vt
ZW50TG9hZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9h
ZGVyICpkb2N1bWVudExvYWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
ewogICAgIG1fZnJhbWUtPmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChkb2N1bWVu
dExvYWRlciwgc2Vzc2lvbklELCByZXF1ZXN0LCByZXNwb25zZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IDY2MDBiOWZjM2E3Li4xYTlkY2UwYTA0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVMb2FkZXJDbGllbnQuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFBB
TCB7CiBjbGFzcyBTZXNzaW9uSUQ7CiB9CiAKQEAgLTE5Niw3ICsxOTYsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbDsKIAogICAgIGJv
b2wgY2FuQ2FjaGVQYWdlKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb252ZXJ0TWFpblJlc291
cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXZWJDb3JlOjpTZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2Fk
VG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJikgZmluYWw7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNv
bnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1l
T3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxp
bmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggODIxNDA4MjgyYmQuLmFlNjQwODMzZjE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNTksMTAgKzU5LDEwIEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Byb2dyZXNzVHJhY2tlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yYWdl
TmFtZXNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJmcmFtZUxvYWRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVVJMLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEzNSw3
ICsxMzUsNyBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZQogICAgIHJldHVybiBjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uLnNlc3Npb25JRCgpLCBmaXJzdFBhcnR5LCB1cmwp
OwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFVSTCYgdXJsKQorU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQogewogICAgIFN0cmluZyByZXN1bHQ7CiAgICAgaWYg
KCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb25JRCwgZmlyc3RQYXJ0eSwgdXJsKSwgTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZTo6UmVwbHkocmVzdWx0KSwgMCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKaW5kZXggNjI4ZDg3MGQzNjAuLmUxNmJlYTQ4MjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oCkBAIC01MSw3ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDb29raWVz
RnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOwogICAgIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKICAgICBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKLSAg
ICBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklE
LCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92
ZXJyaWRlOworICAgIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNl
c3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpV
UkwmKSBvdmVycmlkZTsKICAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVn
SW5DbGllbnQuY3BwCmluZGV4IDBmZjVmYzJjNzUwLi41NTE0ODgwMjI4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJ
bkNsaWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBXZWJQbHVnSW5DbGllbnQ6OnNob3Vs
ZEF1dG9TdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdAogICAg
IHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zaG91bGRQbHVnSW5BdXRvU3RhcnRGcm9t
T3JpZ2luKG1fd2ViUGFnZSwgcGFnZU9yaWdpbiwgcGx1Z2luT3JpZ2luLCBtaW1lVHlwZSk7CiB9
CiAKLXZvaWQgV2ViUGx1Z0luQ2xpZW50OjpkaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5n
JiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUGx1Z0luQ2xp
ZW50OjpkaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBT
dHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBsdWdJbkRpZFN0
YXJ0RnJvbU9yaWdpbihwYWdlT3JpZ2luLCBwbHVnaW5PcmlnaW4sIG1pbWVUeXBlLCBzZXNzaW9u
SUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsdWdJbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsdWdJbkNsaWVudC5oCmluZGV4IDkzZjk2OThhOWZhLi42Nzc4YjM2ODljNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
dWdJbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbHVnSW5DbGllbnQuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBXZWJQbHVnSW5D
bGllbnRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnSW5DbGllbnQuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxk
QXV0b1N0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0
cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpTZXNz
aW9uSUQpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmlu
ZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIFBBTDo6U2Vzc2lvbklEKSBvdmVycmlkZTsKIAogICAgIFdlYlBhZ2UmIG1fd2Vi
UGFnZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmlu
ZGV4IGIzZDliYzk3NGJjLi5lNDYyOWNiNDMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJIVFRQQ29v
a2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgLy8gRklY
TUU6IHJlbW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGFuZCB1c2UgU2Vzc2lvblRyYWNrZXIK
LSAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNl
c3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQgZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNl
c3Npb24oV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJik7CiAKICAgICBzdGF0aWMgdm9pZCBz
ZXRDb29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyhIVFRQQ29va2llQWNjZXB0UG9saWN5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCBk
ZDdkNWJmNWQ3Zi4uMjYzOTkyMzVlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIAotdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQp
Cit2b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChzZXNzaW9uSUQu
aXNFcGhlbWVyYWwoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5jcHAKaW5kZXggODI4ZDI2ODJkMTguLjdhZDc5NzAwMzNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApAQCAtMzMsMTUgKzMzLDE1
IEBACiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9uLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50
aWZpZXIvU2Vzc2lvbklELmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNT
RVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaAppbmRleCA4M2Y2NTliMjJkOC4uYTY2ZTg0NzY1NDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTI4LDcgKzI4
LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwv
aWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQzLDcg
KzQzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2
b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogICAgIHN0
YXRpYyB2b2lkIGVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzJiYpOwogCiAgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVy
Q2xpZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAKaW5kZXggYmJlOGE1MjM2MGMuLjIyYWJjMjA4ODdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0yNjQsMTEgKzI2NCwxMSBA
QCB2b2lkIFdlYkZyYW1lOjpzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaQogICAgIG1fcG9saWN5RG93bmxvYWRJRCA9IHsgfTsK
IAogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKLSAgICBT
ZXNzaW9uSUQgc2Vzc2lvbklEID0gcGFnZSgpID8gcGFnZSgpLT5zZXNzaW9uSUQoKSA6IFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCA9
IHBhZ2UoKSA/IHBhZ2UoKS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpOwogICAgIHdlYlByb2Nlc3MubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlN0YXJ0RG93
bmxvYWQoc2Vzc2lvbklELCBwb2xpY3lEb3dubG9hZElELCByZXF1ZXN0LCBzdWdnZXN0ZWROYW1l
KSwgMCk7CiB9CiAKLXZvaWQgV2ViRnJhbWU6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3du
bG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIsIFNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit2b2lkIFdlYkZyYW1lOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxv
YWQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUKG1fcG9saWN5RG93bmxvYWRJRC5kb3dubG9hZElE
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAppbmRl
eCBmMmIwNjJmZmI3MS4uZGZlOTVjNjE1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtNDIsMTMgKzQyLDE2IEBAIG5hbWVzcGFjZSBBUEkgewog
Y2xhc3MgQXJyYXk7CiB9CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBGcmFt
ZTsKIGNsYXNzIEhUTUxGcmFtZU93bmVyRWxlbWVudDsKIGNsYXNzIEludFBvaW50OwogY2xhc3Mg
SW50UmVjdDsKLWNsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFVSTDsKIH0KIApAQCAtODQsNyArODcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3Qg
bGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IERvd25sb2FkSUQpOwogCiAgICAgdm9pZCBzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7Ci0gICAg
dm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCBXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGNvbnZlcnRN
YWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFBBTDo6
U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJik7CiAKICAgICBTdHJpbmcgc291cmNlKCkgY29uc3Q7CiAgICAg
U3RyaW5nIGNvbnRlbnRzQXNTdHJpbmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOGRjYWRmM2NhMDQuLjE0NDAwYWIxYjJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTc3
LDcgKzE3Nyw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTE5Myw2ICsxOTIsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvV2ViR0xTdGF0ZVRyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L21hcmt1cC5oPgogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZXJE
YXRhYmFzZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNDSlNWYWx1ZS5oPgpAQCAtMjcxNCw3ICsyNzE0LDcgQEAgdm9pZCBXZWJQYWdlOjpz
ZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSkKICAg
ICAgICAgcGx1Z2luVmlldy0+c2V0TGF5ZXJIb3N0aW5nTW9kZShtX2xheWVySG9zdGluZ01vZGUp
OwogfQogCi12b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRChTZXNzaW9uSUQgc2Vzc2lvbklEKQor
dm9pZCBXZWJQYWdlOjpzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIGlmIChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihzZXNzaW9uSUQpOwpAQCAtMzA0
OSw5ICszMDQ5LDkgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQ
cmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmco
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nPihzdG9yZS5nZXRVSW50MzJWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nS2V5KCkpKSk7CiAgICAg
c2V0dGluZ3Muc2V0QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojphc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZEtleSgp
KSk7CiAgICAgaWYgKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKSAmJiAhdXNlc0VwaGVtZXJhbFNlc3Npb24oKSkK
LSAgICAgICAgc2V0U2Vzc2lvbklEKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
KTsKLSAgICBlbHNlIGlmICghc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpICYmIHNlc3Npb25JRCgpID09IFNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKQotICAgICAgICBzZXRTZXNzaW9uSUQoU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgICAgICBzZXRTZXNzaW9uSUQoUEFMOjpT
ZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisgICAgZWxzZSBpZiAoIXN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZEtleSgpKSAmJiBzZXNzaW9uSUQoKSA9PSBQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKQorICAgICAgICBzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSk7CiAgICAgc2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRldmVsb3BlckV4dHJh
c0VuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEphdmFTY3JpcHRSdW50aW1lRmxhZ3Mo
UnVudGltZUZsYWdzKHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpqYXZhU2NyaXB0UnVudGltZUZsYWdzS2V5KCkpKSk7CiAgICAgc2V0dGluZ3Muc2V0VGV4dEFy
ZWFzQXJlUmVzaXphYmxlKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6dGV4dEFyZWFzQXJlUmVzaXphYmxlS2V5KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA2YmMzNzFlMjBmYy4uNGE2YmQ5ZTdlOWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIzMCwxMCArMjMw
LDEwIEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAgICAgdWludDY0X3QgcGFnZUlEKCkgY29uc3QgeyByZXR1
cm4gbV9wYWdlSUQ7IH0KLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlLT5zZXNzaW9uSUQoKTsgfQorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS0+c2Vzc2lvbklEKCk7IH0KICAgICBib29sIHVz
ZXNFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLT51c2VzRXBoZW1lcmFs
U2Vzc2lvbigpOyB9CiAKLSAgICB2b2lkIHNldFNlc3Npb25JRChXZWJDb3JlOjpTZXNzaW9uSUQp
OworICAgIHZvaWQgc2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgc2V0
U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1NpemU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA4NzBmM2NkZTg1My4uNTRkMzFjNTM0NTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCBX
ZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICBhZGRTdXBwbGVtZW50PFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyPigpOwogI2VuZGlmCiAKLSAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hl
cy5hZGQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIGRv
dWJsZT4oKSk7CisgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuYWRkKFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSk7
CiAKICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkuc2V0Tm90aWZpY2F0aW9uQ2Fs
bGJhY2soW3RoaXNdIChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJiBzdGF0aXN0aWNz
KSB7CiAgICAgICAgIEFTU0VSVCghc3RhdGlzdGljcy5pc0VtcHR5KCkpOwpAQCAtNTAzLDcgKzUw
Myw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9v
bCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQogICAgIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5h
YmxlZCA9IGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBX
ZWJQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKIHsKICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKHNlc3Npb25JRCk7CiB9CkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBX
ZWJQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVXZWJz
aXRlRGF0YVN0b3JlU2Vzc2lvbihXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKIH0KIAotdm9pZCBXZWJQ
cm9jZXNzOjpkZXN0cm95U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9j
ZXNzOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgU2Vz
c2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCk7CiB9CkBAIC04MDAsOSArODAw
LDkgQEAgc3RhdGljIHVuc2lnbmVkIGhhc2hGb3JQbHVnSW5PcmlnaW4oY29uc3QgU3RyaW5nJiBw
YWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWcKICAgICByZXR1cm4gaGFzaGVyLmhhc2goKTsK
IH0KIAotYm9vbCBXZWJQcm9jZXNzOjppc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWdu
ZWQgcGx1Z0luT3JpZ2luSGFzaCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK2Jvb2wgV2ViUHJvY2Vz
czo6aXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gs
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Np
b25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25J
dGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoc2Vzc2lvbklEKTsK
KyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Pjo6
Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXMuZmluZChzZXNzaW9uSUQpOwogICAgIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT46OmNv
bnN0X2l0ZXJhdG9yIGl0OwogICAgIGJvb2wgY29udGFpbnMgPSBmYWxzZTsKIApAQCAtODExLDcg
KzgxMSw3IEBAIGJvb2wgV2ViUHJvY2Vzczo6aXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVu
c2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFNlc3Npb25JCiAgICAgICAgIGNvbnRhaW5zID0gaXQg
IT0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKTsKICAgICB9CiAgICAgaWYgKCFjb250YWlu
cykgewotICAgICAgICBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2hlcy5maW5kKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICAgICAgc2Vzc2lv
bkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZmluZChQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICAgICAgaXQgPSBzZXNzaW9uSXRlcmF0b3It
PnZhbHVlLmZpbmQocGx1Z0luT3JpZ2luSGFzaCk7CiAgICAgICAgIGlmIChpdCA9PSBzZXNzaW9u
SXRlcmF0b3ItPnZhbHVlLmVuZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODM2
LDcgKzgzNiw3IEBAIGJvb2wgV2ViUHJvY2Vzczo6c2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9y
aWdpbihXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBTdHJpbmcmCiAgICAgcmV0dXJuIGlzUGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaChoYXNoRm9yUGx1Z0luT3JpZ2luKHBhZ2VPcmlnaW4sIHBsdWdp
bk9yaWdpbiwgbWltZVR5cGUpLCB3ZWJQYWdlLnNlc3Npb25JRCgpKTsKIH0KIAotdm9pZCBXZWJQ
cm9jZXNzOjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2lu
LCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgU2Vz
c2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6cGx1Z0luRGlkU3RhcnRGcm9tT3Jp
Z2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4s
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAg
ICBpZiAocGFnZU9yaWdpbi5pc0VtcHR5KCkpIHsKICAgICAgICAgTE9HKFBsdWdpbnMsICJOb3Qg
YWRkaW5nIGVtcHR5IHBhZ2Ugb3JpZ2luIik7CkBAIC04NTgsNyArODU4LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2lu
LCBjb25zdCBTdHJpbmcKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUG9vbDo6QWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChwYWdlT3Jp
Z2luLCBwbHVnSW5PcmlnaW5IYXNoLCBzZXNzaW9uSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9j
ZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdp
bkhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQg
V2ViUHJvY2Vzczo6ZGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVn
SW5PcmlnaW5IYXNoLCBkb3VibGUgZXhwaXJhdGlvblRpbWUsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKIHsKICAgICAvLyBXaGVuIGNhbGxlZCwgc29tZSB3ZWIgcHJvY2VzcyAod2hpY2ggYWxz
byBtaWdodCBiZSB0aGlzIG9uZSkgYWRkZWQgdGhlIG9yaWdpbiBmb3IgYXV0by1zdGFydGluZywK
ICAgICAvLyBvciByZWNlaXZlZCB1c2VyIGludGVyYWN0aW9uLgpAQCAtODY5LDE1ICs4NjksMTUg
QEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2ln
bmVkIHBsdWdJbk9yaWdpbkhhc2gsIGRvdWIKIHZvaWQgV2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5B
dXRvU3RhcnRPcmlnaW5EZWZhdWx0SGFzaGVzKGNvbnN0IEhhc2hNYXA8dW5zaWduZWQsIGRvdWJs
ZT4mIGhhc2hlcykKIHsKICAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5jbGVhcigp
OwotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKS5pdGVyYXRvci0+dmFs
dWUuc3dhcChjb25zdF9jYXN0PEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4mPihoYXNoZXMpKTsK
KyAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKS5pdGVyYXRvci0+
dmFsdWUuc3dhcChjb25zdF9jYXN0PEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4mPihoYXNoZXMp
KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hl
cyhjb25zdCBIYXNoTWFwPFNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4mIGhh
c2hlcykKK3ZvaWQgV2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMo
Y29uc3QgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4m
IGhhc2hlcykKIHsKLSAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5zd2FwKGNvbnN0
X2Nhc3Q8SGFzaE1hcDxTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+Jj4oaGFz
aGVzKSk7CisgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuc3dhcChjb25zdF9jYXN0
PEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+Jj4oaGFz
aGVzKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFj
dGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJQ
cm9jZXNzOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFn
ZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAocGFnZU9yaWdpbi5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTg4Niw3ICs4ODYsNyBAQCB2b2lkIFdlYlByb2Nl
c3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3Jp
Z2luLCBjb25zdAogICAgIGlmICghcGx1Z0luT3JpZ2luSGFzaCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJs
ZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwg
SGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25JdGVyYXRv
ciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoc2Vzc2lvbklEKTsKICAgICBI
YXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Ojpjb25zdF9pdGVyYXRvciBpdDsKICAgICBib29sIGNv
bnRhaW5zID0gZmFsc2U7CiAgICAgaWYgKHNlc3Npb25JdGVyYXRvciAhPSBtX3BsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2hlcy5lbmQoKSkgewpAQCAtODk0LDcgKzg5NCw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcmIHBhZ2VP
cmlnaW4sIGNvbnN0CiAgICAgICAgIGNvbnRhaW5zID0gaXQgIT0gc2Vzc2lvbkl0ZXJhdG9yLT52
YWx1ZS5lbmQoKTsKICAgICB9CiAgICAgaWYgKCFjb250YWlucykgewotICAgICAgICBzZXNzaW9u
SXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKFNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICAgICAgc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5B
dXRvU3RhcnRPcmlnaW5IYXNoZXMuZmluZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKTsKICAgICAgICAgaXQgPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmZpbmQocGx1Z0luT3Jp
Z2luSGFzaCk7CiAgICAgICAgIGlmIChpdCA9PSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmVuZCgp
KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTIzMiw3ICsxMjMyLDcgQEAgdm9pZCBXZWJQcm9j
ZXNzOjpyZWxlYXNlUGFnZUNhY2hlKCkKICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnBydW5l
VG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok1lbW9yeVByZXNzdXJlKTsKIH0KIAotdm9pZCBX
ZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdlYnNpdGVEYXRh
JiB3ZWJzaXRlRGF0YSkKK3ZvaWQgV2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIFdlYnNpdGVEYXRhJiB3ZWJzaXRlRGF0YSkKIHsKICAgICBpZiAod2Vic2l0ZURhdGFU
eXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewogICAgICAgICBm
b3IgKGF1dG8mIG9yaWdpbiA6IE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5vcmlnaW5zV2l0aENh
Y2hlKHNlc3Npb25JRCkpCkBAIC0xMjQ1LDcgKzEyNDUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZl
dGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdAogICAgIH0KIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2Up
Cit2b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpj
aHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlKQogewogICAgIFVO
VVNFRF9QQVJBTShtb2RpZmllZFNpbmNlKTsKIApAQCAtMTI2Miw3ICsxMjYyLDcgQEAgdm9pZCBX
ZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXAKICAgICB9CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcykKK3ZvaWQgV2ViUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzKQogewogICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6TWVtb3J5Q2FjaGUpKSB7CiAgICAg
ICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDEyM2M0YmIxOThjLi4zYjUzMzBkMjQ1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5j
bHVkZSAiV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQWN0aXZpdHlTdGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSHlzdGVyZXNpc0FjdGl2aXR5
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Rp
bWVyLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CkBAIC01NiwxMyArNTYsMTYgQEAgbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBPYmpl
Y3Q7CiB9CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKIGNsYXNzIENQVU1v
bml0b3I7CiBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBQYWdlR3JvdXA7CiBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7Ci1jbGFzcyBTZXNzaW9uSUQ7CiBjbGFzcyBVc2VyR2VzdHVyZVRva2Vu
Owogc3RydWN0IFBsdWdpbkluZm87CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAtMTI2
LDggKzEyOSw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgYm9vbCBzaG91bGRQbHVnSW5BdXRv
U3RhcnRGcm9tT3JpZ2luKFdlYlBhZ2UmLCBjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0
IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKLSAgICB2b2lk
IHBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0
IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpT
ZXNzaW9uSUQpOwotICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihjb25z
dCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgcGx1Z0luRGlk
U3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBw
bHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lvbklEKTsKKyAg
ICB2b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdl
T3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeSh1
aW50OF90IHBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZyk7CiAgICAgdm9pZCByZXNldFBs
dWdpbkxvYWRDbGllbnRQb2xpY2llcyhjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJp
bmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+Jik7CiAgICAgdm9pZCBjbGVhclBsdWdpbkNs
aWVudFBvbGljaWVzKCk7CkBAIC0xNzAsMTAgKzE3MywxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldENhY2hlTW9kZWwodWludDMyX3QpOwogCi0gICAgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBlbnN1cmVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIGVuc3VyZUxlZ2FjeVByaXZh
dGVCcm93c2luZ1Nlc3Npb25Jbk5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCBhZGRXZWJzaXRl
RGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYpOwotICAgIHZvaWQgZGVzdHJv
eVNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRlc3Ryb3lTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgcGFnZURpZEVudGVyV2luZG93KHVpbnQ2NF90IHBh
Z2VJRCk7CiAgICAgdm9pZCBwYWdlV2lsbExlYXZlV2luZG93KHVpbnQ2NF90IHBhZ2VJRCk7CkBA
IC0yNjIsMTAgKzI2NSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXNlclByZWZlcnJlZExhbmd1
YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKICAgICB2b2lkIGZ1bGxL
ZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCk7
CiAKLSAgICBib29sIGlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5P
cmlnaW5IYXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgZGlkQWRkUGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBkb3VibGUgZXhwaXJh
dGlvblRpbWUsIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgYm9vbCBpc1BsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQpOwor
ICAgIHZvaWQgZGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5P
cmlnaW5IYXNoLCBkb3VibGUgZXhwaXJhdGlvblRpbWUsIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2
b2lkIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhjb25zdCBIYXNoTWFw
PHVuc2lnbmVkLCBkb3VibGU+JiBoYXNoZXMpOwotICAgIHZvaWQgcmVzZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoZXMoY29uc3QgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hNYXA8
dW5zaWduZWQsIGRvdWJsZT4+JiBoYXNoZXMpOworICAgIHZvaWQgcmVzZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoZXMoY29uc3QgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNp
Z25lZCwgZG91YmxlPj4mIGhhc2hlcyk7CiAKICAgICB2b2lkIHBsYXRmb3JtU2V0Q2FjaGVNb2Rl
bChDYWNoZU1vZGVsKTsKIApAQCAtMjkzLDkgKzI5Niw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IHJlbGVhc2VQYWdlQ2FjaGUoKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3Jl
OjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXZWJzaXRlRGF0YSYpOwot
ICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBt
b2RpZmllZFNpbmNlKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJD
b3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucyk7CisgICAgdm9pZCBmZXRjaFdl
YnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2Vi
c2l0ZURhdGEmKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGlt
ZV9wb2ludCBtb2RpZmllZFNpbmNlKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2lucyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zKTsKIAogICAgIHZvaWQg
c2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChib29sKTsKIApAQCAtMzU1LDcgKzM1OCw3IEBAIHByaXZh
dGU6CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlcj4g
bV93ZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyOwogCi0gICAgSGFzaE1hcDxXZWJDb3Jl
OjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+IG1fcGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWdu
ZWQsIGRvdWJsZT4+IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzOwogICAgIEhhc2hTZXQ8
U3RyaW5nPiBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbnM7CiAKICAgICBib29sIG1faGFzU2V0Q2Fj
aGVNb2RlbCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IDgxZjg4N2QxYjRlLi4wOGY2OTcxMzcwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTQ3LDE0
ICs0NywxNCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAg
IENsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKQogCi0gICAgRW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIEVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIEFkZFdlYnNpdGVEYXRh
U3RvcmUoc3RydWN0IFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgd2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMpOwotICAgIERlc3Ryb3lTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCisgICAgRGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogCiAgICAgIyBQbHVnLWlucy4KLSAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
KHVpbnQzMl90IGhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKKyAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVpbnQzMl90
IGhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhIYXNoTWFwPHVpbnQz
Ml90LGRvdWJsZT4gaGFzaGVzKQotICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
KEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVpbnQzMl90LGRvdWJsZT4+IGhh
c2hlcykKKyAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhIYXNoTWFwPFBBTDo6
U2Vzc2lvbklELCBIYXNoTWFwPHVpbnQzMl90LGRvdWJsZT4+IGhhc2hlcykKICAgICBTZXRQbHVn
aW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3QgcG9saWN5LCBTdHJpbmcgaG9zdCwgU3RyaW5nIGJ1
bmRsZUlkZW50aWZpZXIsIFN0cmluZyB2ZXJzaW9uU3RyaW5nKQogICAgIFJlc2V0UGx1Z2luTG9h
ZENsaWVudFBvbGljaWVzKEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxT
dHJpbmcsIHVpbnQ4X3Q+Pj4gcGx1Z2luTG9hZENsaWVudFBvbGljaWVzKQogICAgIENsZWFyUGx1
Z2luQ2xpZW50UG9saWNpZXMoKQpAQCAtNzcsOSArNzcsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9j
ZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFJlbGVhc2VQYWdlQ2FjaGUoKQogCi0gICAgRmV0
Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
S2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+IChzdHJ1Y3QgV2ViS2l0
OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKLSAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+
IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQg
bW9kaWZpZWRTaW5jZSkgLT4gKCkKLSAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFU
eXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
PiBvcmlnaW5zKSAtPiAoKQorICAgIEZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlw
ZXMpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKKyAgICBEZWxl
dGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6
OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlKSAtPiAoKQorICAgIERlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6
OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgLT4gKCkKIAogICAgIFNldEhpZGRlblBhZ2VET01UaW1l
clRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiAgICAgU2V0UHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZChib29sIGZsYWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDIx
OTI3OGEwOTc0Li42OGQ1YTkyYjcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxNy0wOC0xNSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgor
CisgICAgICAgIFtQQUxdIE1vdmUgU2Vzc2lvbklEIGludG8gUEFMCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQxOTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VQcm92
aWRlci5jcHA6CisgICAgICAgIChXZWJEYXRhYmFzZVByb3ZpZGVyOjppZGJDb25uZWN0aW9uVG9T
ZXJ2ZXJGb3JTZXNzaW9uKToKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIu
aDoKKwogMjAxNy0wOC0xMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlc3RvcmVkIHN2bjppZ25vcmUgdmFsdWVzIHRoYXQgd2VudCBtaXNzaW5nIHdoZW4gdGhl
IHByb2plY3QgZ290IHJlbmFtZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0
b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3Jh
Z2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggNGQ5NTk2NzA4ZDQuLmQzNzEyM2NmZWFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92
aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJv
dmlkZXIuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJXZWJEYXRhYmFzZVByb3Zp
ZGVyLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9p
ZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBXZWJEYXRhYmFzZVByb3ZpZGVyJiBXZWJEYXRhYmFz
ZVByb3ZpZGVyOjpzaW5nbGV0b24oKQogewpAQCAtNDMsNyArNDMsNyBAQCBXZWJEYXRhYmFzZVBy
b3ZpZGVyOjp+V2ViRGF0YWJhc2VQcm92aWRlcigpCiB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKLVdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBXZWJE
YXRhYmFzZVByb3ZpZGVyOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFdl
YkNvcmU6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQorV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uVG9TZXJ2ZXImIFdlYkRhdGFiYXNlUHJvdmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZl
ckZvclNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkKIHsKICAgICBhdXRv
IHJlc3VsdCA9IG1faWRiU2VydmVyTWFwLmFkZChzZXNzaW9uSUQuc2Vzc2lvbklEKCksIG51bGxw
dHIpOwogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKaW5kZXggMmE0ZWI5NDZlZjYuLjNm
NTA2ZDc2YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0
YWJhc2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRh
YmFzZVByb3ZpZGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldl
YkRhdGFiYXNlUHJvdmlkZXIoKTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAg
IFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9u
VG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYpIG92ZXJyaWRlOwor
ICAgIFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0
aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIGRlbGV0ZUFsbERhdGFiYXNlcygpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggZDRlODIwNzY2MDIuLjBiNzNkNjNhNjI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAKIDIwMTctMDgtMTUgIERvbiBPbG1zdGVhZCAg
PGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAorICAgICAgICBbUEFMXSBNb3ZlIFNlc3Npb25JRCBp
bnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBNaXNjL1dlYkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJDYWNoZSBpbWFnZUZvclVSTDpdKToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24pOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZh
dGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
c3RvcmFnZVNlc3Npb24gY29uc3QpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAqIFdlYktpdFByZWZpeC5oOgorCisyMDE3LTA4
LTE1ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CisKICAgICAgICAgW1BB
TF0gTW92ZSBTbGVlcCBjbGFzc2VzIGludG8gUEFMCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0NTYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJDYWNoZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01p
c2MvV2ViQ2FjaGUubW0KaW5kZXggMmY1MDgyODc1MGQuLjI0MWJhMmY3MWJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNhY2hlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0KQEAgLTE5MSw3ICsxOTEsNyBAQAogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCh1cmwpOwotICAgIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJj
ZSA9IFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5yZXNvdXJjZUZvclJlcXVlc3Qo
cmVxdWVzdCwgV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IFdlYkNvcmU6Ok1lbW9yeUNh
Y2hlOjpzaW5nbGV0b24oKS5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgaWYgKCFpczxXZWJDb3JlOjpDYWNoZWRJbWFn
ZT4oY2FjaGVkUmVzb3VyY2UpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBXZWJDb3Jl
OjpDYWNoZWRJbWFnZSYgY2FjaGVkSW1hZ2UgPSBkb3duY2FzdDxXZWJDb3JlOjpDYWNoZWRJbWFn
ZT4oKmNhY2hlZFJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDBmZjc3
YzBiZjVhLi43N2VmZDEyZjUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zOCw2
ICszOCwxMCBAQAogQGNsYXNzIFdlYkhpc3RvcnlJdGVtOwogQGNsYXNzIFdlYlJlc291cmNlOwog
CituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBDYWNoZWRGcmFtZTsK
QEAgLTQ1LDcgKzQ5LDYgQEAgY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBQcm90ZWN0aW9uU3Bh
Y2U7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKLWNsYXNz
IFNlc3Npb25JRDsKIH0KIAogY2xhc3MgV2ViRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnQgewpAQCAtNzEsNyArNzQsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MigpIGZpbmFsOwogICAgIHZvaWQgZGV0YWNoZWRGcm9t
UGFyZW50MygpIGZpbmFsOwogCi0gICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93
bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7
CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCAxZWQwOWY3OGZkMC4uN2I0ZmQxMzA5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGV0YWNoZWRG
cm9tUGFyZW50MygpCiAgICAgbV93ZWJGcmFtZS0+X3ByaXZhdGUtPndlYkZyYW1lVmlldyA9IG5p
bDsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxv
YWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwgU2Vzc2lvbklELCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxv
YWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwgUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJG
cmFtZS5nZXQoKSk7CiAgICAgU3VicmVzb3VyY2VMb2FkZXIqIG1haW5SZXNvdXJjZUxvYWRlciA9
IGRvY3VtZW50TG9hZGVyLT5tYWluUmVzb3VyY2VMb2FkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDE4NjVjYTk5ZmQyLi5iYTI4MTEyN2M4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0zMiw4ICszMiw4IEBACiAjaW1w
b3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbXBvcnQgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW1wb3J0IDxw
YWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC00NiwxNCArNDYsMTQgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKTsKLSAgICByZXR1cm4gKk5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKCkpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKTsKKyAgICByZXR1cm4gKk5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQoKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7Ci0gICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZXN0cm95U2Vzc2lvbihTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisgICAgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKTsKIH0KIAogYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QKQEAgLTk0LDcgKzk0LDcgQEAgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBpZiAoZnJhbWUoKSAmJiBm
cmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpIHsKLSAgICAgICAgaWYg
KGF1dG8qIHNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFNl
c3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSkKKyAgICAgICAgaWYgKGF1dG8qIHNl
c3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKQogICAgICAgICAgICAgcmV0dXJuICpzZXNz
aW9uOwogICAgICAgICAvLyBTb21lIHJlcXVlc3RzIG1heSBzdGlsbCBiZSBjb21pbmcgc2hvcnRs
eSBiZWZvcmUgV2ViQ29yZSB1cGRhdGVzIHRoZSBzZXNzaW9uIElEIGFuZCBhZnRlciBXZWJLaXQg
ZGVzdHJveXMgdGhlIHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbi4KICAgICAgICAgTE9HX0VSUk9S
KCJJbnZhbGlkIHNlc3Npb24gSUQuIFBsZWFzZSBmaWxlIGEgYnVnIHVubGVzcyB5b3UganVzdCBk
aXNhYmxlZCBwcml2YXRlIGJyb3dzaW5nLCBpbiB3aGljaCBjYXNlIGl0J3MgYW4gZXhwZWN0ZWQg
cmFjZS4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggYWIyNjRhNmQyMWMuLmY5
MGZjZjAyYTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNTIsNyArNTIsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICBib29sIGNvb2tp
ZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAg
ICAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7Ci0gICAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKKyAgICBTdHJpbmcgY29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBn
ZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4
IDlhYWZhNTFmZjFjLi4xYWMyZTFlYzBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5t
bQpAQCAtOTMsNyArOTMsNyBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZQogICAgIHJldHVybiBX
ZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uLCBmaXJzdFBhcnR5
LCB1cmwpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFVSTCYgdXJsKQorU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQogewogICAgIGF1dG8mIHNlc3Npb24gPSBz
ZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSA/IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSA6IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVs
dFN0b3JhZ2VTZXNzaW9uKCk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJLaXRQcmVmaXguaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYktpdFByZWZpeC5oCmluZGV4IDc1M2Q5NzdiYjgyLi4zZGJkMmE4NjM1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViS2l0UHJlZml4LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViS2l0UHJlZml4LmgKQEAgLTgzLDcgKzgzLDcgQEAgdHlwZWRl
ZiBmbG9hdCBDR0Zsb2F0OwogI2VuZGlmCiAjZW5kaWYKIAotI2luY2x1ZGUgPHd0Zi9QbGF0Zm9y
bS5oPgorI2luY2x1ZGUgPHBhbC9FeHBvcnRNYWNyb3MuaD4KICNpbmNsdWRlIDx3dGYvRXhwb3J0
TWFjcm9zLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0V4cG9ydE1hY3Jvcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1FeHBvcnRNYWNyb3MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwppbmRleCBjZjY2MjVmOWIxZi4uMDE4ZmYyNTY3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNy0wOC0xNSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9s
bXN0ZWFkQHNvbnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgU2Vzc2lvbklEIGludG8gUEFM
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQxOTIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRDb29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyk6
CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OnN0b3JhZ2VTZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIwMTctMDgtMTUgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDYWNoZSBBUEldIEFkZGluZyBnZW5lcmljIHN1
cHBvcnQgZm9yIENhY2hlU3RvcmFnZSBhbmQgQ2FjaGUgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCmluZGV4IDMyYWI4MmU2NDQ3Li5kZTI4NjE0NzAyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRldGFjaGVkRnJvbVBhcmVudDMoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIsIFNlc3Npb25JRCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIsIFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogewogICAgIENPTVB0cjxJV2ViRG93bmxvYWREZWxlZ2F0ZT4gZG93bmxvYWREZWxl
Z2F0ZTsKICAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAppbmRleCBmZjBkOTRlODZlMi4uYWQzZDY2ZTA5MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXRhY2hlZEZyb21Q
YXJlbnQyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQzKCkgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRl
OworICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKICAgICB2
b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmNwcAppbmRleCAwOTAzYjg2NWQ2OS4uODU5M2IyYjAwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6c2V0Q29va2llQWNjZXB0UG9saWN5Rm9yQWxsQ29udGV4dHMoV2ViS2l0
Q29va2llCiAgICAgaWYgKFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBjb29raWVT
dG9yYWdlID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5j
b29raWVTdG9yYWdlKCkpCiAgICAgICAgIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVBY2Nl
cHRQb2xpY3koY29va2llU3RvcmFnZS5nZXQoKSwgcG9saWN5KTsKIAotICAgIGlmIChhdXRvIHBy
aXZhdGVTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpCisgICAgaWYgKGF1dG8gcHJpdmF0ZVNl
c3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKQogICAgICAgICBDRkhUVFBDb29raWVTdG9y
YWdlU2V0Q29va2llQWNjZXB0UG9saWN5KHByaXZhdGVTZXNzaW9uLT5jb29raWVTdG9yYWdlKCku
Z2V0KCksIHBvbGljeSk7CiB9CiAjZW5kaWYKQEAgLTcwLDcgKzcwLDcgQEAgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKCkKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKLSAgICBpZiAoYXV0byBwcml2YXRlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KCkpKQorICAgIGlmIChhdXRvIHByaXZhdGVTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
KSkKICAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vzc2lvbjsKIAogICAgIFN0cmluZyBiYXNlOwpA
QCAtODEsMTcgKzgxLDE3IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiAgICAgfSBlbHNlCiAg
ICAgICAgIGJhc2UgPSBpZGVudGlmaWVyQmFzZSgpOwogCi0gICAgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpLCBiYXNlKTsKKyAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQoKSwgYmFzZSk7CiAKICNlbmRpZgotICAgIHJldHVybiAqTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7Cisg
ICAgcmV0dXJuICpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogfQogCiB2b2lkIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZXN0
cm95U2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisgICAgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCgpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBj
b25zdApAQCAtMTA0LDcgKzEwNCw3IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKICAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdlKCktPnVzZXNF
cGhlbWVyYWxTZXNzaW9uKCkpCi0gICAgICAgIHJldHVybiAqTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7Cisg
ICAgICAgIHJldHVybiAqTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihQQUw6
OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKIAogICAgIHJldHVybiBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggNGNlOGM5OThhNDEuLjFjMzQ2MTg3NTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3Qg
TmV0d29ya1N0b3JhZ2UKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCkK
K1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmIHVybCkKIHsKICAgICBhdXRvJiBzZXNzaW9uID0gc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCkgPyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKCkgOiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwog
ICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9u
LCBmaXJzdFBhcnR5LCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAyYzEz
OTI3MDVlZS4uMTY0MzdmNTUwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC00
OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXNGcm9tRE9N
KGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dmlydHVhbCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
VVJMJik7CiAgICAgdmlydHVhbCBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
Y29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJik7CisgICAgdmlydHVh
bCBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJik7CiAgICAg
dmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpV
UkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVD
b29raWUoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318300</attachid>
            <date>2017-08-16 16:07:19 -0700</date>
            <delta_ts>2017-08-16 16:42:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174192.diff</filename>
            <type>text/plain</type>
            <size>384735</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDY3ZGQ3ZDRjODQuLmY1NDI4NjIyZDZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjE1OCw3ICsyMTU4LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEu
Y3BwCiAgICAgcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKLSAgICBwYWdlL1Nlc3Npb25JRC5jcHAK
ICAgICBwYWdlL1NldHRpbmdzLmNwcAogICAgIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCiAgICAg
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MjNhMGZjNWUxNC4uYjhl
ZTRjOGJjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTIgQEAKKzIwMTctMDgtMTYgIERvbiBP
bG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBbUEFMXSBNb3ZlIFNl
c3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0
KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXNzaW9u
SUQgY29uc3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVsZW1lbnRXaXRoSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVu
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrc0FyZVJlYWR5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFMb2FkaW5nRmFpbGVkRmF0YWxseSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUxvYWRpbmdGYWlsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphZGRQbGF5ZWRSYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWVrVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpyZWZyZXNoQ2FjaGVkVGltZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFdlYmtpdFByZXNlcnZlc1BpdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojp0b2dnbGVQbGF5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6YmVnaW5TY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlbW92ZVRleHRUcmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpjb250cm9sbGVySlNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50Ojpjb25maWd1cmVUZXh0VHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojpzb3VyY2VXYXNBZGRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50Ojpzb3VyY2VXYXNSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cG90ZW50aWFsbHlQbGF5aW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkUGxheWJhY2sgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RvcHBlZER1ZVRvRXJyb3JzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6aXNGdWxsc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnRvZ2dsZVN0YW5kYXJkRnVsbHNjcmVlblN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJlZEZvcklubGluZVRoZW4pOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlVGV4dFRyYWNrRGlzcGxheSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFj
a0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFH
cm91cCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVy
Rm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aXNCbG9j
a2VkT25NZWRpYUNvbnRyb2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cHJlcGFyZU1lZGlhRnJhZ21lbnRVUkkpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpmaWxlU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVNlc3Npb25UaXRsZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpuZWVkc1NlZWtpbmdTdXBwb3J0UXVpcmspOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6c3VwcG9ydHNTZWVraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmRvZXNIYXZlQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmlzVmlkZW9Ub29TbWFsbEZvcklubGluZVBsYXliYWNr
KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZEZvbnQ6OkNhY2hlZEZvbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250
Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2Vz
c2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0Rv
Y3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0RvY3VtZW50Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udCk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6Q2Fj
aGVkU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0Lmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFRleHRUcmFjay5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xT
dHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhTTFN0eWxlU2hlZXQ6OkNh
Y2hlZFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHls
ZVNoZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpzZXNzaW9uUmVzb3VyY2VNYXAgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpmb3JFYWNoU2Vzc2lvblJlc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6b3JpZ2luc1dpdGhDYWNoZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZpY3RSZXNvdXJjZXMpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25p
dG9yQ29jb2EuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6OnNlc3Npb25J
RCBjb25zdCk6CisgICAgICAgICogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2lu
Z1N0b3JlQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6RGlz
a0NhY2hlTW9uaXRvcik6CisgICAgICAgICogcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oOgor
ICAgICAgICAqIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmVuYWJsZUxlZ2FjeVByaXZhdGVCcm93c2luZyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vzc2lvbklE
KToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1BsdWdJbkNsaWVudC5o
OgorICAgICAgICAqIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6CisgICAgICAgICogcGFn
ZS9Tb2NrZXRQcm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL0Nvb2tpZXNTdHJhdGVneS5o
OgorICAgICAgICAqIHBsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHA6CisgICAg
ICAgIChXVEY6OlBBTDo6U2Vzc2lvbklEPjo6Y29weSk6CisgICAgICAgIChXVEY6OldlYkNvcmU6
OlNlc3Npb25JRD46OmNvcHkpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1dlYkNvcmVD
cm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhlYWRlclZhbHVlRm9yVmFyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OnZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb246Omdsb2JhbFNlc3Npb25NYXApOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3Jh
Z2VTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVT
ZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
Q0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29j
a2V0U3RyZWFtSGFuZGxlSW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Nv
Y2tldFN0cmVhbUhhbmRsZUltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhh
bmRsZUltcGw6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3
VGVzdGluZ1Nlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVh
bUhhbmRsZUltcGw6OmNyZWF0ZSk6CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRocmVhZDo6
RGVkaWNhdGVkV29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVk
aWNhdGVkV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxT
Y29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkU3RhcnR1cERh
dGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6V29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25QYXJhbWV0ZXJz
Lmg6CisKIDIwMTctMDgtMTYgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3
YUBzb255LmNvbT4KIAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9pb3MgYW5kIHNwaS93aW4gZGly
ZWN0b3JpZXMgaW50byBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBmMTIxZTI1MWRjYy4uN2I1MWVjMzE0
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmNvbm5lY3QoY29uc3QgVVJMJiByZXF1ZXN0ZWRVUkwsIGNvbnN0IFN0cmluZyYgcHJvdG9j
b2wpCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAg
ICAgcmVmKCk7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgICAgICBT
ZXNzaW9uSUQgc2Vzc2lvbklEID0gcGFnZSA/IHBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCA9
IHBhZ2UgPyBwYWdlLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCk7CiAgICAgICAgIFN0cmluZyBwYXJ0aXRpb24gPSBtX2RvY3VtZW50LT50b3BEb2N1bWVu
dCgpLnNlY3VyaXR5T3JpZ2luKCkuZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oKTsKICAgICAgICAg
bV9oYW5kbGUgPSBtX3NvY2tldFByb3ZpZGVyLT5jcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUobV9o
YW5kc2hha2UtPnVybCgpLCAqdGhpcywgc2Vzc2lvbklELCBwYXJ0aXRpb24pOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IDY2NmZhNjQyZGY5Li40NDA5MTY0NDU3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMDgtMTYgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBbUEFMXSBNb3ZlIFNlc3Npb25JRCBpbnRvIFBB
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTky
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogcGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmNwcDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmNwcC4KKyAgICAgICAgKiBwYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklE
LmguCisgICAgICAgIChXVEY6OlNlc3Npb25JREhhc2g6Omhhc2gpOgorICAgICAgICAoV1RGOjpT
ZXNzaW9uSURIYXNoOjplcXVhbCk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8UEFMOjpTZXNz
aW9uSUQ+OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxQQUw6OlNlc3Np
b25JRD46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
UEFMOjpTZXNzaW9uSUQ+Ojppc0RlbGV0ZWRWYWx1ZSk6CisKIDIwMTctMDgtMTYgIFlvc2hpYWtp
IEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255LmNvbT4KIAogICAgICAgICBbUEFM
XSBNb3ZlIHNwaS9pb3MgYW5kIHNwaS93aW4gZGlyZWN0b3JpZXMgaW50byBQQUwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ODZi
NzcwOTA2My4uYjViMWE5YmYzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc0LDYgKzc0LDggQEAKIAkJQTMwRDQxMjExRjBE
RDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMzBENDExRTFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCAq
LzsgfTsKIAkJQTMwRDQxMjIxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nTm9uZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzBENDExRjFGMERE
MEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNwcCAqLzsgfTsKIAkJQTMwRDQxMjUxRjBERDEy
RDAwQjcxOTU0IC8qIEtpbGxSaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMjQxRjBERDEyRDAwQjcxOTU0IC8qIEtpbGxSaW5nTWFj
Lm1tICovOyB9OworCQlBMzE1ODgyRTFGNDRGODA1MDA2REIxNkQgLyogU2Vzc2lvbklELmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMTU4ODJDMUY0
NEY4MDUwMDZEQjE2RCAvKiBTZXNzaW9uSUQuY3BwICovOyB9OworCQlBMzE1ODgyRjFGNDRGODA1
MDA2REIxNkQgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMzE1ODgyRDFGNDRGODA1MDA2REIxNkQgLyogU2Vzc2lvbklELmggKi87
IH07CiAJCUEzNzg4RTk4MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTM3ODhFOTcxRjA1QjZDRTAwNjc5NDI1
IC8qIFNvdW5kLmggKi87IH07CiAJCUEzNzg4RTlDMUYwNUI3ODIwMDY3OTQyNSAvKiBTb3VuZE5v
bmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTM3
ODhFOUIxRjA1Qjc4MjAwNjc5NDI1IC8qIFNvdW5kTm9uZS5jcHAgKi87IH07CiAJCUEzNzg4RTlF
MUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzNzg4RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1h
Yy5tbSAqLzsgfTsKQEAgLTE1Nyw2ICsxNTksOCBAQAogCQlBMzBENDExRTFGMEREMEVBMDBCNzE5
NTQgLyogS2lsbFJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2lsbFJp
bmcuaDsgcGF0aCA9IHRleHQvS2lsbFJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTMwRDQxMUYxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nTm9uZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBLaWxsUmluZ05vbmUuY3BwOyBwYXRoID0gdGV4
dC9LaWxsUmluZ05vbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMzBENDEy
NDFGMEREMTJEMDBCNzE5NTQgLyogS2lsbFJpbmdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBLaWxsUmluZ01hYy5tbTsgcGF0aCA9IHRleHQvbWFjL0tpbGxS
aW5nTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMzE1ODgyQzFGNDRGODA1
MDA2REIxNkQgLyogU2Vzc2lvbklELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFNlc3Npb25JRC5jcHA7IHBhdGggPSBpZGVudGlmaWVyL1Nlc3Npb25JRC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEzMTU4ODJEMUY0NEY4MDUwMDZEQjE2RCAvKiBT
ZXNzaW9uSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2Vzc2lvbklELmg7
IHBhdGggPSBpZGVudGlmaWVyL1Nlc3Npb25JRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMzc4OEU5NzFGMDVCNkNFMDA2Nzk0MjUgLyogU291bmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gU291bmQuaDsgcGF0aCA9IHN5c3RlbS9Tb3VuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMzc4OEU5QjFGMDVCNzgyMDA2Nzk0MjUgLyogU291bmRO
b25lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNvdW5kTm9uZS5j
cHA7IHBhdGggPSBzeXN0ZW0vU291bmROb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTM3ODhFOUQxRjA1Qjc4RTAwNjc5NDI1IC8qIFNvdW5kTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gU291bmRNYWMubW07IHBhdGggPSBzeXN0ZW0v
bWFjL1NvdW5kTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg5LDYgKzI5
Myw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFDMDlEMDUx
MUUzMUM0MTIwMDcyNUYxOCAvKiBjcnlwdG8gKi8sCisJCQkJQTMxNTg4MkIxRjQ0RjdGMDAwNkRC
MTZEIC8qIGlkZW50aWZpZXIgKi8sCiAJCQkJMEMyREEwNjUxRjMzQ0EzMzAwREJDMzE3IC8qIHNw
aSAqLywKIAkJCQlBMzc4OEU5RjFGMDVCN0NFMDA2Nzk0MjUgLyogc3lzdGVtICovLAogCQkJCUEz
MEQ0MTFEMUYwREQwQUMwMEI3MTk1NCAvKiB0ZXh0ICovLApAQCAtMzQ1LDYgKzM1MCwxNSBAQAog
CQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUEzMTU4
ODJCMUY0NEY3RjAwMDZEQjE2RCAvKiBpZGVudGlmaWVyICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlBMzE1ODgyQzFGNDRGODA1MDA2REIxNkQgLyogU2Vz
c2lvbklELmNwcCAqLywKKwkJCQlBMzE1ODgyRDFGNDRGODA1MDA2REIxNkQgLyogU2Vzc2lvbklE
LmggKi8sCisJCQkpOworCQkJbmFtZSA9IGlkZW50aWZpZXI7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQlBMzc4OEU5RjFGMDVCN0NFMDA2Nzk0MjUgLyogc3lzdGVtICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTQzMyw2ICs0NDcsNyBA
QAogCQkJCTBDMkRBMTU3MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpDb3JlU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwQzVBRjkyMDFGNDNBNEM3MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE1ODFGM0JFQjQ5MDBEQkMzMTcgLyogU2VydmVyc1NQ
SS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTMxNTg4MkYxRjQ0RjgwNTAwNkRCMTZEIC8qIFNlc3Np
b25JRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTNBQjZFNTYxRjNEMUREQjAwOUMxNEIxIC8qIFNs
ZWVwRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUEzQUI2RTYxMUYzRDFFMzkwMDlDMTRC
MSAvKiBTbGVlcERpc2FibGVyQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCUEzNzg4RTk4MUYw
NUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC01MzIsNiArNTQ3LDcg
QEAKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5
cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBL
aWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0MTIyMUYwREQwRUEwMEI3MTk1
NCAvKiBLaWxsUmluZ05vbmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTMxNTg4MkUxRjQ0Rjgw
NTAwNkRCMTZEIC8qIFNlc3Npb25JRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0FCNkU1MjFG
M0QxREM1MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
M0FCNkU2MDFGM0QxRTM5MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlckNvY29hLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUEzNzg4RTlFMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvQ01ha2VMaXN0cy50eHQKaW5kZXggNjE0M2U5
NGY1OTEuLmU5YjA1YzJjM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvQ01ha2VMaXN0cy50eHQK
QEAgLTEsNCArMSw1IEBACiBzZXQoUEFMX1NPVVJDRVMKKyAgICBpZGVudGlmaWVyL1Nlc3Npb25J
RC5jcHAKICAgICBzeXN0ZW0vU2xlZXBEaXNhYmxlci5jcHAKICAgICBzeXN0ZW0vU3lzdGVtU2xl
ZXBMaXN0ZW5lci5jcHAKICkKQEAgLTEwLDYgKzExLDcgQEAgc2V0KFBBTF9JTkNMVURFX0RJUkVD
VE9SSUVTCiBzZXQoUEFMX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1BBTF9E
SVJ9L3BhbCIKICAgICAiJHtQQUxfRElSfS9wYWwvY3J5cHRvIgorICAgICIke1BBTF9ESVJ9L3Bh
bC9pZGVudGlmaWVyIgogICAgICIke1BBTF9ESVJ9L3BhbC9zeXN0ZW0iCiAgICAgIiR7UEFMX0RJ
Un0vcGFsL3RleHQiCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25J
RC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmNwcApz
aW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Np
b25JRC5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaWRlbnRpZmllci9TZXNz
aW9uSUQuY3BwCmluZGV4IDJlMTU5NTA4YzcyLi5jNDIzNWU0ZDk3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvaWRlbnRpZmllci9TZXNzaW9uSUQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgUEFM
IHsKIAogc3RhdGljIHVpbnQ2NF90IGN1cnJlbnRQZXJzaXN0ZW50SUQgPSBTZXNzaW9uSUQ6OkRl
ZmF1bHRTZXNzaW9uSUQ7CiBzdGF0aWMgdWludDY0X3QgY3VycmVudEVwaGVtZXJhbElEID0gU2Vz
c2lvbklEOjpMZWdhY3lQcml2YXRlU2Vzc2lvbklEOwpAQCAtNjAsNCArNjAsNCBAQCBTZXNzaW9u
SUQgU2Vzc2lvbklEOjppc29sYXRlZENvcHkoKSBjb25zdAogICAgIHJldHVybiBTZXNzaW9uSUQg
eyBtX3Nlc3Npb25JRCB9OwogfQogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5hbWVz
cGFjZSBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmgKc2ltaWxhcml0eSBp
bmRleCA4MCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaApyZW5h
bWUgdG8gU291cmNlL1dlYkNvcmUvUEFML3BhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oCmluZGV4
IDM3OGY2ODlkMTc0Li5kZWY0OTdlOTRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXNzaW9uSUQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25h
bWVzcGFjZSBQQUwgewogCiBjbGFzcyBTZXNzaW9uSUQgewogcHVibGljOgpAQCAtNTMsOSArNTMs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9u
SUQgIT0gSGFzaFRhYmxlRW1wdHlWYWx1ZUlEICYmIG1fc2Vzc2lvbklEICE9IEhhc2hUYWJsZURl
bGV0ZWRWYWx1ZUlEOyB9CiAgICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Vzc2lvbklEICYgRXBoZW1lcmFsU2Vzc2lvbk1hc2sgJiYgbV9zZXNzaW9uSUQgIT0gSGFzaFRh
YmxlRGVsZXRlZFZhbHVlSUQ7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTZXNzaW9u
SUQgZ2VuZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgU2Vzc2lvbklEIGdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25JRCgpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZUdlbmVyYXRpb25Qcm90ZWN0aW9uKCk7CisgICAgUEFM
X0VYUE9SVCBzdGF0aWMgU2Vzc2lvbklEIGdlbmVyYXRlRXBoZW1lcmFsU2Vzc2lvbklEKCk7Cisg
ICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vzc2lvbklEIGdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25J
RCgpOworICAgIFBBTF9FWFBPUlQgc3RhdGljIHZvaWQgZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rp
b24oKTsKIAogICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lv
bklEOyB9CiAgICAgYm9vbCBvcGVyYXRvcj09KFNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0IHsg
cmV0dXJuIG1fc2Vzc2lvbklEID09IHNlc3Npb25JRC5tX3Nlc3Npb25JRDsgfQpAQCAtOTMsMjIg
KzkzLDIyIEBAIGJvb2wgU2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Vzc2lv
bklEJiBzZXNzaW9uSUQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKK30gLy8gbmFtZXNwYWNlIFBBTAogCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RydWN0IFNl
c3Npb25JREhhc2ggewotICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYkNvcmU6OlNl
c3Npb25JRCYgcCkgeyByZXR1cm4gaW50SGFzaChwLnNlc3Npb25JRCgpKTsgfQotICAgIHN0YXRp
YyBib29sIGVxdWFsKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgYSwgY29uc3QgV2ViQ29yZTo6
U2Vzc2lvbklEJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBQQUw6OlNlc3Npb25JRCYgcCkgeyByZXR1cm4gaW50SGFzaChwLnNlc3Npb25JRCgp
KTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBhLCBjb25z
dCBQQUw6OlNlc3Npb25JRCYgYikgeyByZXR1cm4gYSA9PSBiOyB9CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKLXRlbXBsYXRl
PD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lvbklEPiA6IEdlbmVyaWNIYXNoVHJh
aXRzPFdlYkNvcmU6OlNlc3Npb25JRD4gewotICAgIHN0YXRpYyBXZWJDb3JlOjpTZXNzaW9uSUQg
ZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFdlYkNvcmU6OlNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQo
KTsgfQordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD4gOiBHZW5l
cmljSGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD4geworICAgIHN0YXRpYyBQQUw6OlNlc3Npb25J
RCBlbXB0eVZhbHVlKCkgeyByZXR1cm4gUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCk7
IH0KIAotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpTZXNz
aW9uSUQmIHNsb3QpIHsgc2xvdCA9IFdlYkNvcmU6OlNlc3Npb25JRDo6aGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3Jl
OjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gV2ViQ29yZTo6U2Vzc2lvbklEOjpo
YXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0
ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFMOjpTZXNzaW9uSUQ6Omhh
c2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUo
Y29uc3QgUEFMOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gUEFMOjpTZXNzaW9u
SUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVm
YXVsdEhhc2g8V2ViQ29yZTo6U2Vzc2lvbklEPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0
SGFzaDxQQUw6OlNlc3Npb25JRD4gewogICAgIHR5cGVkZWYgU2Vzc2lvbklESGFzaCBIYXNoOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGMyMWFhYzg5NGUwLi42ZThjYjczY2I5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE5MSw3ICsyMTkxLDYg
QEAKIAkJNTExRUYyQ0ExN0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCVHJhbnNhY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUYyQjQxN0Yw
RkM0ODAwRTRGQTE2IC8qIEpTSURCVHJhbnNhY3Rpb24uY3BwICovOyB9OwogCQk1MTFFRjJDQjE3
RjBGRDM1MDBFNEZBMTYgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY5MjM5OTExNTA1RTFBQTAwOUU1
N0ZDIC8qIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCAqLzsgfTsKIAkJNTExRUYyRDExN0Yw
RkRGMTAwRTRGQTE2IC8qIEpTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUYyQ0UxN0YwRkRGMTAwRTRGQTE2
IC8qIEpTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwICovOyB9OwotCQk1MTFGN0Q0NDFFQjFDMzkx
MDBFNDdCODMgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMUY3RDQzMUVCMUMzODkwMEU0N0I4MyAvKiBTZXNzaW9uSUQuY3Bw
ICovOyB9OwogCQk1MTIwQkJBRTFGMUNFOENFMDBFRkVCRjEgLyogQ29va2llU3RvcmFnZU9ic2Vy
dmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEy
MEJCQUMxRjFDRTc3MDAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZlci5tbSAqLzsgfTsK
IAkJNTEyMEJCQUYxRjFDRUNFNzAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyMEJCQUQxRjFD
RTc3MDAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMkJEQjRBMUM0NTZGRjUwMDY0OTRE
RiAvKiBTUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyQkRCNDgxQzQ1NkZBQjAwNjQ5NERGIC8qIFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5jcHAgKi87IH07CkBAIC0yOTk4LDcgKzI5OTcsNiBAQAogCQk3NTQxMzNB
QTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxMzNBOTEwMkUwMEY0MDAw
NzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgKi87IH07CiAJCTc1NTNDRkU4MTA4
RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAv
KiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU1M0NGRTkxMDhGNDczRjAwRUEy
ODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmNwcCAqLzsgfTsKLQkJNzU2QjJDRTExOEI3MTAxNjAwRkVDRkFBIC8q
IFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU2QjJDRTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NzkzRTgzMEQwQ0UwQjMwMDdG
QzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzU3OTNFODAwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5j
cHAgKi87IH07CiAJCTc1NzkzRTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQw
Q0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJNzU3OTNFQzgwRDBDRTcy
RDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUM2MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3Nh
Z2VFdmVudC5jcHAgKi87IH07CkBAIC05OTI0LDcgKzk5MjIsNiBAQAogCQk1MTFFRjJCMzE3RjBG
QzQ4MDBFNEZBMTYgLyogSlNJREJSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURC
UmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVGMkI0MTdGMEZD
NDgwMEU0RkExNiAvKiBKU0lEQlRyYW5zYWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
SURCVHJhbnNhY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFRjJD
RTE3RjBGREYxMDBFNEZBMTYgLyogSlNJREJPYmplY3RTdG9yZUN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExRjdENDMxRUIxQzM4OTAwRTQ3QjgzIC8q
IFNlc3Npb25JRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXNz
aW9uSUQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGQUVBOTFCREM5ODlB
MDBCNEFGRTQgLyogVGhyZWFkU2FmZURhdGFCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGhyZWFkU2FmZURhdGFCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEyMEJCQUMxRjFDRTc3MDAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZVN0b3Jh
Z2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyMEJCQUQxRjFD
RTc3MDAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTExMDE3LDcgKzExMDE0LDYgQEAKIAkJNzU0MTMzQTkxMDJFMDBGNDAw
MDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxpbmVS
ZWNvcmRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU3MTA4
RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzU2QjJDRTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Np
b25JRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXNzaW9uSUQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OTNFODAwRDBDRTBCMzAwN0ZDMEFDIC8qIE1l
c3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVz
c2FnZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OTNFODEwRDBD
RTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVzc2FnZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1
NzkzRTgyMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBNZXNzYWdlRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTk0MjQsOCArMTk0MjAsNiBAQAogCQkJCUJDRDBFMEY5MEU5NzJDMzUwMDI2NURFQSAvKiBT
ZWN1cml0eU9yaWdpbkhhc2guaCAqLywKIAkJCQk5NzREMkRBMjE0NkE1MzVEMDBENTFGOEIgLyog
U2VjdXJpdHlQb2xpY3kuY3BwICovLAogCQkJCTk3NEQyREEzMTQ2QTUzNUQwMEQ1MUY4QiAvKiBT
ZWN1cml0eVBvbGljeS5oICovLAotCQkJCTUxMUY3RDQzMUVCMUMzODkwMEU0N0I4MyAvKiBTZXNz
aW9uSUQuY3BwICovLAotCQkJCTc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQu
aCAqLywKIAkJCQkxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwICovLAog
CQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5oICovLAogCQkJCUJDNTlE
RUY4MTY5REVEQzMwMDE2QUMzNCAvKiBTZXR0aW5ncy5pbiAqLywKQEAgLTI5NDQzLDcgKzI5NDM3
LDYgQEAKIAkJCQk1MUYxNzU2OTFGM0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTZCMUYzRUJDODMwMEM3
NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTFGMTc1NkMxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJVcGRhdGVW
aWFDYWNoZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzU2QjJDRTExOEI3MTAxNjAwRkVDRkFBIC8q
IFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTAwOTlFNjQ5MjAwNTZFNTgx
IC8qIFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCOERCREI0
QzEzMEIwRjhBMDBGNUNEQjEgLyogU2V0U2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTNGMTk5NEYwODI0NUU1OTAwMUU5QUJDIC8qIFNldHRpbmdzLmggaW4gSGVhZGVycyAq
LywKQEAgLTMzMjk2LDcgKzMzMjg5LDYgQEAKIAkJCQk1MUYxNzU2NTFGM0VCQzgzMDBDNzQ5NTAg
LyogU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjE3NTY3
MUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxRjE3NTZBMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTFGN0Q0NDFFQjFD
MzkxMDBFNDdCODMgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTBG
MDk5RTY0OTIwMDU2RTU4MSAvKiBTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCOERCREI0QjEzMEIwRjhBMDBGNUNEQjEgLyogU2V0U2VsZWN0aW9uQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEM5QTVFQTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0
dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmYTcw
OGNlZTg2NS4uZjcyZmVlN2U0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDY3MSw3
ICs0NjcxLDcgQEAgVVJMIERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkg
Y29uc3QKICAgICByZXR1cm4gY29tcGxldGVVUkwodXJsLCBtX2Jhc2VVUkwpOwogfQogCi1TZXNz
aW9uSUQgRG9jdW1lbnQ6OnNlc3Npb25JRCgpIGNvbnN0CitQQUw6OlNlc3Npb25JRCBEb2N1bWVu
dDo6c2Vzc2lvbklEKCkgY29uc3QKIHsKICAgICBpZiAobV9zZXNzaW9uSUQuaXNWYWxpZCgpKQog
ICAgICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGNmYjcy
MDUwMTZiLi5mMzYyMDY5ZWVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTQ1LDcgKzQ1LDYg
QEAKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5j
bHVkZSAiU3RyaW5nV2l0aERpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgi
CiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgpAQCAtNTQsNiArNTMsNyBAQAogI2lu
Y2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVu
dHMuaCIKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVk
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTY0Miw3ICs2NDIsNyBAQCBwdWJs
aWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikg
Y29uc3QgZmluYWw7CiAgICAgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IFVS
TCYgYmFzZVVSTE92ZXJyaWRlKSBjb25zdDsKLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29u
c3QgZmluYWw7CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAK
ICAgICBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFsOwogCkBAIC0xODEw
LDcgKzE4MTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBPcmllbnRhdGlvbk5vdGlmaWVy
IG1fb3JpZW50YXRpb25Ob3RpZmllcjsKLSAgICBtdXRhYmxlIFNlc3Npb25JRCBtX3Nlc3Npb25J
RDsKKyAgICBtdXRhYmxlIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogCiAgICAgc3RhdGlj
IGJvb2wgaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggZjA3MTMzNzM0N2EuLjMyZjE5YzMw
M2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAg
LTUwLDYgKzUwLDEwIEBAIGNsYXNzIENvbnNvbGVNZXNzYWdlOwogY2xhc3MgU2NyaXB0Q2FsbFN0
YWNrOwogfQogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRTY3JpcHQ7CkBAIC02MSw3ICs2NSw2IEBAIGNs
YXNzIFB1YmxpY1VSTE1hbmFnZXI7CiBjbGFzcyBSZWplY3RlZFByb21pc2VUcmFja2VyOwogY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXNzaW9u
SUQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFVSTDsKIApAQCAtODIsNyArODUsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdCA9IDA7Ci0g
ICAgdmlydHVhbCBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBTdHJp
bmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZTdiZDMzZTJlNTcuLjgwNmY2ZWJkZjFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTgyLDEzICs4MiwxMyBA
QAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bkRhdGEuaCIKICNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgotI2luY2x1ZGUgIlNlc3Npb25J
RC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2lu
Y2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPGxpbWl0cz4KKyNp
bmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxwYWwvc3lzdGVt
L1NsZWVwRGlzYWJsZXIuaD4KICNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KICNpbmNs
dWRlIDx3dGYvQWxnb3JpdGhtcy5oPgpAQCAtMTgwLDcgKzE4MCw3IEBAIHN0YXRpYyB2b2lkIGNs
ZWFyRmxhZ3ModW5zaWduZWQmIHZhbHVlLCB1bnNpZ25lZCBmbGFncykKIHsKICAgICB2YWx1ZSAm
PSB+ZmxhZ3M7CiB9Ci0gICAgCisKICNpZiAhTE9HX0RJU0FCTEVECiBzdGF0aWMgU3RyaW5nIHVy
bEZvckxvZ2dpbmdNZWRpYShjb25zdCBVUkwmIHVybCkKIHsKQEAgLTIyMiw3ICsyMjIsNyBAQCBz
dGF0aWMgU3RyaW5nIGFjdGlvbk5hbWUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpEZWxheWVkQWN0
aW9uVHlwZSBhY3Rpb24pCiAjZW5kaWYKIAogI2lmbmRlZiBMT0dfTUVESUFfRVZFTlRTCi0vLyBE
ZWZhdWx0IHRvIG5vdCBsb2dnaW5nIGV2ZW50cyBiZWNhdXNlIHNvIG1hbnkgYXJlIGdlbmVyYXRl
ZCB0aGV5IGNhbiBvdmVyd2hlbG0gdGhlIHJlc3Qgb2YgCisvLyBEZWZhdWx0IHRvIG5vdCBsb2dn
aW5nIGV2ZW50cyBiZWNhdXNlIHNvIG1hbnkgYXJlIGdlbmVyYXRlZCB0aGV5IGNhbiBvdmVyd2hl
bG0gdGhlIHJlc3Qgb2YKIC8vIHRoZSBsb2dnaW5nLgogI2RlZmluZSBMT0dfTUVESUFfRVZFTlRT
IDAKICNlbmRpZgpAQCAtMjgyLDcgKzI4Miw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1f
ZWxlbWVudC5lbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CiAgICAgfQot
ICAgIAorCiBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKIH07CkBA
IC0zMjMsNyArMzIzLDcgQEAgSFRNTE1lZGlhRWxlbWVudCogSFRNTE1lZGlhRWxlbWVudDo6ZWxl
bWVudFdpdGhJRCh1aW50NjRfdCBpZCkKIHsKICAgICBpZiAoaWQgPT0gSFRNTE1lZGlhRWxlbWVu
dEludmFsaWRJRCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCisKICAgICByZXR1cm4g
ZWxlbWVudElEc1RvRWxlbWVudHMoKS5nZXQoaWQpOwogfQogCkBAIC04MDMsNyArODAzLDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKQogewogICAgIEhU
TUxFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKICAgICBtX3BhcnNpbmdJblByb2dy
ZXNzID0gZmFsc2U7Ci0gICAgCisKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgaWYgKGRl
c2NlbmRhbnRzT2ZUeXBlPEhUTUxUcmFja0VsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKQogICAgICAg
ICBzY2hlZHVsZURlbGF5ZWRBY3Rpb24oQ29uZmlndXJlVGV4dFRyYWNrcyk7CkBAIC05OTIsNyAr
OTkyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnROYW1lKQogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNj
aGVkdWxlRXZlbnQoJXApIC0gc2NoZWR1bGluZyAnJXMnIiwgdGhpcywgZXZlbnROYW1lLnN0cmlu
ZygpLmFzY2lpKCkuZGF0YSgpKTsKICNlbmRpZgogICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIHRydWUpOwotICAgIAorCiAgICAgLy8gRG9u
J3Qgc2V0IHRoZSBldmVudCB0YXJnZXQsIHRoZSBldmVudCBxdWV1ZSB3aWxsIHNldCBpdCBpbiBH
ZW5lcmljRXZlbnRRdWV1ZTo6dGltZXJGaXJlZCBhbmQgc2V0dGluZyBpdCBoZXJlCiAgICAgLy8g
d2lsbCB0cmlnZ2VyIGFuIEFTU0VSVCBpZiB0aGlzIGVsZW1lbnQgaGFzIGJlZW4gbWFya2VkIGZv
ciBkZWxldGlvbi4KIApAQCAtMTEzMCw3ICsxMTMwLDcgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1l
bnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiAgICAgICAgICAg
ICBjYW5QbGF5ID0gQVNDSUlMaXRlcmFsKCJwcm9iYWJseSIpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIAorCiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxh
eVR5cGUoJXApIC0gWyVzXSAtPiAlcyIsIHRoaXMsIG1pbWVUeXBlLnV0ZjgoKS5kYXRhKCksIGNh
blBsYXkudXRmOCgpLmRhdGEoKSk7CiAKICAgICByZXR1cm4gY2FuUGxheTsKQEAgLTExNDYsOSAr
MTE0Niw5IEBAIGRvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUoKSBjb25zdAog
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKCkKIHsKICAgICBSZWY8SFRNTE1lZGlhRWxlbWVu
dD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7IC8vIHByZXBhcmVGb3JMb2FkIG1heSByZXN1bHQgaW4g
YSAnYmVmb3JlbG9hZCcgZXZlbnQsIHdoaWNoIGNhbiBtYWtlIGFyYml0cmFyeSBET00gbXV0YXRp
b25zLgotICAgIAorCiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6bG9hZCglcCki
LCB0aGlzKTsKLSAgICAKKwogICAgIGlmICghbV9tZWRpYVNlc3Npb24tPmRhdGFMb2FkaW5nUGVy
bWl0dGVkKCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpKQpAQCAtMTQ4Niw3ICsxNDg2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29u
dGVudFQKICAgICB9CiAjZW5kaWYKIAotICAgIC8vIFRoZSByZXNvdXJjZSBmZXRjaCBhbGdvcml0
aG0gCisgICAgLy8gVGhlIHJlc291cmNlIGZldGNoIGFsZ29yaXRobQogICAgIG1fbmV0d29ya1N0
YXRlID0gTkVUV09SS19MT0FESU5HOwogCiAgICAgLy8gSWYgdGhlIFVSTCBzaG91bGQgYmUgbG9h
ZGVkIGZyb20gdGhlIGFwcGxpY2F0aW9uIGNhY2hlLCBwYXNzIHRoZSBVUkwgb2YgdGhlIGNhY2hl
ZCBmaWxlIHRvIHRoZSBtZWRpYSBlbmdpbmUuCkBAIC0xODQxLDcgKzE4NDEsNyBAQCBib29sIEhU
TUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja3NBcmVSZWFkeSgpIGNvbnN0CiB7CiAgICAgLy8gNC44
LjEwLjEyLjEgVGV4dCB0cmFjayBtb2RlbAogICAgIC8vIC4uLgotICAgIC8vIFRoZSB0ZXh0IHRy
YWNrcyBvZiBhIG1lZGlhIGVsZW1lbnQgYXJlIHJlYWR5IGlmIGFsbCB0aGUgdGV4dCB0cmFja3Mg
d2hvc2UgbW9kZSB3YXMgbm90IAorICAgIC8vIFRoZSB0ZXh0IHRyYWNrcyBvZiBhIG1lZGlhIGVs
ZW1lbnQgYXJlIHJlYWR5IGlmIGFsbCB0aGUgdGV4dCB0cmFja3Mgd2hvc2UgbW9kZSB3YXMgbm90
CiAgICAgLy8gaW4gdGhlIGRpc2FibGVkIHN0YXRlIHdoZW4gdGhlIGVsZW1lbnQncyByZXNvdXJj
ZSBzZWxlY3Rpb24gYWxnb3JpdGhtIGxhc3Qgc3RhcnRlZCBub3cKICAgICAvLyBoYXZlIGEgdGV4
dCB0cmFjayByZWFkaW5lc3Mgc3RhdGUgb2YgbG9hZGVkIG9yIGZhaWxlZCB0byBsb2FkLgogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3RleHRUcmFja3NXaGVuUmVzb3VyY2VTZWxlY3Rp
b25CZWdhbi5zaXplKCk7ICsraSkgewpAQCAtMTkwMSwxMCArMTkwMSwxMCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiAgICAg
Ly8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgYWRkZWQgdHJhY2ssIGNyZWF0ZSB0aGUgbGlzdCBvZiB0
ZXh0IHRyYWNrcy4KICAgICBpZiAoIW1fdGV4dFRyYWNrcykKICAgICAgICAgbV90ZXh0VHJhY2tz
ID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKHRoaXMsIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKLSAgICAKKwogICAgIC8vIE1hcmsgdGhpcyB0cmFjayBhcyAiY29u
ZmlndXJlZCIgc28gY29uZmlndXJlVGV4dFRyYWNrcyB3b24ndCBjaGFuZ2UgdGhlIG1vZGUgYWdh
aW4uCiAgICAgdHJhY2suc2V0SGFzQmVlbkNvbmZpZ3VyZWQodHJ1ZSk7Ci0gICAgCisKICAgICBp
ZiAodHJhY2subW9kZSgpICE9IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQgJiYgdHJhY2tJc0xv
YWRlZCkKICAgICAgICAgdGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgKnRyYWNrLmN1ZXMoKSk7CiAK
QEAgLTIwNzcsOCArMjA3Nyw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bm9uZVN1cHBvcnRl
ZCgpCiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwogICAgIG1fY3VycmVudFNv
dXJjZU5vZGUgPSBudWxscHRyOwogCi0gICAgLy8gNC44LjEwLjUgCi0gICAgLy8gNiAtIFJlYWNo
aW5nIHRoaXMgc3RlcCBpbmRpY2F0ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRv
IGxvYWQgb3IgdGhhdCB0aGUgZ2l2ZW4gCisgICAgLy8gNC44LjEwLjUKKyAgICAvLyA2IC0gUmVh
Y2hpbmcgdGhpcyBzdGVwIGluZGljYXRlcyB0aGF0IHRoZSBtZWRpYSByZXNvdXJjZSBmYWlsZWQg
dG8gbG9hZCBvciB0aGF0IHRoZSBnaXZlbgogICAgIC8vIFVSTCBjb3VsZCBub3QgYmUgcmVzb2x2
ZWQuIEluIG9uZSBhdG9taWMgb3BlcmF0aW9uLCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKIAog
ICAgIC8vIDYuMSAtIFNldCB0aGUgZXJyb3IgYXR0cmlidXRlIHRvIGEgbmV3IE1lZGlhRXJyb3Ig
b2JqZWN0IHdob3NlIGNvZGUgYXR0cmlidXRlIGlzIHNldCB0bwpAQCAtMjEwMyw3ICsyMTAzLDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpub25lU3VwcG9ydGVkKCkKICAgICAvLyA4IC0gU2V0
IHRoZSBlbGVtZW50J3MgZGVsYXlpbmctdGhlLWxvYWQtZXZlbnQgZmxhZyB0byBmYWxzZS4gVGhp
cyBzdG9wcyBkZWxheWluZyB0aGUgbG9hZCBldmVudC4KICAgICBzZXRTaG91bGREZWxheUxvYWRF
dmVudChmYWxzZSk7CiAKLSAgICAvLyA5IC0gQWJvcnQgdGhlc2Ugc3RlcHMuIFVudGlsIHRoZSBs
b2FkKCkgbWV0aG9kIGlzIGludm9rZWQgb3IgdGhlIHNyYyBhdHRyaWJ1dGUgaXMgY2hhbmdlZCwg
CisgICAgLy8gOSAtIEFib3J0IHRoZXNlIHN0ZXBzLiBVbnRpbCB0aGUgbG9hZCgpIG1ldGhvZCBp
cyBpbnZva2VkIG9yIHRoZSBzcmMgYXR0cmlidXRlIGlzIGNoYW5nZWQsCiAgICAgLy8gdGhlIGVs
ZW1lbnQgd29uJ3QgYXR0ZW1wdCB0byBsb2FkIGFub3RoZXIgcmVzb3VyY2UuCiAKICAgICB1cGRh
dGVEaXNwbGF5U3RhdGUoKTsKQEAgLTIxMTgsNyArMjExOCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFMb2FkaW5nRmFpbGVkRmF0YWxseShNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRl
IGVycm9yCiAgICAgc3RvcFBlcmlvZGljVGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0
aW5nRm9yU291cmNlOwogCi0gICAgLy8gMiAtIFNldCB0aGUgZXJyb3IgYXR0cmlidXRlIHRvIGEg
bmV3IE1lZGlhRXJyb3Igb2JqZWN0IHdob3NlIGNvZGUgYXR0cmlidXRlIGlzIAorICAgIC8vIDIg
LSBTZXQgdGhlIGVycm9yIGF0dHJpYnV0ZSB0byBhIG5ldyBNZWRpYUVycm9yIG9iamVjdCB3aG9z
ZSBjb2RlIGF0dHJpYnV0ZSBpcwogICAgIC8vIHNldCB0byBNRURJQV9FUlJfTkVUV09SSy9NRURJ
QV9FUlJfREVDT0RFLgogICAgIGlmIChlcnJvciA9PSBNZWRpYVBsYXllcjo6TmV0d29ya0Vycm9y
KQogICAgICAgICBtX2Vycm9yID0gTWVkaWFFcnJvcjo6Y3JlYXRlKE1lZGlhRXJyb3I6Ok1FRElB
X0VSUl9ORVRXT1JLKTsKQEAgLTIyMDgsMjAgKzIyMDgsMjAgQEAgc3RhdGljIFN0cmluZyBzdHJp
bmdGb3JOZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBzdGF0ZSkKIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3Jr
U3RhdGUgZXJyb3IpCiB7CiAgICAgc3RvcFBlcmlvZGljVGltZXJzKCk7Ci0gICAgCisKICAgICAv
LyBJZiB3ZSBmYWlsZWQgd2hpbGUgdHJ5aW5nIHRvIGxvYWQgYSA8c291cmNlPiBlbGVtZW50LCB0
aGUgbW92aWUgd2FzIG5ldmVyIHBhcnNlZCwgYW5kIHRoZXJlIGFyZSBtb3JlCiAgICAgLy8gPHNv
dXJjZT4gY2hpbGRyZW4sIHNjaGVkdWxlIHRoZSBuZXh0IG9uZQogICAgIGlmIChtX3JlYWR5U3Rh
dGUgPCBIQVZFX01FVEFEQVRBICYmIG1fbG9hZFN0YXRlID09IExvYWRpbmdGcm9tU291cmNlRWxl
bWVudCkgewotICAgICAgICAKKwogICAgICAgICAvLyByZXNvdXJjZSBzZWxlY3Rpb24gYWxnb3Jp
dGhtCiAgICAgICAgIC8vIFN0ZXAgOS5PdGhlcndpc2UuOSAtIEZhaWxlZCB3aXRoIGVsZW1lbnRz
OiBRdWV1ZSBhIHRhc2ssIHVzaW5nIHRoZSBET00gbWFuaXB1bGF0aW9uIHRhc2sgc291cmNlLCB0
byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGVycm9yIGF0IHRoZSBjYW5kaWRhdGUgZWxlbWVu
dC4KICAgICAgICAgaWYgKG1fY3VycmVudFNvdXJjZU5vZGUpCiAgICAgICAgICAgICBtX2N1cnJl
bnRTb3VyY2VOb2RlLT5zY2hlZHVsZUVycm9yRXZlbnQoKTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c2V0TmV0d29ya1N0YXRlKCVwKSAt
IGVycm9yIGV2ZW50IG5vdCBzZW50LCA8c291cmNlPiB3YXMgcmVtb3ZlZCIsIHRoaXMpOwotICAg
ICAgICAKKwogICAgICAgICAvLyA5Lk90aGVyd2lzZS4xMCAtIEFzeW5jaHJvbm91c2x5IGF3YWl0
IGEgc3RhYmxlIHN0YXRlLiBUaGUgc3luY2hyb25vdXMgc2VjdGlvbiBjb25zaXN0cyBvZiBhbGwg
dGhlIHJlbWFpbmluZyBzdGVwcyBvZiB0aGlzIGFsZ29yaXRobSB1bnRpbCB0aGUgYWxnb3JpdGht
IHNheXMgdGhlIHN5bmNocm9ub3VzIHNlY3Rpb24gaGFzIGVuZGVkLgotICAgICAgICAKKwogICAg
ICAgICAvLyA5Lk90aGVyd2lzZS4xMSAtIEZvcmdldCB0aGUgbWVkaWEgZWxlbWVudCdzIG1lZGlh
LXJlc291cmNlLXNwZWNpZmljIHRyYWNrcy4KICAgICAgICAgZm9yZ2V0UmVzb3VyY2VTcGVjaWZp
Y1RyYWNrcygpOwogCkBAIC0yMjMyLDE1ICsyMjMyLDE1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgZXJyb3IpCiAg
ICAgICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZXROZXR3b3JrU3RhdGUo
JXApIC0gbm8gbW9yZSA8c291cmNlPiBlbGVtZW50cywgd2FpdGluZyIsIHRoaXMpOwogICAgICAg
ICAgICAgd2FpdEZvclNvdXJjZUNoYW5nZSgpOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBpZiAoKGVycm9yID09IE1lZGlhUGxheWVy
OjpOZXR3b3JrRXJyb3IgJiYgbV9yZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEpIHx8IGVycm9y
ID09IE1lZGlhUGxheWVyOjpEZWNvZGVFcnJvcikKICAgICAgICAgbWVkaWFMb2FkaW5nRmFpbGVk
RmF0YWxseShlcnJvcik7CiAgICAgZWxzZSBpZiAoKGVycm9yID09IE1lZGlhUGxheWVyOjpGb3Jt
YXRFcnJvciB8fCBlcnJvciA9PSBNZWRpYVBsYXllcjo6TmV0d29ya0Vycm9yKSAmJiBtX2xvYWRT
dGF0ZSA9PSBMb2FkaW5nRnJvbVNyY0F0dHIpCiAgICAgICAgIG5vbmVTdXBwb3J0ZWQoKTsKLSAg
ICAKKwogICAgIHVwZGF0ZURpc3BsYXlTdGF0ZSgpOwogICAgIGlmIChoYXNNZWRpYUNvbnRyb2xz
KCkpIHsKICAgICAgICAgbWVkaWFDb250cm9scygpLT5yZXNldCgpOwpAQCAtMjM2MCw3ICsyMzYw
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlIHN0YXRlKQogICAgICAgICByZXR1cm47CiAgICAgYm9vbCB0cmFja3NBcmVSZWFk
eSA9IHRydWU7CiAjZW5kaWYKLSAgICAKKwogICAgIGlmICh0cmFja3NBcmVSZWFkeSkKICAgICAg
ICAgbV9yZWFkeVN0YXRlID0gbmV3U3RhdGU7CiAgICAgZWxzZSB7CkBAIC0yMzcxLDcgKzIzNzEs
NyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgc3RhdGUpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVhZHlTdGF0ZSA9
IEhBVkVfQ1VSUkVOVF9EQVRBOwogICAgIH0KLSAgICAKKwogICAgIGlmIChvbGRTdGF0ZSA+IG1f
cmVhZHlTdGF0ZU1heGltdW0pCiAgICAgICAgIG1fcmVhZHlTdGF0ZU1heGltdW0gPSBvbGRTdGF0
ZTsKIApAQCAtMjYwOCw3ICsyNjA4LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjphZGRQbGF5
ZWRSYW5nZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGUKICAgICBp
ZiAoIW1fcGxheWVkVGltZVJhbmdlcykKICAgICAgICAgbV9wbGF5ZWRUaW1lUmFuZ2VzID0gVGlt
ZVJhbmdlczo6Y3JlYXRlKCk7CiAgICAgbV9wbGF5ZWRUaW1lUmFuZ2VzLT5yYW5nZXMoKS5hZGQo
c3RhcnQsIGVuZCk7Ci19ICAKK30KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzdXBwb3J0c1Nj
YW5uaW5nKCkgY29uc3QKIHsKQEAgLTI3MzAsOCArMjczMCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2Vla1Rhc2soKQogICAgIG1fcGVuZGluZ1NlZWsgPSBudWxscHRyOwogCiAgICAgQVNT
RVJUKG5lZ2F0aXZlVG9sZXJhbmNlID49IE1lZGlhVGltZTo6emVyb1RpbWUoKSk7Ci0gICAgCi0g
ICAgLy8gNiAtIElmIHRoZSBuZXcgcGxheWJhY2sgcG9zaXRpb24gaXMgbGF0ZXIgdGhhbiB0aGUg
ZW5kIG9mIHRoZSBtZWRpYSByZXNvdXJjZSwgdGhlbiBsZXQgaXQgYmUgdGhlIGVuZCAKKworICAg
IC8vIDYgLSBJZiB0aGUgbmV3IHBsYXliYWNrIHBvc2l0aW9uIGlzIGxhdGVyIHRoYW4gdGhlIGVu
ZCBvZiB0aGUgbWVkaWEgcmVzb3VyY2UsIHRoZW4gbGV0IGl0IGJlIHRoZSBlbmQKICAgICAvLyBv
ZiB0aGUgbWVkaWEgcmVzb3VyY2UgaW5zdGVhZC4KICAgICB0aW1lID0gc3RkOjptaW4odGltZSwg
ZHVyYXRpb25NZWRpYVRpbWUoKSk7CiAKQEAgLTI3NDIsNyArMjc0Miw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2Vla1Rhc2soKQogICAgIC8vIEFzayB0aGUgbWVkaWEgZW5naW5lIGZvciB0
aGUgdGltZSB2YWx1ZSBpbiB0aGUgbW92aWUncyB0aW1lIHNjYWxlIGJlZm9yZSBjb21wYXJpbmcg
d2l0aCBjdXJyZW50IHRpbWUuIFRoaXMKICAgICAvLyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBpZiB0
aGUgc2VlayB0aW1lIGlzIG5vdCBlcXVhbCB0byBjdXJyZW50VGltZSBidXQgdGhlIGRlbHRhIGlz
IGxlc3MgdGhhbiB0aGUgbW92aWUncwogICAgIC8vIHRpbWUgc2NhbGUsIHdlIHdpbGwgYXNrIHRo
ZSBtZWRpYSBlbmdpbmUgdG8gInNlZWsiIHRvIHRoZSBjdXJyZW50IG1vdmllIHRpbWUsIHdoaWNo
IG1heSBiZSBhIG5vb3AgYW5kCi0gICAgLy8gbm90IGdlbmVyYXRlIGEgdGltZWNoYW5nZWQgY2Fs
bGJhY2suIFRoaXMgbWVhbnMgbV9zZWVraW5nIHdpbGwgbmV2ZXIgYmUgY2xlYXJlZCBhbmQgd2Ug
d2lsbCBuZXZlciAKKyAgICAvLyBub3QgZ2VuZXJhdGUgYSB0aW1lY2hhbmdlZCBjYWxsYmFjay4g
VGhpcyBtZWFucyBtX3NlZWtpbmcgd2lsbCBuZXZlciBiZSBjbGVhcmVkIGFuZCB3ZSB3aWxsIG5l
dmVyCiAgICAgLy8gZmlyZSBhICdzZWVrZWQnIGV2ZW50LgogI2lmICFMT0dfRElTQUJMRUQKICAg
ICBNZWRpYVRpbWUgbWVkaWFUaW1lID0gbV9wbGF5ZXItPm1lZGlhVGltZUZvclRpbWVWYWx1ZSh0
aW1lKTsKQEAgLTI3NTIsNyArMjc1Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1Rh
c2soKQogICAgIHRpbWUgPSBtX3BsYXllci0+bWVkaWFUaW1lRm9yVGltZVZhbHVlKHRpbWUpOwog
CiAgICAgLy8gOCAtIElmIHRoZSAocG9zc2libHkgbm93IGNoYW5nZWQpIG5ldyBwbGF5YmFjayBw
b3NpdGlvbiBpcyBub3QgaW4gb25lIG9mIHRoZSByYW5nZXMgZ2l2ZW4gaW4gdGhlCi0gICAgLy8g
c2Vla2FibGUgYXR0cmlidXRlLCB0aGVuIGxldCBpdCBiZSB0aGUgcG9zaXRpb24gaW4gb25lIG9m
IHRoZSByYW5nZXMgZ2l2ZW4gaW4gdGhlIHNlZWthYmxlIGF0dHJpYnV0ZSAKKyAgICAvLyBzZWVr
YWJsZSBhdHRyaWJ1dGUsIHRoZW4gbGV0IGl0IGJlIHRoZSBwb3NpdGlvbiBpbiBvbmUgb2YgdGhl
IHJhbmdlcyBnaXZlbiBpbiB0aGUgc2Vla2FibGUgYXR0cmlidXRlCiAgICAgLy8gdGhhdCBpcyB0
aGUgbmVhcmVzdCB0byB0aGUgbmV3IHBsYXliYWNrIHBvc2l0aW9uLiAuLi4gSWYgdGhlcmUgYXJl
IG5vIHJhbmdlcyBnaXZlbiBpbiB0aGUgc2Vla2FibGUKICAgICAvLyBhdHRyaWJ1dGUgdGhlbiBz
ZXQgdGhlIHNlZWtpbmcgSURMIGF0dHJpYnV0ZSB0byBmYWxzZSBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IHNlZWthYmxlUmFuZ2VzID0gc2Vla2FibGUoKTsK
QEAgLTI4NTksMTEgKzI4NTksMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZWZyZXNoQ2Fj
aGVkVGltZSgpIGNvbnN0CiAKICAgICBtX2NhY2hlZFRpbWUgPSBtX3BsYXllci0+Y3VycmVudFRp
bWUoKTsKICAgICBpZiAoIW1fY2FjaGVkVGltZSkgewotICAgICAgICAvLyBEbyBub3QgdXNlIG1f
Y2FjaGVkVGltZSB1bnRpbCB0aGUgbWVkaWEgZW5naW5lIHJldHVybnMgYSBub24temVybyB2YWx1
ZSBiZWNhdXNlIHdlIGNhbid0IAotICAgICAgICAvLyBlc3RpbWF0ZSBjdXJyZW50IHRpbWUgdW50
aWwgcGxheWJhY2sgYWN0dWFsbHkgYmVnaW5zLiAKLSAgICAgICAgaW52YWxpZGF0ZUNhY2hlZFRp
bWUoKTsgCi0gICAgICAgIHJldHVybjsgCi0gICAgfSAKKyAgICAgICAgLy8gRG8gbm90IHVzZSBt
X2NhY2hlZFRpbWUgdW50aWwgdGhlIG1lZGlhIGVuZ2luZSByZXR1cm5zIGEgbm9uLXplcm8gdmFs
dWUgYmVjYXVzZSB3ZSBjYW4ndAorICAgICAgICAvLyBlc3RpbWF0ZSBjdXJyZW50IHRpbWUgdW50
aWwgcGxheWJhY2sgYWN0dWFsbHkgYmVnaW5zLgorICAgICAgICBpbnZhbGlkYXRlQ2FjaGVkVGlt
ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgbV9jbG9ja1RpbWVBdExhc3RDYWNo
ZWRUaW1lVXBkYXRlID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiB9CkBAIC0yOTQ4
LDcgKzI5NDgsNyBAQCBNZWRpYVRpbWUgSFRNTE1lZGlhRWxlbWVudDo6Y3VycmVudE1lZGlhVGlt
ZSgpIGNvbnN0CiAKICAgICBpZiAobV9jYWNoZWRUaW1lLmlzSW52YWxpZCgpKQogICAgICAgICBy
ZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotICAgIAorCiAgICAgcmV0dXJuIG1fY2FjaGVk
VGltZTsKIH0KIApAQCAtMzA5Niw3ICszMDk2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZXRXZWJraXRQcmVzZXJ2ZXNQaXRjaChib29sIHByZXNlcnZlc1BpdGNoKQogICAgIExPRyhNZWRp
YSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldFdlYmtpdFByZXNlcnZlc1BpdGNoKCVwKSAtICVzIiwg
dGhpcywgYm9vbFN0cmluZyhwcmVzZXJ2ZXNQaXRjaCkpOwogCiAgICAgbV93ZWJraXRQcmVzZXJ2
ZXNQaXRjaCA9IHByZXNlcnZlc1BpdGNoOwotICAgIAorCiAgICAgaWYgKCFtX3BsYXllcikKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0zMTE0LDcgKzMxMTQsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1l
bnQ6OmVuZGVkKCkgY29uc3QKICNlbmRpZgogCiAgICAgLy8gNC44LjEwLjggUGxheWluZyB0aGUg
bWVkaWEgcmVzb3VyY2UKLSAgICAvLyBUaGUgZW5kZWQgYXR0cmlidXRlIG11c3QgcmV0dXJuIHRy
dWUgaWYgdGhlIG1lZGlhIGVsZW1lbnQgaGFzIGVuZGVkIAorICAgIC8vIFRoZSBlbmRlZCBhdHRy
aWJ1dGUgbXVzdCByZXR1cm4gdHJ1ZSBpZiB0aGUgbWVkaWEgZWxlbWVudCBoYXMgZW5kZWQKICAg
ICAvLyBwbGF5YmFjayBhbmQgdGhlIGRpcmVjdGlvbiBvZiBwbGF5YmFjayBpcyBmb3J3YXJkcywg
YW5kIGZhbHNlIG90aGVyd2lzZS4KICAgICByZXR1cm4gZW5kZWRQbGF5YmFjaygpICYmIHJlcXVl
c3RlZFBsYXliYWNrUmF0ZSgpID4gMDsKIH0KQEAgLTMyMDYsNyArMzIwNiw3IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6cGxheSgpCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5h
bCgpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKCVw
KSIsIHRoaXMpOwotICAgIAorCiAgICAgaWYgKCFtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbEJl
Z2luUGxheWJhY2soKSkgewogICAgICAgICBMT0coTWVkaWEsICIgIHJldHVybmluZyBiZWNhdXNl
IG9mIGludGVycnVwdGlvbiIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gVHJlYXQgYXMgc3Vj
Y2VzcyBiZWNhdXNlIHdlIHdpbGwgYmVnaW4gcGxheWJhY2sgb24gY2Vzc2F0aW9uIG9mIHRoZSBp
bnRlcnJ1cHRpb24uCkBAIC0zMjc4LDkgKzMyNzgsOSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXlJbnRlcm5hbCgpCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlKCkKIHsKICAgICBM
T0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSglcCkiLCB0aGlzKTsKLSAgICAKKwog
ICAgIG1fdGVtcG9yYXJpbHlBbGxvd2luZ0lubGluZVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuID0g
ZmFsc2U7Ci0gICAgCisKICAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRl
ZCgqdGhpcykpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzQ3MCw3ICszNDcwLDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojp0b2dnbGVQbGF5U3RhdGUoKQogICAgIGlmIChjYW5QbGF5KCkpIHsK
ICAgICAgICAgdXBkYXRlUGxheWJhY2tSYXRlKCk7CiAgICAgICAgIHBsYXlJbnRlcm5hbCgpOwot
ICAgIH0gZWxzZSAKKyAgICB9IGVsc2UKICAgICAgICAgcGF1c2VJbnRlcm5hbCgpOwogfQogCkBA
IC0zNDgwLDEzICszNDgwLDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YmVnaW5TY3J1YmJp
bmcoKQogCiAgICAgaWYgKCFwYXVzZWQoKSkgewogICAgICAgICBpZiAoZW5kZWQoKSkgewotICAg
ICAgICAgICAgLy8gQmVjYXVzZSBhIG1lZGlhIGVsZW1lbnQgc3RheXMgaW4gbm9uLXBhdXNlZCBz
dGF0ZSB3aGVuIGl0IHJlYWNoZXMgZW5kLCBwbGF5YmFjayByZXN1bWVzIAotICAgICAgICAgICAg
Ly8gd2hlbiB0aGUgc2xpZGVyIGlzIGRyYWdnZWQgZnJvbSB0aGUgZW5kIHRvIGFub3RoZXIgcG9z
aXRpb24gdW5sZXNzIHdlIHBhdXNlIGZpcnN0LiBEbyAKKyAgICAgICAgICAgIC8vIEJlY2F1c2Ug
YSBtZWRpYSBlbGVtZW50IHN0YXlzIGluIG5vbi1wYXVzZWQgc3RhdGUgd2hlbiBpdCByZWFjaGVz
IGVuZCwgcGxheWJhY2sgcmVzdW1lcworICAgICAgICAgICAgLy8gd2hlbiB0aGUgc2xpZGVyIGlz
IGRyYWdnZWQgZnJvbSB0aGUgZW5kIHRvIGFub3RoZXIgcG9zaXRpb24gdW5sZXNzIHdlIHBhdXNl
IGZpcnN0LiBEbwogICAgICAgICAgICAgLy8gYSAiaGFyZCBwYXVzZSIgc28gYW4gZXZlbnQgaXMg
Z2VuZXJhdGVkLCBzaW5jZSB3ZSB3YW50IHRvIHN0YXkgcGF1c2VkIGFmdGVyIHNjcnViYmluZyBm
aW5pc2hlcy4KICAgICAgICAgICAgIHBhdXNlKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAvLyBOb3QgYXQgdGhlIGVuZCBidXQgd2Ugc3RpbGwgd2FudCB0byBwYXVzZSBwbGF5YmFj
ayBzbyB0aGUgbWVkaWEgZW5naW5lIGRvZXNuJ3QgdHJ5IHRvCi0gICAgICAgICAgICAvLyBjb250
aW51ZSBwbGF5aW5nIGR1cmluZyBzY3J1YmJpbmcuIFBhdXNlIHdpdGhvdXQgZ2VuZXJhdGluZyBh
biBldmVudCBhcyB3ZSB3aWxsIAorICAgICAgICAgICAgLy8gY29udGludWUgcGxheWluZyBkdXJp
bmcgc2NydWJiaW5nLiBQYXVzZSB3aXRob3V0IGdlbmVyYXRpbmcgYW4gZXZlbnQgYXMgd2Ugd2ls
bAogICAgICAgICAgICAgLy8gdW5wYXVzZSBhZnRlciBzY3J1YmJpbmcgZmluaXNoZXMuCiAgICAg
ICAgICAgICBzZXRQYXVzZWRJbnRlcm5hbCh0cnVlKTsKICAgICAgICAgfQpAQCAtMzU4MCw3ICsz
NTgwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJl
ZCgpCiAgICAgICAgICAgICBwYXVzZUludGVybmFsKCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
CisKICAgICBzY2hlZHVsZVRpbWV1cGRhdGVFdmVudCh0cnVlKTsKIAogICAgIGlmICghcmVxdWVz
dGVkUGxheWJhY2tSYXRlKCkpCkBAIC0zNjY2LDcgKzM2NjYsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUm
IHRyYWNrKQogICAgIC8vIDEuIEFzc29jaWF0ZSB0aGUgcmVsZXZhbnQgZGF0YSB3aXRoIGEgbmV3
IHRleHQgdHJhY2sgYW5kIGl0cyBjb3JyZXNwb25kaW5nIG5ldyBUZXh0VHJhY2sgb2JqZWN0Lgog
ICAgIGF1dG8gdGV4dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoKkFjdGl2ZURPTU9i
amVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgdHJhY2spOwogICAgIHRleHRU
cmFjay0+c2V0TWVkaWFFbGVtZW50KHRoaXMpOwotICAgIAorCiAgICAgLy8gMi4gU2V0IHRoZSBu
ZXcgdGV4dCB0cmFjaydzIGtpbmQsIGxhYmVsLCBhbmQgbGFuZ3VhZ2UgYmFzZWQgb24gdGhlIHNl
bWFudGljcyBvZiB0aGUgcmVsZXZhbnQgZGF0YSwKICAgICAvLyBhcyBkZWZpbmVkIGJ5IHRoZSBy
ZWxldmFudCBzcGVjaWZpY2F0aW9uLiBJZiB0aGVyZSBpcyBubyBsYWJlbCBpbiB0aGF0IGRhdGEs
IHRoZW4gdGhlIGxhYmVsIG11c3QKICAgICAvLyBiZSBzZXQgdG8gdGhlIGVtcHR5IHN0cmluZy4K
QEAgLTM2NzcsMTUgKzM2NzcsMTUgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKICAgICAvLyA1
LiBQb3B1bGF0ZSB0aGUgbmV3IHRleHQgdHJhY2sncyBsaXN0IG9mIGN1ZXMgd2l0aCB0aGUgY3Vl
cyBwYXJzZWQgc28gZmFyLCBmb2xsbG93aW5nIHRoZSBndWlkZWxpbmVzIGZvciBleHBvc2luZwog
ICAgIC8vIGN1ZXMsIGFuZCBiZWdpbiB1cGRhdGluZyBpdCBkeW5hbWljYWxseSBhcyBuZWNlc3Nh
cnkuCiAgICAgLy8gICAtIFRoZXNzIGFyZSBhbGwgZG9uZSBieSB0aGUgbWVkaWEgZW5naW5lLgot
ICAgIAorCiAgICAgLy8gNi4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydzIHJlYWRpbmVzcyBzdGF0
ZSB0byBsb2FkZWQuCiAgICAgdGV4dFRyYWNrLT5zZXRSZWFkaW5lc3NTdGF0ZShUZXh0VHJhY2s6
OkxvYWRlZCk7Ci0gICAgCisKICAgICAvLyA3LiBTZXQgdGhlIG5ldyB0ZXh0IHRyYWNrJ3MgbW9k
ZSB0byB0aGUgbW9kZSBjb25zaXN0ZW50IHdpdGggdGhlIHVzZXIncyBwcmVmZXJlbmNlcyBhbmQg
dGhlIHJlcXVpcmVtZW50cyBvZgogICAgIC8vIHRoZSByZWxldmFudCBzcGVjaWZpY2F0aW9uIGZv
ciB0aGUgZGF0YS4KICAgICAvLyAgLSBUaGlzIHdpbGwgaGFwcGVuIGluIGNvbmZpZ3VyZVRleHRU
cmFja3MoKQogICAgIHNjaGVkdWxlRGVsYXllZEFjdGlvbihDb25maWd1cmVUZXh0VHJhY2tzKTsK
LSAgICAKKwogICAgIC8vIDguIEFkZCB0aGUgbmV3IHRleHQgdHJhY2sgdG8gdGhlIG1lZGlhIGVs
ZW1lbnQncyBsaXN0IG9mIHRleHQgdHJhY2tzLgogICAgIC8vIDkuIEZpcmUgYW4gZXZlbnQgd2l0
aCB0aGUgbmFtZSBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzIG5vdCBjYW5j
ZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50CiAgICAgLy8gaW50ZXJmYWNlLCB3
aXRoIHRoZSB0cmFjayBhdHRyaWJ1dGUgaW5pdGlhbGl6ZWQgdG8gdGhlIHRleHQgdHJhY2sncyBU
ZXh0VHJhY2sgb2JqZWN0LCBhdCB0aGUgbWVkaWEgZWxlbWVudCdzCkBAIC0zNzk5LDcgKzM3OTks
NyBAQCBFeGNlcHRpb25PcjxUZXh0VHJhY2smPiBIVE1MTWVkaWFFbGVtZW50OjphZGRUZXh0VHJh
Y2soY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdAogICAgIC8vIDMuIElmIHRoZSBsYW5ndWFnZSBh
cmd1bWVudCB3YXMgb21pdHRlZCwgbGV0IGxhbmd1YWdlIGJlIHRoZSBlbXB0eSBzdHJpbmcuCiAg
ICAgLy8gNC4gQ3JlYXRlIGEgbmV3IFRleHRUcmFjayBvYmplY3QuCiAKLSAgICAvLyA1LiBDcmVh
dGUgYSBuZXcgdGV4dCB0cmFjayBjb3JyZXNwb25kaW5nIHRvIHRoZSBuZXcgb2JqZWN0LCBhbmQg
c2V0IGl0cyB0ZXh0IHRyYWNrIGtpbmQgdG8ga2luZCwgaXRzIHRleHQgCisgICAgLy8gNS4gQ3Jl
YXRlIGEgbmV3IHRleHQgdHJhY2sgY29ycmVzcG9uZGluZyB0byB0aGUgbmV3IG9iamVjdCwgYW5k
IHNldCBpdHMgdGV4dCB0cmFjayBraW5kIHRvIGtpbmQsIGl0cyB0ZXh0CiAgICAgLy8gdHJhY2sg
bGFiZWwgdG8gbGFiZWwsIGl0cyB0ZXh0IHRyYWNrIGxhbmd1YWdlIHRvIGxhbmd1YWdlLi4uCiAg
ICAgYXV0byB0cmFjayA9IFRleHRUcmFjazo6Y3JlYXRlKEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzLCBraW5kLCBlbXB0eVN0cmluZygpLCBsYWJlbCwgbGFu
Z3VhZ2UpOwogICAgIGF1dG8mIHRyYWNrUmVmZXJlbmNlID0gdHJhY2suZ2V0KCk7CkBAIC0zODQ4
LDggKzM4NDgsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFkZFRleHRUcmFjayhIVE1M
VHJhY2tFbGVtZW50JiB0cmFja0VsZW1lbnQpCiAgICAgQVNTRVJUKHRyYWNrRWxlbWVudC5oYXNU
YWdOYW1lKHRyYWNrVGFnKSk7CiAKICAgICAvLyA0LjguMTAuMTIuMyBTb3VyY2luZyBvdXQtb2Yt
YmFuZCB0ZXh0IHRyYWNrcwotICAgIC8vIFdoZW4gYSB0cmFjayBlbGVtZW50J3MgcGFyZW50IGVs
ZW1lbnQgY2hhbmdlcyBhbmQgdGhlIG5ldyBwYXJlbnQgaXMgYSBtZWRpYSBlbGVtZW50LCAKLSAg
ICAvLyB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgYWRkIHRoZSB0cmFjayBlbGVtZW50J3MgY29y
cmVzcG9uZGluZyB0ZXh0IHRyYWNrIHRvIHRoZSAKKyAgICAvLyBXaGVuIGEgdHJhY2sgZWxlbWVu
dCdzIHBhcmVudCBlbGVtZW50IGNoYW5nZXMgYW5kIHRoZSBuZXcgcGFyZW50IGlzIGEgbWVkaWEg
ZWxlbWVudCwKKyAgICAvLyB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgYWRkIHRoZSB0cmFjayBl
bGVtZW50J3MgY29ycmVzcG9uZGluZyB0ZXh0IHRyYWNrIHRvIHRoZQogICAgIC8vIG1lZGlhIGVs
ZW1lbnQncyBsaXN0IG9mIHRleHQgdHJhY2tzIC4uLiBbY29udGludWVzIGluIFRleHRUcmFja0xp
c3Q6OmFwcGVuZF0KICAgICBhZGRUZXh0VHJhY2sodHJhY2tFbGVtZW50LnRyYWNrKCkpOwogCkBA
IC0zODc5LDEwICszODc5LDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGlkUmVtb3ZlVGV4
dFRyYWNrKEhUTUxUcmFja0VsZW1lbnQmIHRyYWNrRWxlbWVudCkKIAogICAgIGlmICghbV90ZXh0
VHJhY2tzKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyA0LjguMTAuMTIuMyBTb3Vy
Y2luZyBvdXQtb2YtYmFuZCB0ZXh0IHRyYWNrcwotICAgIC8vIFdoZW4gYSB0cmFjayBlbGVtZW50
J3MgcGFyZW50IGVsZW1lbnQgY2hhbmdlcyBhbmQgdGhlIG9sZCBwYXJlbnQgd2FzIGEgbWVkaWEg
ZWxlbWVudCwgCi0gICAgLy8gdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IHJlbW92ZSB0aGUgdHJh
Y2sgZWxlbWVudCdzIGNvcnJlc3BvbmRpbmcgdGV4dCB0cmFjayBmcm9tIHRoZSAKKyAgICAvLyBX
aGVuIGEgdHJhY2sgZWxlbWVudCdzIHBhcmVudCBlbGVtZW50IGNoYW5nZXMgYW5kIHRoZSBvbGQg
cGFyZW50IHdhcyBhIG1lZGlhIGVsZW1lbnQsCisgICAgLy8gdGhlbiB0aGUgdXNlciBhZ2VudCBt
dXN0IHJlbW92ZSB0aGUgdHJhY2sgZWxlbWVudCdzIGNvcnJlc3BvbmRpbmcgdGV4dCB0cmFjayBm
cm9tIHRoZQogICAgIC8vIG1lZGlhIGVsZW1lbnQncyBsaXN0IG9mIHRleHQgdHJhY2tzLgogICAg
IHJlbW92ZVRleHRUcmFjayh0ZXh0VHJhY2spOwogCkBAIC00MDA5LDEyICs0MDA5LDEyIEBAIHN0
YXRpYyBKU0M6OkpTVmFsdWUgY29udHJvbGxlckpTVmFsdWUoSlNDOjpFeGVjU3RhdGUmIGV4ZWMs
IEpTRE9NR2xvYmFsT2JqZWN0JiBnCiAgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgYXV0byBt
ZWRpYUpTV3JhcHBlciA9IHRvSlMoJmV4ZWMsICZnbG9iYWxPYmplY3QsIG1lZGlhKTsKLSAgICAK
KwogICAgIC8vIFJldHJpZXZlIHRoZSBjb250cm9sbGVyIHRocm91Z2ggdGhlIEpTIG9iamVjdCBn
cmFwaAogICAgIEpTQzo6SlNPYmplY3QqIG1lZGlhSlNXcmFwcGVyT2JqZWN0ID0ganNEeW5hbWlj
RG93bmNhc3Q8SlNDOjpKU09iamVjdCo+KHZtLCBtZWRpYUpTV3JhcHBlcik7CiAgICAgaWYgKCFt
ZWRpYUpTV3JhcHBlck9iamVjdCkKICAgICAgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7Ci0gICAg
CisKICAgICBKU0M6OklkZW50aWZpZXIgY29udHJvbHNIb3N0ID0gSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgImNvbnRyb2xzSG9zdCIpOwogICAgIEpTQzo6SlNWYWx1ZSBjb250cm9s
c0hvc3RKU1dyYXBwZXIgPSBtZWRpYUpTV3JhcHBlck9iamVjdC0+Z2V0KCZleGVjLCBjb250cm9s
c0hvc3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6anNOdWxsKCkpOwpA
QCAtNDIwNCwxOSArNDIwNCwxOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRl
eHRUcmFja3MoKQogICAgICAgICAgICAgY3VycmVudEdyb3VwLT5kZWZhdWx0VHJhY2sgPSB0ZXh0
VHJhY2s7CiAKICAgICAgICAgLy8gRG8gbm90IGFkZCB0aGlzIHRyYWNrIHRvIHRoZSBncm91cCBp
ZiBpdCBoYXMgYWxyZWFkeSBiZWVuIGF1dG9tYXRpY2FsbHkgY29uZmlndXJlZAotICAgICAgICAv
LyBhcyB3ZSBvbmx5IHdhbnQgdG8gY2FsbCBjb25maWd1cmVUZXh0VHJhY2sgb25jZSBwZXIgdHJh
Y2sgc28gdGhhdCBhZGRpbmcgYW5vdGhlciAKLSAgICAgICAgLy8gdHJhY2sgYWZ0ZXIgdGhlIGlu
aXRpYWwgY29uZmlndXJhdGlvbiBkb2Vzbid0IHJlY29uZmlndXJlIGV2ZXJ5IHRyYWNrIC0gb25s
eSB0aG9zZSAKLSAgICAgICAgLy8gdGhhdCBzaG91bGQgYmUgY2hhbmdlZCBieSB0aGUgbmV3IGFk
ZGl0aW9uLiBGb3IgZXhhbXBsZSBhbGwgbWV0YWRhdGEgdHJhY2tzIGFyZSAKLSAgICAgICAgLy8g
ZGlzYWJsZWQgYnkgZGVmYXVsdCwgYW5kIHdlIGRvbid0IHdhbnQgYSB0cmFjayB0aGF0IGhhcyBi
ZWVuIGVuYWJsZWQgYnkgc2NyaXB0IAorICAgICAgICAvLyBhcyB3ZSBvbmx5IHdhbnQgdG8gY2Fs
bCBjb25maWd1cmVUZXh0VHJhY2sgb25jZSBwZXIgdHJhY2sgc28gdGhhdCBhZGRpbmcgYW5vdGhl
cgorICAgICAgICAvLyB0cmFjayBhZnRlciB0aGUgaW5pdGlhbCBjb25maWd1cmF0aW9uIGRvZXNu
J3QgcmVjb25maWd1cmUgZXZlcnkgdHJhY2sgLSBvbmx5IHRob3NlCisgICAgICAgIC8vIHRoYXQg
c2hvdWxkIGJlIGNoYW5nZWQgYnkgdGhlIG5ldyBhZGRpdGlvbi4gRm9yIGV4YW1wbGUgYWxsIG1l
dGFkYXRhIHRyYWNrcyBhcmUKKyAgICAgICAgLy8gZGlzYWJsZWQgYnkgZGVmYXVsdCwgYW5kIHdl
IGRvbid0IHdhbnQgYSB0cmFjayB0aGF0IGhhcyBiZWVuIGVuYWJsZWQgYnkgc2NyaXB0CiAgICAg
ICAgIC8vIHRvIGJlIGRpc2FibGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhIG5ldyBtZXRhZGF0YSB0
cmFjayBpcyBhZGRlZCBsYXRlci4KICAgICAgICAgaWYgKHRleHRUcmFjay0+aGFzQmVlbkNvbmZp
Z3VyZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAKKwogICAgICAgICBpZiAo
dGV4dFRyYWNrLT5sYW5ndWFnZSgpLmxlbmd0aCgpKQogICAgICAgICAgICAgY3VycmVudEdyb3Vw
LT5oYXNTcmNMYW5nID0gdHJ1ZTsKICAgICAgICAgY3VycmVudEdyb3VwLT50cmFja3MuYXBwZW5k
KHRleHRUcmFjayk7CiAgICAgfQotICAgIAorCiAgICAgaWYgKGNhcHRpb25BbmRTdWJ0aXRsZVRy
YWNrcy50cmFja3Muc2l6ZSgpKQogICAgICAgICBjb25maWd1cmVUZXh0VHJhY2tHcm91cChjYXB0
aW9uQW5kU3VidGl0bGVUcmFja3MpOwogICAgIGlmIChkZXNjcmlwdGlvblRyYWNrcy50cmFja3Mu
c2l6ZSgpKQpAQCAtNDI4OSw3ICs0Mjg5LDcgQEAgVVJMIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVj
dE5leHRTb3VyY2VDaGlsZChDb250ZW50VHlwZSogY29udGVudFR5cGUsIFN0cmluZyoga2UKICNl
bmRpZgogICAgICAgICBpZiAobWVkaWFVUkwuaXNFbXB0eSgpKQogICAgICAgICAgICAgZ290byBD
aGVja0FnYWluOwotICAgICAgICAKKwogICAgICAgICBpZiAoYXV0byogbWVkaWEgPSBzb3VyY2Ut
PnBhcnNlZE1lZGlhQXR0cmlidXRlKCkpIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgICAg
ICBpZiAoc2hvdWxkTG9nKQpAQCAtNDM3MiwxMyArNDM3MiwxMyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNvdXJjZVdhc0FkZGVkKEhUTUxTb3VyY2VFbGVtZW50JiBzb3VyY2UpCiAgICAgICAg
IExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc0FkZGVkKCVwKSAtICdzcmMn
IGlzICVzIiwgdGhpcywgdXJsRm9yTG9nZ2luZ01lZGlhKHVybCkudXRmOCgpLmRhdGEoKSk7CiAg
ICAgfQogI2VuZGlmCi0gICAgCisKICAgICAvLyBXZSBzaG91bGQgb25seSBjb25zaWRlciBhIDxz
b3VyY2U+IGVsZW1lbnQgd2hlbiB0aGVyZSBpcyBub3Qgc3JjIGF0dHJpYnV0ZSBhdCBhbGwuCiAg
ICAgaWYgKGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc3JjQXR0cikpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIC8vIDQuOC44IC0gSWYgYSBzb3VyY2UgZWxlbWVudCBpcyBpbnNl
cnRlZCBhcyBhIGNoaWxkIG9mIGEgbWVkaWEgZWxlbWVudCB0aGF0IGhhcyBubyBzcmMgCi0gICAg
Ly8gYXR0cmlidXRlIGFuZCB3aG9zZSBuZXR3b3JrU3RhdGUgaGFzIHRoZSB2YWx1ZSBORVRXT1JL
X0VNUFRZLCB0aGUgdXNlciBhZ2VudCBtdXN0IGludm9rZSAKKyAgICAvLyA0LjguOCAtIElmIGEg
c291cmNlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgYXMgYSBjaGlsZCBvZiBhIG1lZGlhIGVsZW1lbnQg
dGhhdCBoYXMgbm8gc3JjCisgICAgLy8gYXR0cmlidXRlIGFuZCB3aG9zZSBuZXR3b3JrU3RhdGUg
aGFzIHRoZSB2YWx1ZSBORVRXT1JLX0VNUFRZLCB0aGUgdXNlciBhZ2VudCBtdXN0IGludm9rZQog
ICAgIC8vIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVzb3VyY2Ugc2VsZWN0aW9uIGFsZ29yaXRobS4K
ICAgICBpZiAobV9uZXR3b3JrU3RhdGUgPT0gTkVUV09SS19FTVBUWSkgewogICAgICAgICBtX25l
eHRDaGlsZE5vZGVUb0NvbnNpZGVyID0gJnNvdXJjZTsKQEAgLTQzOTcsMTcgKzQzOTcsMTcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VXYXNBZGRlZChIVE1MU291cmNlRWxlbWVudCYg
c291cmNlKQogCiAgICAgaWYgKG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXIpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKKwogICAgIC8vIDQuOC45LjUsIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0
aG0sIHNvdXJjZSBlbGVtZW50cyBzZWN0aW9uOgogICAgIC8vIDIxLiBXYWl0IHVudGlsIHRoZSBu
b2RlIGFmdGVyIHBvaW50ZXIgaXMgYSBub2RlIG90aGVyIHRoYW4gdGhlIGVuZCBvZiB0aGUgbGlz
dC4gKFRoaXMgc3RlcCBtaWdodCB3YWl0IGZvcmV2ZXIuKQogICAgIC8vIDIyLiBBc3luY2hyb25v
dXNseSBhd2FpdCBhIHN0YWJsZSBzdGF0ZS4uLgotICAgIC8vIDIzLiBTZXQgdGhlIGVsZW1lbnQn
cyBkZWxheWluZy10aGUtbG9hZC1ldmVudCBmbGFnIGJhY2sgdG8gdHJ1ZSAodGhpcyBkZWxheXMg
dGhlIGxvYWQgZXZlbnQgYWdhaW4sIGluIGNhc2UgCisgICAgLy8gMjMuIFNldCB0aGUgZWxlbWVu
dCdzIGRlbGF5aW5nLXRoZS1sb2FkLWV2ZW50IGZsYWcgYmFjayB0byB0cnVlICh0aGlzIGRlbGF5
cyB0aGUgbG9hZCBldmVudCBhZ2FpbiwgaW4gY2FzZQogICAgIC8vIGl0IGhhc24ndCBiZWVuIGZp
cmVkIHlldCkuCiAgICAgc2V0U2hvdWxkRGVsYXlMb2FkRXZlbnQodHJ1ZSk7CiAKICAgICAvLyAy
NC4gU2V0IHRoZSBuZXR3b3JrU3RhdGUgYmFjayB0byBORVRXT1JLX0xPQURJTkcuCiAgICAgbV9u
ZXR3b3JrU3RhdGUgPSBORVRXT1JLX0xPQURJTkc7Ci0gICAgCisKICAgICAvLyAyNS4gSnVtcCBi
YWNrIHRvIHRoZSBmaW5kIG5leHQgY2FuZGlkYXRlIHN0ZXAgYWJvdmUuCiAgICAgbV9uZXh0Q2hp
bGROb2RlVG9Db25zaWRlciA9ICZzb3VyY2U7CiAgICAgc2NoZWR1bGVOZXh0U291cmNlQ2hpbGQo
KTsKQEAgLTQ0MzIsNyArNDQzMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291cmNlV2Fz
UmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCYgc291cmNlKQogICAgICAgICBMT0coTWVkaWEsICJI
VE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VSZW1vdmVkKCVwKSAtIG1fbmV4dENoaWxkTm9kZVRvQ29u
c2lkZXIgc2V0IHRvICVwIiwgdGhpcywgbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlci5nZXQoKSk7
CiAgICAgfSBlbHNlIGlmICgmc291cmNlID09IG1fY3VycmVudFNvdXJjZU5vZGUpIHsKICAgICAg
ICAgLy8gQ2xlYXIgdGhlIGN1cnJlbnQgc291cmNlIG5vZGUgcG9pbnRlciwgYnV0IGRvbid0IGNo
YW5nZSB0aGUgbW92aWUgYXMgdGhlIHNwZWMgc2F5czoKLSAgICAgICAgLy8gNC44LjggLSBEeW5h
bWljYWxseSBtb2RpZnlpbmcgYSBzb3VyY2UgZWxlbWVudCBhbmQgaXRzIGF0dHJpYnV0ZSB3aGVu
IHRoZSBlbGVtZW50IGlzIGFscmVhZHkgCisgICAgICAgIC8vIDQuOC44IC0gRHluYW1pY2FsbHkg
bW9kaWZ5aW5nIGEgc291cmNlIGVsZW1lbnQgYW5kIGl0cyBhdHRyaWJ1dGUgd2hlbiB0aGUgZWxl
bWVudCBpcyBhbHJlYWR5CiAgICAgICAgIC8vIGluc2VydGVkIGluIGEgdmlkZW8gb3IgYXVkaW8g
ZWxlbWVudCB3aWxsIGhhdmUgbm8gZWZmZWN0LgogICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gbnVsbHB0cjsKICAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c291cmNl
UmVtb3ZlZCglcCkgLSBtX2N1cnJlbnRTb3VyY2VOb2RlIHNldCB0byAwIiwgdGhpcyk7CkBAIC00
NDU1LDggKzQ0NTUsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNo
YW5nZWQoTWVkaWFQbGF5ZXIqKQogICAgIC8vIDQuOC4xMC45IHN0ZXAgMTQgJiAxNS4gIE5lZWRl
ZCBpZiBubyBSZWFkeVN0YXRlIGNoYW5nZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNlZWsuCiAg
ICAgaWYgKG1fc2Vla1JlcXVlc3RlZCAmJiBtX3JlYWR5U3RhdGUgPj0gSEFWRV9DVVJSRU5UX0RB
VEEgJiYgIW1fcGxheWVyLT5zZWVraW5nKCkpCiAgICAgICAgIGZpbmlzaFNlZWsoKTsKLSAgICAK
LSAgICAvLyBBbHdheXMgY2FsbCBzY2hlZHVsZVRpbWV1cGRhdGVFdmVudCB3aGVuIHRoZSBtZWRp
YSBlbmdpbmUgcmVwb3J0cyBhIHRpbWUgZGlzY29udGludWl0eSwgCisKKyAgICAvLyBBbHdheXMg
Y2FsbCBzY2hlZHVsZVRpbWV1cGRhdGVFdmVudCB3aGVuIHRoZSBtZWRpYSBlbmdpbmUgcmVwb3J0
cyBhIHRpbWUgZGlzY29udGludWl0eSwKICAgICAvLyBpdCB3aWxsIG9ubHkgcXVldWUgYSAndGlt
ZXVwZGF0ZScgZXZlbnQgaWYgd2UgaGF2ZW4ndCBhbHJlYWR5IHBvc3RlZCBvbmUgYXQgdGhlIGN1
cnJlbnQKICAgICAvLyBtb3ZpZSB0aW1lLgogICAgIGVsc2UKQEAgLTQ3NzYsNyArNDc3Niw3IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFi
bGUoTWVkaWFQbGF5ZXIqKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNoYXJh
Y3RlcmlzdGljQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQoJXApIiwgdGhpcyk7
Ci0gICAgCisKICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC00ODc1LDcgKzQ4NzUsNyBAQCBib29sIEhUTUxNZWRp
YUVsZW1lbnQ6OnBvdGVudGlhbGx5UGxheWluZygpIGNvbnN0CiB7CiAgICAgaWYgKGlzQmxvY2tl
ZE9uTWVkaWFDb250cm9sbGVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAg
IGlmICghY291bGRQbGF5SWZFbm91Z2hEYXRhKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApA
QCAtNDkxMCw4ICs0OTEwLDggQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjplbmRlZFBsYXliYWNr
KCkgY29uc3QKIAogICAgIC8vIDQuOC4xMC44IFBsYXlpbmcgdGhlIG1lZGlhIHJlc291cmNlCiAK
LSAgICAvLyBBIG1lZGlhIGVsZW1lbnQgaXMgc2FpZCB0byBoYXZlIGVuZGVkIHBsYXliYWNrIHdo
ZW4gdGhlIGVsZW1lbnQncyAKLSAgICAvLyByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBIQVZFX01F
VEFEQVRBIG9yIGdyZWF0ZXIsIAorICAgIC8vIEEgbWVkaWEgZWxlbWVudCBpcyBzYWlkIHRvIGhh
dmUgZW5kZWQgcGxheWJhY2sgd2hlbiB0aGUgZWxlbWVudCdzCisgICAgLy8gcmVhZHlTdGF0ZSBh
dHRyaWJ1dGUgaXMgSEFWRV9NRVRBREFUQSBvciBncmVhdGVyLAogICAgIGlmIChtX3JlYWR5U3Rh
dGUgPCBIQVZFX01FVEFEQVRBKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTQ5MjIsNyAr
NDkyMiw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZW5kZWRQbGF5YmFjaygpIGNvbnN0CiAg
ICAgaWYgKHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpID4gMCkKICAgICAgICAgcmV0dXJuIGR1ciA+
IE1lZGlhVGltZTo6emVyb1RpbWUoKSAmJiBub3cgPj0gZHVyICYmICghbG9vcCgpIHx8IG1fbWVk
aWFDb250cm9sbGVyKTsKIAotICAgIC8vIG9yIHRoZSBjdXJyZW50IHBsYXliYWNrIHBvc2l0aW9u
IGlzIHRoZSBlYXJsaWVzdCBwb3NzaWJsZSBwb3NpdGlvbiBhbmQgdGhlIGRpcmVjdGlvbiAKKyAg
ICAvLyBvciB0aGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBpcyB0aGUgZWFybGllc3QgcG9z
c2libGUgcG9zaXRpb24gYW5kIHRoZSBkaXJlY3Rpb24KICAgICAvLyBvZiBwbGF5YmFjayBpcyBi
YWNrd2FyZHMKICAgICBpZiAocmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgPCAwKQogICAgICAgICBy
ZXR1cm4gbm93IDw9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKQEAgLTQ5MzcsNyArNDkzNyw3IEBA
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c3RvcHBlZER1ZVRvRXJyb3JzKCkgY29uc3QKICAgICAg
ICAgaWYgKCFzZWVrYWJsZVJhbmdlcy0+Y29udGFpbihjdXJyZW50VGltZSgpKSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApA
QCAtNDk1OCw3ICs0OTU4LDcgQEAgTWVkaWFUaW1lIEhUTUxNZWRpYUVsZW1lbnQ6Om1heFRpbWVT
ZWVrYWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGxheWVyID8gbV9wbGF5ZXItPm1heFRp
bWVTZWVrYWJsZSgpIDogTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogfQotICAgIAorCiB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVZvbHVtZSgpCiB7CiAgICAgaWYgKCFtX3BsYXllcikKQEAg
LTUwMjEsNyArNTAyMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheVN0YXRl
KFVwZGF0ZVN0YXRlIHVwZGF0ZVN0YXRlKQogICAgICAgICAgICAgbWVkaWFDb250cm9scygpLT5w
bGF5YmFja1N0b3BwZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKKwogICAgIGJv
b2wgc2hvdWxkQmVQbGF5aW5nID0gcG90ZW50aWFsbHlQbGF5aW5nKCk7CiAgICAgYm9vbCBwbGF5
ZXJQYXVzZWQgPSBtX3BsYXllci0+cGF1c2VkKCk7CiAKQEAgLTUwNzgsNyArNTA3OCw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheVN0YXRlKFVwZGF0ZVN0YXRlIHVwZGF0ZVN0
YXRlKQogICAgICAgICBpZiAoaGFzTWVkaWFDb250cm9scygpKQogICAgICAgICAgICAgbWVkaWFD
b250cm9scygpLT5wbGF5YmFja1N0b3BwZWQoKTsKICAgICB9Ci0gICAgCisKICAgICB1cGRhdGVN
ZWRpYUNvbnRyb2xsZXIoKTsKICAgICB1cGRhdGVSZW5kZXJlcigpOwogCkBAIC01MTQ3LDkgKzUx
NDcsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVzZXJDYW5jZWxsZWRMb2FkKCkKICAgICBk
ZXRhY2hNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKLSAgICAvLyA0IC0gSWYgdGhlIG1lZGlhIGVs
ZW1lbnQncyByZWFkeVN0YXRlIGF0dHJpYnV0ZSBoYXMgYSB2YWx1ZSBlcXVhbCB0byBIQVZFX05P
VEhJTkcsIHNldCB0aGUgCi0gICAgLy8gZWxlbWVudCdzIG5ldHdvcmtTdGF0ZSBhdHRyaWJ1dGUg
dG8gdGhlIE5FVFdPUktfRU1QVFkgdmFsdWUgYW5kIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgCi0g
ICAgLy8gc2ltcGxlIGV2ZW50IG5hbWVkIGVtcHRpZWQgYXQgdGhlIGVsZW1lbnQuIE90aGVyd2lz
ZSwgc2V0IHRoZSBlbGVtZW50J3MgbmV0d29ya1N0YXRlIAorICAgIC8vIDQgLSBJZiB0aGUgbWVk
aWEgZWxlbWVudCdzIHJlYWR5U3RhdGUgYXR0cmlidXRlIGhhcyBhIHZhbHVlIGVxdWFsIHRvIEhB
VkVfTk9USElORywgc2V0IHRoZQorICAgIC8vIGVsZW1lbnQncyBuZXR3b3JrU3RhdGUgYXR0cmli
dXRlIHRvIHRoZSBORVRXT1JLX0VNUFRZIHZhbHVlIGFuZCBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBh
CisgICAgLy8gc2ltcGxlIGV2ZW50IG5hbWVkIGVtcHRpZWQgYXQgdGhlIGVsZW1lbnQuIE90aGVy
d2lzZSwgc2V0IHRoZSBlbGVtZW50J3MgbmV0d29ya1N0YXRlCiAgICAgLy8gYXR0cmlidXRlIHRv
IHRoZSBORVRXT1JLX0lETEUgdmFsdWUuCiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBIQVZFX05P
VEhJTkcpIHsKICAgICAgICAgbV9uZXR3b3JrU3RhdGUgPSBORVRXT1JLX0VNUFRZOwpAQCAtNTIz
OSw3ICs1MjM5LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhUGxheWVyKERl
bGF5ZWRBY3Rpb25UeXBlIGZsYWdzKQogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblN1c3Bl
bmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogewotICAgIHJldHVybiB0cnVlOyAKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogY29uc3QgY2hhciogSFRNTE1lZGlhRWxlbWVudDo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0CkBAIC01NDY2LDcgKzU0NjYsNyBAQCBib29sIEhUTUxNZWRp
YUVsZW1lbnQ6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IFJlZjxFdmVudAogICAgIH0KIAogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmFk
ZEV2ZW50TGlzdGVuZXIoJXApIC0gJ3dlYmtpdHBsYXliYWNrdGFyZ2V0YXZhaWxhYmlsaXR5Y2hh
bmdlZCciLCB0aGlzKTsKLSAgICAKKwogICAgIGVucXVldWVQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eUNoYW5nZWRFdmVudCgpOyAvLyBFbnN1cmUgdGhlIGV2ZW50IGxpc3RlbmVyIGdldHMgYXQg
bGVhc3Qgb25lIGV2ZW50LgogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNTU0NiwxNyArNTU0Niwx
NyBAQCBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6bWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+bWF4RmFzdEZvcndhcmRSYXRlKCkg
OiAwOwogfQotICAgIAorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzRnVsbHNjcmVlbigpIGNv
bnN0CiB7CiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBWaWRlb0Z1bGxzY3JlZW5N
b2RlTm9uZSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCisKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgaWYgKGRvY3VtZW50KCkud2Via2l0SXNGdWxsU2NyZWVuKCkgJiYgZG9j
dW1lbnQoKS53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSA9PSB0aGlzKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIAorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBA
IC01NTczLDcgKzU1NzMsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzU3RhbmRhcmRGdWxs
c2NyZWVuKCkgY29uc3QKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dG9nZ2xlU3RhbmRhcmRGdWxs
c2NyZWVuU3RhdGUoKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnRvZ2ds
ZVN0YW5kYXJkRnVsbHNjcmVlblN0YXRlKCVwKSAtIGlzU3RhbmRhcmRGdWxsc2NyZWVuKCkgaXMg
JXMiLCB0aGlzLCBib29sU3RyaW5nKGlzU3RhbmRhcmRGdWxsc2NyZWVuKCkpKTsKLSAgICAKKwog
ICAgIGlmIChpc1N0YW5kYXJkRnVsbHNjcmVlbigpKQogICAgICAgICBleGl0RnVsbHNjcmVlbigp
OwogICAgIGVsc2UKQEAgLTU3MzcsNyArNTczNyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
d2FpdEZvclByZXBhcmVkRm9ySW5saW5lVGhlbihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21w
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgCisKICAgICBtX3ByZXBhcmVkRm9ySW5saW5lQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKTsKIH0KIApAQCAtNTc0Nyw3ICs1NzQ3LDcgQEAgYm9vbCBIVE1M
TWVkaWFFbGVtZW50Ojppc1ZpZGVvTGF5ZXJJbmxpbmUoKQogewogICAgIHJldHVybiAhbV92aWRl
b0Z1bGxzY3JlZW5MYXllcjsKIH07Ci0gICAgCisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0
VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllciwgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV92aWRlb0Z1bGxz
Y3JlZW5MYXllciA9IHBsYXRmb3JtTGF5ZXI7CkBAIC01NzU1LDE0ICs1NzU1LDE0IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllciwgV1RGCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBtX3BsYXllci0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIocGxhdGZvcm1MYXllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIGlu
dmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgdXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpOwogI2VuZGlmCiB9Ci0gICAgCisKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZy
YW1lKQogewogICAgIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUgPSBmcmFtZTsKQEAgLTU3NzYsOSAr
NTc3Niw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0
eShNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IGdyYXZpCiAgICAgaWYgKG1fcGxheWVyKQogICAg
ICAgICBtX3BsYXllci0+c2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShncmF2aXR5KTsKIH0KLSAg
ICAKKwogI2Vsc2UKLSAgICAKKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1ZpZGVvTGF5ZXJJ
bmxpbmUoKQogewogICAgIHJldHVybiB0cnVlOwpAQCAtNTgyMyw3ICs1ODIzLDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCkKICNlbHNlCiAgICAgaWYg
KCFoYXNNZWRpYUNvbnRyb2xzKCkgJiYgIWNyZWF0ZU1lZGlhQ29udHJvbHMoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIAorCiAgICAgbWVkaWFDb250cm9scygpLT51cGRhdGVUZXh0VHJhY2tEaXNw
bGF5KCk7CiAjZW5kaWYKIH0KQEAgLTU5NzIsNyArNTk3Miw3IEBAIE1lZGlhQ29udHJvbHMqIEhU
TUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29udHJvbHMoKSBjb25zdAogICAgIFNoYWRvd1Jvb3QqIHJv
b3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCk7CiAgICAgaWYgKCFyb290KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICAKKwogICAgIHJldHVybiBjaGlsZHJlbk9mVHlwZTxNZWRpYUNvbnRy
b2xzPigqcm9vdCkuZmlyc3QoKTsKICNlbmRpZgogfQpAQCAtNjEwNCw3ICs2MTA0LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhY2tEaXNwbGF5KFRleHRUcmFja1Zp
c2liaWxpdHlDaGVja1R5cGUgY2gKICAgICAgICAgcmV0dXJuOwogCiAgICAgbWVkaWFDb250cm9s
cygpLT5jaGFuZ2VkQ2xvc2VkQ2FwdGlvbnNWaXNpYmlsaXR5KCk7Ci0gICAgCisKICAgICB1cGRh
dGVUZXh0VHJhY2tEaXNwbGF5KCk7CiAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJy
ZW50TWVkaWFUaW1lKCkpOwogI2VuZGlmCkBAIC02MjM1LDcgKzYyMzUsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNldE1lZGlhR3JvdXAoY29uc3QgU3RyaW5nJiBncm91cCkKICAgICAgICAg
cmV0dXJuOwogICAgIG1fbWVkaWFHcm91cCA9IGdyb3VwOwogCi0gICAgLy8gV2hlbiBhIG1lZGlh
IGVsZW1lbnQgaXMgY3JlYXRlZCB3aXRoIGEgbWVkaWFncm91cCBhdHRyaWJ1dGUsIGFuZCB3aGVu
IGEgbWVkaWEgZWxlbWVudCdzIG1lZGlhZ3JvdXAgCisgICAgLy8gV2hlbiBhIG1lZGlhIGVsZW1l
bnQgaXMgY3JlYXRlZCB3aXRoIGEgbWVkaWFncm91cCBhdHRyaWJ1dGUsIGFuZCB3aGVuIGEgbWVk
aWEgZWxlbWVudCdzIG1lZGlhZ3JvdXAKICAgICAvLyBhdHRyaWJ1dGUgaXMgc2V0LCBjaGFuZ2Vk
LCBvciByZW1vdmVkLCB0aGUgdXNlciBhZ2VudCBtdXN0IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBz
OgogICAgIC8vIDEuIExldCBtIFt0aGlzXSBiZSB0aGUgbWVkaWEgZWxlbWVudCBpbiBxdWVzdGlv
bi4KICAgICAvLyAyLiBMZXQgbSBoYXZlIG5vIGN1cnJlbnQgbWVkaWEgY29udHJvbGxlciwgaWYg
aXQgY3VycmVudGx5IGhhcyBvbmUuCkBAIC02MjQ2LDE0ICs2MjQ2LDE0IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2V0TWVkaWFHcm91cChjb25zdCBTdHJpbmcmIGdyb3VwKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyA0LiBJZiB0aGVyZSBpcyBhbm90aGVyIG1lZGlhIGVsZW1lbnQgd2hv
c2UgRG9jdW1lbnQgaXMgdGhlIHNhbWUgYXMgbSdzIERvY3VtZW50IChldmVuIGlmIG9uZSBvciBi
b3RoCi0gICAgLy8gb2YgdGhlc2UgZWxlbWVudHMgYXJlIG5vdCBhY3R1YWxseSBpbiB0aGUgRG9j
dW1lbnQpLCAKKyAgICAvLyBvZiB0aGVzZSBlbGVtZW50cyBhcmUgbm90IGFjdHVhbGx5IGluIHRo
ZSBEb2N1bWVudCksCiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4gZWxlbWVudHMgPSBk
b2N1bWVudFRvRWxlbWVudFNldE1hcCgpLmdldCgmZG9jdW1lbnQoKSk7CiAgICAgZm9yIChhdXRv
JiBlbGVtZW50IDogZWxlbWVudHMpIHsKICAgICAgICAgaWYgKGVsZW1lbnQgPT0gdGhpcykKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIC8vIGFuZCB3aGljaCBhbHNvIGhhcyBhIG1l
ZGlhZ3JvdXAgYXR0cmlidXRlLCBhbmQgd2hvc2UgbWVkaWFncm91cCBhdHRyaWJ1dGUgaGFzIHRo
ZSBzYW1lIHZhbHVlIGFzCi0gICAgICAgIC8vIHRoZSBuZXcgdmFsdWUgb2YgbSdzIG1lZGlhZ3Jv
dXAgYXR0cmlidXRlLCAgICAgICAgCisgICAgICAgIC8vIHRoZSBuZXcgdmFsdWUgb2YgbSdzIG1l
ZGlhZ3JvdXAgYXR0cmlidXRlLAogICAgICAgICBpZiAoZWxlbWVudC0+bWVkaWFHcm91cCgpID09
IGdyb3VwKSB7CiAgICAgICAgICAgICAvLyAgdGhlbiBsZXQgY29udHJvbGxlciBiZSB0aGF0IG1l
ZGlhIGVsZW1lbnQncyBjdXJyZW50IG1lZGlhIGNvbnRyb2xsZXIuCiAgICAgICAgICAgICBzZXRD
b250cm9sbGVyKGVsZW1lbnQtPmNvbnRyb2xsZXIoKSk7CkBAIC02Mjg3LDcgKzYyODcsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIoUmVmUHRyPE1lZGlhQ29udHJvbGxl
cj4mJiBjb250cm9sbGVyKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyRm9y
QmluZGluZ3MoTWVkaWFDb250cm9sbGVyKiBjb250cm9sbGVyKQogewogICAgIC8vIDQuOC4xMC4x
MS4yIE1lZGlhIGNvbnRyb2xsZXJzOiBjb250cm9sbGVyIGF0dHJpYnV0ZS4KLSAgICAvLyBPbiBz
ZXR0aW5nLCBpdCBtdXN0IGZpcnN0IHJlbW92ZSB0aGUgZWxlbWVudCdzIG1lZGlhZ3JvdXAgYXR0
cmlidXRlLCBpZiBhbnksIAorICAgIC8vIE9uIHNldHRpbmcsIGl0IG11c3QgZmlyc3QgcmVtb3Zl
IHRoZSBlbGVtZW50J3MgbWVkaWFncm91cCBhdHRyaWJ1dGUsIGlmIGFueSwKICAgICBzZXRNZWRp
YUdyb3VwKHsgfSk7CiAgICAgLy8gYW5kIHRoZW4gc2V0IHRoZSBjdXJyZW50IG1lZGlhIGNvbnRy
b2xsZXIgdG8gdGhlIGdpdmVuIHZhbHVlLgogICAgIHNldENvbnRyb2xsZXIoY29udHJvbGxlcik7
CkBAIC02MzE1LDEzICs2MzE1LDEzIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNCbG9ja2Vk
T25NZWRpYUNvbnRyb2xsZXIoKSBjb25zdAogICAgIGlmICghbV9tZWRpYUNvbnRyb2xsZXIpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIEEgbWVkaWEgZWxlbWVudCBpcyBibG9ja2Vk
IG9uIGl0cyBtZWRpYSBjb250cm9sbGVyIGlmIHRoZSBNZWRpYUNvbnRyb2xsZXIgaXMgYSBibG9j
a2VkIAorICAgIC8vIEEgbWVkaWEgZWxlbWVudCBpcyBibG9ja2VkIG9uIGl0cyBtZWRpYSBjb250
cm9sbGVyIGlmIHRoZSBNZWRpYUNvbnRyb2xsZXIgaXMgYSBibG9ja2VkCiAgICAgLy8gbWVkaWEg
Y29udHJvbGxlciwKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXItPmlzQmxvY2tlZCgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIC8vIG9yIGlmIGl0cyBtZWRpYSBjb250cm9sbGVyIHBv
c2l0aW9uIGlzIGVpdGhlciBiZWZvcmUgdGhlIG1lZGlhIHJlc291cmNlJ3MgZWFybGllc3QgcG9z
c2libGUgCi0gICAgLy8gcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIE1lZGlhQ29udHJvbGxlcidz
IHRpbWVsaW5lIG9yIGFmdGVyIHRoZSBlbmQgb2YgdGhlIG1lZGlhIHJlc291cmNlIAorICAgIC8v
IG9yIGlmIGl0cyBtZWRpYSBjb250cm9sbGVyIHBvc2l0aW9uIGlzIGVpdGhlciBiZWZvcmUgdGhl
IG1lZGlhIHJlc291cmNlJ3MgZWFybGllc3QgcG9zc2libGUKKyAgICAvLyBwb3NpdGlvbiByZWxh
dGl2ZSB0byB0aGUgTWVkaWFDb250cm9sbGVyJ3MgdGltZWxpbmUgb3IgYWZ0ZXIgdGhlIGVuZCBv
ZiB0aGUgbWVkaWEgcmVzb3VyY2UKICAgICAvLyByZWxhdGl2ZSB0byB0aGUgTWVkaWFDb250cm9s
bGVyJ3MgdGltZWxpbmUuCiAgICAgZG91YmxlIG1lZGlhQ29udHJvbGxlclBvc2l0aW9uID0gbV9t
ZWRpYUNvbnRyb2xsZXItPmN1cnJlbnRUaW1lKCk7CiAgICAgaWYgKG1lZGlhQ29udHJvbGxlclBv
c2l0aW9uIDwgMCB8fCBtZWRpYUNvbnRyb2xsZXJQb3NpdGlvbiA+IGR1cmF0aW9uKCkpCkBAIC02
MzM0LDcgKzYzMzQsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVNZWRpYUZyYWdt
ZW50VVJJKCkKIHsKICAgICBNZWRpYUZyYWdtZW50VVJJUGFyc2VyIGZyYWdtZW50UGFyc2VyKG1f
Y3VycmVudFNyYyk7CiAgICAgTWVkaWFUaW1lIGR1ciA9IGR1cmF0aW9uTWVkaWFUaW1lKCk7Ci0g
ICAgCisKICAgICBNZWRpYVRpbWUgc3RhcnQgPSBmcmFnbWVudFBhcnNlci5zdGFydFRpbWUoKTsK
ICAgICBpZiAoc3RhcnQuaXNWYWxpZCgpICYmIHN0YXJ0ID4gTWVkaWFUaW1lOjp6ZXJvVGltZSgp
KSB7CiAgICAgICAgIG1fZnJhZ21lbnRTdGFydFRpbWUgPSBzdGFydDsKQEAgLTYzNDIsNyArNjM0
Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZU1lZGlhRnJhZ21lbnRVUkkoKQog
ICAgICAgICAgICAgbV9mcmFnbWVudFN0YXJ0VGltZSA9IGR1cjsKICAgICB9IGVsc2UKICAgICAg
ICAgbV9mcmFnbWVudFN0YXJ0VGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKLSAgICAK
KwogICAgIE1lZGlhVGltZSBlbmQgPSBmcmFnbWVudFBhcnNlci5lbmRUaW1lKCk7CiAgICAgaWYg
KGVuZC5pc1ZhbGlkKCkgJiYgZW5kID4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpICYmICghbV9mcmFn
bWVudFN0YXJ0VGltZS5pc1ZhbGlkKCkgfHwgZW5kID4gbV9mcmFnbWVudFN0YXJ0VGltZSkpIHsK
ICAgICAgICAgbV9mcmFnbWVudEVuZFRpbWUgPSBlbmQ7CkBAIC02MzUwLDcgKzYzNTAsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVNZWRpYUZyYWdtZW50VVJJKCkKICAgICAgICAg
ICAgIG1fZnJhZ21lbnRFbmRUaW1lID0gZHVyOwogICAgIH0gZWxzZQogICAgICAgICBtX2ZyYWdt
ZW50RW5kVGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKLSAgICAKKwogICAgIGlmICht
X2ZyYWdtZW50U3RhcnRUaW1lLmlzVmFsaWQoKSAmJiBtX3JlYWR5U3RhdGUgPCBIQVZFX0ZVVFVS
RV9EQVRBKQogICAgICAgICBwcmVwYXJlVG9QbGF5KCk7CiB9CkBAIC02ODg2LDcgKzY4ODYsNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93
Um9vdCogcm9vdCkKIAogICAgIGF1dG8gbWVkaWFKU1dyYXBwZXIgPSB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgKnRoaXMpOwogICAgIGF1dG8gbWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXIgPSB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgKm1fbWVkaWFDb250cm9sc0hvc3QpOwotICAgIAorCiAg
ICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdMaXN0OwogICAgIGFyZ0xpc3QuYXBwZW5k
KHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCByb290KSk7CiAgICAgYXJnTGlzdC5hcHBlbmQobWVk
aWFKU1dyYXBwZXIpOwpAQCAtNjkwOSw3ICs2OTA5LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgSlNDOjpK
U09iamVjdCogbWVkaWFKU1dyYXBwZXJPYmplY3QgPSBtZWRpYUpTV3JhcHBlci50b09iamVjdChl
eGVjKTsKICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIEpTQzo6SWRlbnRpZmll
ciBjb250cm9sc0hvc3QgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJmV4ZWMtPnZtKCks
ICJjb250cm9sc0hvc3QiKTsKLSAgICAKKwogICAgIEFTU0VSVCghbWVkaWFKU1dyYXBwZXJPYmpl
Y3QtPmhhc1Byb3BlcnR5KGV4ZWMsIGNvbnRyb2xzSG9zdCkpOwogCiAgICAgbWVkaWFKU1dyYXBw
ZXJPYmplY3QtPnB1dERpcmVjdChleGVjLT52bSgpLCBjb250cm9sc0hvc3QsIG1lZGlhQ29udHJv
bHNIb3N0SlNXcmFwcGVyLCBKU0M6OkRvbnREZWxldGUgfCBKU0M6OkRvbnRFbnVtIHwgSlNDOjpS
ZWFkT25seSk7CkBAIC02OTE3LDcgKzY5MTcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRp
ZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKICAgICBKU0M6OkpTT2Jq
ZWN0KiBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlck9iamVjdCA9IGpzRHluYW1pY0Rvd25jYXN0
PEpTQzo6SlNPYmplY3QqPih2bSwgbWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXIpOwogICAgIGlm
ICghbWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXJPYmplY3QpCiAgICAgICAgIHJldHVybjsKLSAg
ICAKKwogICAgIEpTQzo6SWRlbnRpZmllciBjb250cm9sbGVyID0gSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZleGVjLT52bSgpLCAiY29udHJvbGxlciIpOwogCiAgICAgQVNTRVJUKCFjb250
cm9sbGVyT2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCBjb250cm9sbGVyKSk7CkBAIC03MDM4LDcg
KzcwMzgsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgSFRNTE1lZGlhRWxlbWVudDo6ZmlsZVNpemUo
KSBjb25zdAogewogICAgIGlmIChtX3BsYXllcikKICAgICAgICAgcmV0dXJuIG1fcGxheWVyLT5m
aWxlU2l6ZSgpOwotICAgIAorCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTcxMzcsMTIgKzcxMzcs
MTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptYXlSZXN1bWVQbGF5YmFjayhib29sIHNob3Vs
ZFJlc3VtZSkKICAgICBpZiAocGF1c2VkKCkgJiYgc2hvdWxkUmVzdW1lKQogICAgICAgICBwbGF5
KCk7CiB9Ci0gICAgCisKIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVNlc3Npb25UaXRs
ZSgpIGNvbnN0CiB7CiAgICAgaWYgKGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
dGl0bGVBdHRyKSkKICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24odGl0bGVBdHRyKTsKLSAgICAKKwogICAgIHJldHVybiBtX2N1cnJlbnRTcmM7CiB9CiAKQEAg
LTcxODYsMTIgKzcxODYsMTIgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWVraW5nU3VwcG9ydFF1aXJr
KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRvY3VtZW50LnNldHRpbmdzKCkubmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgCisKICAgICBTdHJpbmcgaG9zdCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCkudXJsKCkuaG9z
dCgpOwogICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShob3N0LCAibmV0
ZmxpeC5jb20iKSB8fCBob3N0LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5uZXRmbGl4LmNv
bSIpOwogfQogCi1ib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnN1cHBvcnRzU2Vla2luZygpIGNvbnN0
IAorYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzdXBwb3J0c1NlZWtpbmcoKSBjb25zdAogewogICAg
IHJldHVybiAhbmVlZHNTZWVraW5nU3VwcG9ydFF1aXJrKGRvY3VtZW50KCkpICYmICFpc0xpdmVT
dHJlYW0oKTsKIH0KQEAgLTczNTIsMTMgKzczNTIsMTMgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50
Ojpkb2VzSGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZSwgQXRvbWlj
U3QKICAgICBhdXRvJiBlbGVtZW50VmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChlbGVtZW50VmFsdWUuaXNOdWxsKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IEhUTUxO
YW1lczo6eF9pdHVuZXNfaW5oZXJpdF91cmlfcXVlcnlfY29tcG9uZW50QXR0ciAmJiAhZG9jdW1l
bnQoKS5zZXR0aW5ncygpLmVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBvbmVudCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAodmFsdWUpCiAgICAgICAgICp2YWx1ZSA9IGVsZW1l
bnRWYWx1ZTsKLSAgICAKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC03NDYzLDE0ICs3NDYz
LDE0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBs
YXliYWNrQ2hhbmdlZCgpCiAgICAgaWYgKHBvdGVudGlhbGx5UGxheWluZygpICYmIG1fbWVkaWFT
ZXNzaW9uLT5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCp0aGlzKSAmJiAhaXNG
dWxsc2NyZWVuKCkpCiAgICAgICAgIGVudGVyRnVsbHNjcmVlbigpOwogfQotICAgIAorCiBib29s
IEhUTUxNZWRpYUVsZW1lbnQ6OmlzVmlkZW9Ub29TbWFsbEZvcklubGluZVBsYXliYWNrKCkKIHsK
ICAgICBhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7Ci0gICAgCisKICAgICBpZiAo
IXJlbmRlcmVyIHx8ICFpczxSZW5kZXJWaWRlbz4oKnJlbmRlcmVyKSkKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgCisKICAgICBJbnRSZWN0IHZpZGVvQm94ID0gZG93bmNhc3Q8UmVuZGVyVmlk
ZW8+KCpyZW5kZXJlcikudmlkZW9Cb3goKTsKICAgICByZXR1cm4gKHZpZGVvQm94LndpZHRoKCkg
PD0gMSB8fCB2aWRlb0JveC5oZWlnaHQoKSA8PSAxKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGYzYzNkNjhkYjNjLi43NDEyNzgwMWViNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC03NjksNyArNzY5LDcgQEAg
dm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0
aW9uIHBvbGljeSkKICAgICAgICAgLy8gRG93bmxvYWQgbWF5IHVzZSB0aGlzIGtub3dsZWRnZSBm
b3IgcHVycG9zZXMgdW5yZWxhdGVkIHRvIGNvb2tpZXMsIG5vdGFibHkgZm9yIHNldHRpbmcgZmls
ZSBxdWFyYW50aW5lIGRhdGEuCiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnNldE9yaWdpbmFsVVJM
Rm9yRG93bmxvYWRSZXF1ZXN0KG1fcmVxdWVzdCk7CiAKLSAgICAgICAgU2Vzc2lvbklEIHNlc3Np
b25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAgICAgICBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAg
ICAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkpCiAgICAgICAgICAgICBzZXNzaW9u
SUQgPSBmcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwCmluZGV4IGNjZGMwNTVkY2U0Li42MzY2YzE1YzM3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBjbGFzcyBF
bXB0eUNvbnRleHRNZW51Q2xpZW50IGZpbmFsIDogcHVibGljIENvbnRleHRNZW51Q2xpZW50IHsK
IAogY2xhc3MgRW1wdHlEYXRhYmFzZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIERhdGFiYXNlUHJv
dmlkZXIgewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0
IFNlc3Npb25JRCYpIGZpbmFsCisgICAgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXIm
IGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBm
aW5hbAogICAgIHsKICAgICAgICAgc3RhdGljIGF1dG8mIHNoYXJlZENvbm5lY3Rpb24gPSBJblBy
b2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKICAgICAgICAgcmV0dXJuIHNoYXJl
ZENvbm5lY3Rpb24uY29ubmVjdGlvblRvU2VydmVyKCk7CkBAIC0yOTMsNyArMjkzLDcgQEAgY2xh
c3MgRW1wdHlGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVu
dCB7CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQyKCkgZmluYWwgeyB9CiAgICAgdm9pZCBk
ZXRhY2hlZEZyb21QYXJlbnQzKCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIGNvbnZlcnRNYWluUmVz
b3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciosIFNlc3Npb25JRCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsIHsgfQorICAgIHZv
aWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiwgUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVl
c3QodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBmaW5hbCB7IH0KICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKERvY3VtZW50
TG9hZGVyKiwgdW5zaWduZWQgbG9uZykgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMDQ4NzI2NTllZTUuLmNmYTQ0
ZTRiMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAt
NTcsNiArNTcsMTAgQEAgT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CiBPQkpDX0NMQVNTIE5TVmll
dzsKICNlbmRpZgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKQEAgLTkw
LDcgKzk0LDYgQEAgY2xhc3MgUmVzb3VyY2VIYW5kbGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7
CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBT
ZXNzaW9uSUQ7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKIGNs
YXNzIFVSTDsKQEAgLTI3Myw3ICsyNzYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgPSAwOyAvLyBDYW4gY2hhbmdlIGR1ZSB0byBu
YXZpZ2F0aW9uIG9yIERPTSBtb2RpZmljYXRpb24uCiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2Fj
aGVQYWdlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0TWFpblJlc291cmNl
TG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqLCBTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciosIFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JikgPSAwOwogCiAgICAgdmlydHVhbCBSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50
IG1hcmdpbkhlaWdodCkgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1
Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBi
b29sIGxvYWRNYW51YWxseSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDc1OTJiMjM5NTQzLi45ZWQyYjMxZmQ3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxl
U2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHls
ZVNoZWV0LmNwcApAQCAtMzgsNyArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNh
Y2hlZENTU1N0eWxlU2hlZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZENTU1N0eWxlU2hlZXQ6
OkNhY2hlZENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1
ZXN0KSwgQ1NTU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNv
dXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC9jc3MiLCByZXF1ZXN0LmNoYXJzZXQoKSkpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVl
dC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApp
bmRleCA4M2M2N2RiOWM1My4uZmIzNGQxY2IwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzQsNyArMzQsNyBAQCBzdHJ1
Y3QgQ1NTUGFyc2VyQ29udGV4dDsKIAogY2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVldCBmaW5hbCA6
IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkQ1NTU3R5bGVTaGVl
dChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRDU1NTdHls
ZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmly
dHVhbCB+Q2FjaGVkQ1NTU3R5bGVTaGVldCgpOwogCiAgICAgZW51bSBjbGFzcyBNSU1FVHlwZUNo
ZWNrSGludCB7IFN0cmljdCwgTGF4IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkRm9udC5jcHAKaW5kZXggZDkwNTY3Y2M3YzguLjg4YzUwODNjNmZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCkBAIC00NSw3ICs0NSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkRm9udDo6Q2FjaGVkRm9udChDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBUeXBlIHR5cGUpCitDYWNo
ZWRGb250OjpDYWNoZWRGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVHlwZSB0eXBlKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RG
TW92ZShyZXF1ZXN0KSwgdHlwZSwgc2Vzc2lvbklEKQogICAgICwgbV9sb2FkSW5pdGlhdGVkKGZh
bHNlKQogICAgICwgbV9oYXNDcmVhdGVkRm9udERhdGFXcmFwcGluZ1Jlc291cmNlKGZhbHNlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKaW5kZXggN2U5ZWE4YmQxMDMu
LjAxNWM2NTBkMjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBGb250VGFnZ2VkU2V0dGluZ3M8aW50PiBGb250RmVh
dHVyZVNldHRpbmdzOwogCiBjbGFzcyBDYWNoZWRGb250IDogcHVibGljIENhY2hlZFJlc291cmNl
IHsKIHB1YmxpYzoKLSAgICBDYWNoZWRGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNz
aW9uSUQsIFR5cGUgPSBGb250UmVzb3VyY2UpOworICAgIENhY2hlZEZvbnQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lvbklELCBUeXBlID0gRm9udFJlc291cmNlKTsKICAgICB2
aXJ0dWFsIH5DYWNoZWRGb250KCk7CiAKICAgICB2b2lkIGJlZ2luTG9hZElmTmVlZGVkKENhY2hl
ZFJlc291cmNlTG9hZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlLmNwcAppbmRleCAxN2Q2ZmZiMWU4NS4uOGNhZTcyNDNhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNTUsMTkgKzU1LDE5IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKENhY2hlZFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRJbWFnZTo6
Q2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgSW1h
Z2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogewogICAgIHNldFN0YXR1cyhVbmtub3duKTsKIH0KIAot
Q2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNlc3Npb25J
RCkKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFVSTCgpLCBJbWFnZVJlc291cmNlLCBz
ZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogewogfQogCi1DYWNoZWRJbWFnZTo6Q2Fj
aGVkSW1hZ2UoY29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJiBkb21haW5Gb3JDYWNoZVBhcnRpdGlvbikKK0NhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1hZ2UqIGltYWdlLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pCiAgICAgOiBD
YWNoZWRSZXNvdXJjZSh1cmwsIEltYWdlUmVzb3VyY2UsIHNlc3Npb25JRCkKICAgICAsIG1faW1h
Z2UoaW1hZ2UpCiAgICAgLCBtX2lzTWFudWFsbHlDYWNoZWQodHJ1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggNTJjNDc2Y2ZlMWMuLmE3ZTg5ODZhNTcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApAQCAtNDcsMTAg
KzQ3LDEwIEBAIGNsYXNzIENhY2hlZEltYWdlIGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNl
IHsKICAgICBmcmllbmQgY2xhc3MgTWVtb3J5Q2FjaGU7CiAKIHB1YmxpYzoKLSAgICBDYWNoZWRJ
bWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKLSAgICBDYWNoZWRJbWFn
ZShJbWFnZSosIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICBDYWNoZWRJbWFnZShJbWFnZSosIFBBTDo6U2Vz
c2lvbklEKTsKICAgICAvLyBDb25zdHJ1Y3RvciB0byB1c2UgZm9yIG1hbnVhbGx5IGNhY2hlZCBp
bWFnZXMuCi0gICAgQ2FjaGVkSW1hZ2UoY29uc3QgVVJMJiwgSW1hZ2UqLCBTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pOworICAgIENhY2hlZEltYWdlKGNv
bnN0IFVSTCYsIEltYWdlKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9y
Q2FjaGVQYXJ0aXRpb24pOwogICAgIHZpcnR1YWwgfkNhY2hlZEltYWdlKCk7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBJbWFnZSogaW1hZ2UoKTsgLy8gUmV0dXJucyB0aGUgbnVsbEltYWdlKCkgaWYg
dGhlIGltYWdlIGlzIG5vdCBhdmFpbGFibGUgeWV0LgpAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHZvaWQgY2xlYXIoKTsKIAotICAgIENhY2hlZEltYWdlKENhY2hlZElt
YWdlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRJbWFn
ZShDYWNoZWRJbWFnZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBBTDo6U2Vzc2lvbklEKTsK
IAogICAgIHZvaWQgc2V0Qm9keURhdGFGcm9tKGNvbnN0IENhY2hlZFJlc291cmNlJikgZmluYWw7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCmluZGV4IGQyZDMxNmQ4NGFhLi5kODM1MDliM2MxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC0zNiw3ICszNiw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jl
c291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKK0NhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIHR5cGUsIHNl
c3Npb25JRCkKICAgICAsIG1faWRlbnRpZmllcigwKQogICAgICwgbV9hbGxvd0VuY29kZWREYXRh
UmVwbGFjZW1lbnQodHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSYXdSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmgKaW5kZXggYmI1YTViOGRlZTMuLjE1YThhODY2MDVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaApAQCAtMzMsNyAr
MzMsNyBAQCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgQ2FjaGVkUmF3UmVzb3Vy
Y2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZFJh
d1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBUeXBlLCBTZXNzaW9uSUQpOworICAg
IENhY2hlZFJhd1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBUeXBlLCBQQUw6OlNl
c3Npb25JRCk7CiAKICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3Qg
YmUgYSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAg
ICAvLyB1c2UgQ2FjaGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMg
dG8gYmUgYWJsZSB0byBkZWZlciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggZTVlZWMyNWZlZWUuLmU4NjJhYTBmNDE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAg
LTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgU2Vjb25kcyBkZWFkRGVjb2RlZERhdGFEZWxldGlvbklu
dGVydmFsRm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeQogCiBERUZJTkVfREVCVUdf
T05MWV9HTE9CQUwoUmVmQ291bnRlZExlYWtDb3VudGVyLCBjYWNoZWRSZXNvdXJjZUxlYWtDb3Vu
dGVyLCAoIkNhY2hlZFJlc291cmNlIikpOwogCi1DYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQg
c2Vzc2lvbklEKQorQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdC5yZWxlYXNlUmVzb3VyY2VSZXF1ZXN0KCkp
CiAgICAgLCBtX29wdGlvbnMocmVxdWVzdC5vcHRpb25zKCkpCiAgICAgLCBtX2RlY29kZWREYXRh
RGVsZXRpb25UaW1lcigqdGhpcywgJkNhY2hlZFJlc291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEs
IGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUodHlwZSkpCkBA
IC0xNDUsNyArMTQ1LDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKENhY2hlZFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2kKIH0KIAogLy8gRklYTUU6
IEZvciB0aGlzIGNvbnN0cnVjdG9yLCB3ZSBzaG91bGQgcHJvYmFibHkgbWFuZGF0ZSB0aGF0IHRo
ZSBVUkwgaGFzIG5vIGZyYWdtZW50IGlkZW50aWZpZXIuCi1DYWNoZWRSZXNvdXJjZTo6Q2FjaGVk
UmVzb3VyY2UoY29uc3QgVVJMJiB1cmwsIFR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkK
K0NhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShjb25zdCBVUkwmIHVybCwgVHlwZSB0eXBl
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdCh1cmwp
CiAgICAgLCBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcigqdGhpcywgJkNhY2hlZFJlc291cmNl
OjpkZXN0cm95RGVjb2RlZERhdGEsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JS
ZXNvdXJjZVR5cGUodHlwZSkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IDY5OTZiYmEyNzUy
Li5lMTAxODhlODI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmgKQEAgLTMwLDggKzMwLDggQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlv
bnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJl
c3BvbnNlLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNp
bmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx0aW1lLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
QEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgogICAgICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAK
LSAgICBDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwgU2Vzc2lv
bklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwg
UEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFJlc291cmNlKCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwpAQCAtMTE1LDcgKzExNSw3
IEBAIHB1YmxpYzoKICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAgY29uc3QgVVJMJiB1cmwo
KSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC51cmwoKTt9CiAgICAgY29uc3QgU3Ry
aW5nJiBjYWNoZVBhcnRpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0LmNh
Y2hlUGFydGl0aW9uKCk7IH0KLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1
cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7
IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZTsgfQogCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbG9hZFByaW9yaXR5KCkgY29uc3Qg
eyByZXR1cm4gbV9sb2FkUHJpb3JpdHk7IH0KQEAgLTI4MSw3ICsyODEsNyBAQCBwdWJsaWM6CiAK
IHByb3RlY3RlZDoKICAgICAvLyBDYWNoZWRSZXNvdXJjZSBjb25zdHJ1Y3RvciB0aGF0IG1heSBi
ZSB1c2VkIHdoZW4gdGhlIENhY2hlZFJlc291cmNlIGNhbiBhbHJlYWR5IGJlIGZpbGxlZCB3aXRo
IHJlc3BvbnNlIGRhdGEuCi0gICAgQ2FjaGVkUmVzb3VyY2UoY29uc3QgVVJMJiwgVHlwZSwgU2Vz
c2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZShjb25zdCBVUkwmLCBUeXBlLCBQQUw6OlNlc3Np
b25JRCk7CiAKICAgICB2b2lkIHNldEVuY29kZWRTaXplKHVuc2lnbmVkKTsKICAgICB2b2lkIHNl
dERlY29kZWRTaXplKHVuc2lnbmVkKTsKQEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CiAKICAgICBIYXNoTWFwPENhY2hlZFJlc291cmNl
Q2xpZW50Kiwgc3RkOjp1bmlxdWVfcHRyPENhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxs
YmFjazsKLSAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9z
ZXNzaW9uSUQ7CiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9sb2FkUHJpb3JpdHk7CiAgICAg
c3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtX3Jlc3BvbnNlVGltZXN0YW1w
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcAppbmRleCAzYzRjODkxYTIzNy4uYTFjMzM0NWZlZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAt
NjYsMTIgKzY2LDEyIEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlU2hl
ZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
VXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlclN0eWxlU2hlZXQuaCIKKyNp
bmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTk0LDcgKzk0
LDcgQEAgc3RhdGljIGlubGluZSBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8
VD4+IGNhc3RDYWNoZWRSZXNvdXJjZVRvKFJlc28KICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
Y2FjaGVkUmVzb3VyY2UuZXJyb3IoKSk7CiB9CiAKLXN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3Jl
YXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3N0YXRpYyBDYWNoZWRSZXNvdXJj
ZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHN3
aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2U6CkBA
IC0xNzksOSArMTc5LDkgQEAgRnJhbWUqIENhY2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFt
ZSgpIDogbnVsbHB0cjsKIH0KIAotU2Vzc2lvbklEIENhY2hlZFJlc291cmNlTG9hZGVyOjpzZXNz
aW9uSUQoKSBjb25zdAorUEFMOjpTZXNzaW9uSUQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Np
b25JRCgpIGNvbnN0CiB7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpOworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCA9IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAKICAgICBpZiAoRnJhbWUqIGYgPSBmcmFtZSgp
KQogICAgICAgICBzZXNzaW9uSUQgPSBmLT5wYWdlKCktPnNlc3Npb25JRCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCA0
OTZiMTYxMWM3Zi4uNGNjYzg4NjQ3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0xMjEsNyArMTIxLDcgQEAgcHVibGlj
OgogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0g
Ly8gQ2FuIGJlIG51bGwKICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkg
eyBtX2RvY3VtZW50ID0gZG9jdW1lbnQ7IH0KICAgICB2b2lkIGNsZWFyRG9jdW1lbnRMb2FkZXIo
KSB7IG1fZG9jdW1lbnRMb2FkZXIgPSBudWxscHRyOyB9Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25J
RCgpIGNvbnN0OworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OwogCiAgICAg
dm9pZCByZW1vdmVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcAppbmRleCAwOGI0
MDE2OWQzMy4uNmI2NjMwNDMwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkU1ZH
RG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1v
dmUocmVxdWVzdCksIFNWR0RvY3VtZW50UmVzb3VyY2UsIHNlc3Npb25JRCkKICAgICAsIG1fZGVj
b2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoImFwcGxpY2F0aW9uL3htbCIpKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAppbmRl
eCBiMzU2NmZlMzg3ZS4uNzJlNWQ3MzhkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQgZmluYWwgOiBwdWJsaWMgQ2FjaGVk
UmVzb3VyY2UgewogcHVibGljOgotICAgIGV4cGxpY2l0IENhY2hlZFNWR0RvY3VtZW50KENhY2hl
ZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIGV4cGxpY2l0IENhY2hlZFNWR0Rv
Y3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmly
dHVhbCB+Q2FjaGVkU1ZHRG9jdW1lbnQoKTsKIAogICAgIFNWR0RvY3VtZW50KiBkb2N1bWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcAppbmRleCBhNTQ3NjFmNmI5NC4uYTBjYTg2ZWI4
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAK
QEAgLTQ2LDcgKzQ2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRTVkdGb250
OjpDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCitDYWNoZWRTVkdGb250OjpDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENhY2hl
ZEZvbnQoV1RGTW92ZShyZXF1ZXN0KSwgc2Vzc2lvbklELCBTVkdGb250UmVzb3VyY2UpCiAgICAg
LCBtX2V4dGVybmFsU1ZHRm9udEVsZW1lbnQobnVsbHB0cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oCmluZGV4IGU4ODA4YzZiZGY1Li5iMWIwZDU1OGQy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oCkBAIC0z
NSw3ICszNSw3IEBAIGNsYXNzIFNWR0ZvbnRGYWNlRWxlbWVudDsKIAogY2xhc3MgQ2FjaGVkU1ZH
Rm9udCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRGb250IHsKIHB1YmxpYzoKLSAgICBDYWNoZWRTVkdG
b250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZFNWR0Zv
bnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIGJvb2wg
ZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRvbWljU3RyaW5nJiByZW1vdGVVUkkpIG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCmlu
ZGV4IGIyYmZjYzExZTc4Li41MWQ2MGZmMWY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1DYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkU2NyaXB0OjpDYWNoZWRT
Y3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgU2NyaXB0LCBz
ZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKEFT
Q0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCByZXF1ZXN0LmNoYXJzZXQoKSkp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKaW5kZXggNmJi
MGYzMTJmM2MuLmMwODE2YWVjZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5oCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7
CiAKIGNsYXNzIENhY2hlZFNjcmlwdCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBw
dWJsaWM6Ci0gICAgQ2FjaGVkU2NyaXB0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9u
SUQpOworICAgIENhY2hlZFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgUEFMOjpTZXNz
aW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNjcmlwdCgpOwogCiAgICAgU3RyaW5nVmlldyBz
Y3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRU
ZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFj
ay5jcHAKaW5kZXggMWQ4MmJkNzFiNDIuLmZkM2QwYjhkN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcApAQCAtMzcsNyArMzcsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFRleHRUcmFjazo6Q2FjaGVkVGV4dFRyYWNr
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitD
YWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNvdXJjZShX
VEZNb3ZlKHJlcXVlc3QpLCBUZXh0VHJhY2tSZXNvdXJjZSwgc2Vzc2lvbklEKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4IDhkNGEw
ZTFmYWY3Li4yMWViYzNmNjNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRUZXh0VHJhY2suaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIENhY2hlZFRleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBw
dWJsaWM6Ci0gICAgQ2FjaGVkVGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNz
aW9uSUQpOworICAgIENhY2hlZFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgUEFM
OjpTZXNzaW9uSUQpOwogCiBwcml2YXRlOgogICAgIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWRE
YXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCmluZGV4IGM5ZjBkYzg3
YWZjLi45NGYxZDEwNmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICNpZiBFTkFCTEUoWFNMVCkKIAotQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVk
WFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQg
c2Vzc2lvbklEKQorQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAg
ICAgOiBDYWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBYU0xTdHlsZVNoZWV0LCBzZXNz
aW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJ0ZXh0
L3hzbCIpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFhTTFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xT
dHlsZVNoZWV0LmgKaW5kZXggM2VmMGY2MDBlNDQuLjJkMTdhMDI0ZjkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgKQEAgLTM1LDcg
KzM1LDcgQEAgY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIAogY2xhc3MgQ2FjaGVkWFNMU3R5
bGVTaGVldCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2Fj
aGVkWFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAg
ICBDYWNoZWRYU0xTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQQUw6OlNlc3Np
b25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkWFNMU3R5bGVTaGVldCgpOwogCiAgICAgY29uc3Qg
U3RyaW5nJiBzaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hlZXQ7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IDUxODZhMWJiZWQyLi4yYTA5YjYw
ZTA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBA
IC03MiwxMyArNzIsMTMgQEAgTWVtb3J5Q2FjaGU6Ok1lbW9yeUNhY2hlKCkKICAgICBzdGF0aWNf
YXNzZXJ0KHNpemVvZihsb25nIGxvbmcpID4gc2l6ZW9mKHVuc2lnbmVkKSwgIk51bWVyaWNhbCBv
dmVyZmxvdyBjYW4gaGFwcGVuIHdoZW4gYWRqdXN0aW5nIHRoZSBzaXplIG9mIHRoZSBjYWNoZWQg
bWVtb3J5LiIpOwogfQogCi1hdXRvIE1lbW9yeUNhY2hlOjpzZXNzaW9uUmVzb3VyY2VNYXAoU2Vz
c2lvbklEIHNlc3Npb25JRCkgY29uc3QgLT4gQ2FjaGVkUmVzb3VyY2VNYXAqCithdXRvIE1lbW9y
eUNhY2hlOjpzZXNzaW9uUmVzb3VyY2VNYXAoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25z
dCAtPiBDYWNoZWRSZXNvdXJjZU1hcCoKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQo
KSk7CiAgICAgcmV0dXJuIG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKIH0KIAot
YXV0byBNZW1vcnlDYWNoZTo6ZW5zdXJlU2Vzc2lvblJlc291cmNlTWFwKFNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+IENhY2hlZFJlc291cmNlTWFwJgorYXV0byBNZW1vcnlDYWNoZTo6ZW5zdXJlU2Vz
c2lvblJlc291cmNlTWFwKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gQ2FjaGVkUmVzb3Vy
Y2VNYXAmCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwogICAgIGF1dG8mIG1h
cCA9IG1fc2Vzc2lvblJlc291cmNlcy5hZGQoc2Vzc2lvbklELCBudWxscHRyKS5pdGVyYXRvci0+
dmFsdWU7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmV2YWxpZGF0aW9u
RmFpbGVkKENhY2hlZFJlc291cmNlJiByZXZhbGlkYXRpbmdSZXNvdXJjZSkKICAgICByZXZhbGlk
YXRpbmdSZXNvdXJjZS5jbGVhclJlc291cmNlVG9SZXZhbGlkYXRlKCk7CiB9CiAKLUNhY2hlZFJl
c291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZFJlc291cmNlKiBNZW1v
cnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIEZJWE1FOiBDaGFuZ2UgYWxs
IGNsaWVudHMgdG8gbWFrZSBzdXJlIEhUVFAocykgVVJMcyBoYXZlIG5vIGZyYWdtZW50IGlkZW50
aWZpZXJzIGJlZm9yZSBjYWxsaW5nIGhlcmUuCiAgICAgLy8gQ2FjaGVkUmVzb3VyY2VMb2FkZXIg
aXMgbm93IGRvaW5nIHRoaXMuIEFkZCBhbiBhc3NlcnRpb24gb25jZSBhbGwgb3RoZXIgY2xpZW50
cyBhcmUgZG9pbmcgaXQgdG9vLgpAQCAtMjEwLDcgKzIxMCw3IEBAIHN0YXRpYyBDYWNoZWRJbWFn
ZUNsaWVudCYgZHVtbXlDYWNoZWRJbWFnZUNsaWVudCgpCiBib29sIE1lbW9yeUNhY2hlOjphZGRJ
bWFnZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHImJiBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pCiB7CiAgICAgQVNTRVJUKGltYWdlKTsK
LSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7
CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKTsKICAgICByZW1vdmVJbWFnZUZyb21DYWNoZSh1cmwsIGRvbWFpbkZvckNhY2hl
UGFydGl0aW9uKTsgLy8gUmVtb3ZlIGNhY2hlIGVudHJ5IGlmIGl0IGFscmVhZHkgZXhpc3RzLgog
CiAgICAgUmVmUHRyPEJpdG1hcEltYWdlPiBiaXRtYXBJbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVh
dGUoV1RGTW92ZShpbWFnZSksIG51bGxwdHIpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIGJvb2wgTWVt
b3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZShOYXRpdmVJbWFnZVB0ciYmIGltYWdlLCBjb25zdCBV
UkwmIHVybCwgY29uc3QKIAogdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUo
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pCiB7
Ci0gICAgYXV0byogcmVzb3VyY2VzID0gc2Vzc2lvblJlc291cmNlTWFwKFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKTsKKyAgICBhdXRvKiByZXNvdXJjZXMgPSBzZXNzaW9uUmVzb3VyY2VN
YXAoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgaWYgKCFyZXNvdXJj
ZXMpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgTWVtb3J5Q2Fj
aGU6OmZvckVhY2hSZXNvdXJjZShjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FjaGVkUmVzb3Vy
Y2UmKT4mIGZ1CiAgICAgfQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpmb3JFYWNoU2Vzc2lvblJl
c291cmNlKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZCAoQ2Fj
aGVkUmVzb3VyY2UmKT4mIGZ1bmN0aW9uKQordm9pZCBNZW1vcnlDYWNoZTo6Zm9yRWFjaFNlc3Np
b25SZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdURjo6RnVuY3Rpb248
dm9pZCAoQ2FjaGVkUmVzb3VyY2UmKT4mIGZ1bmN0aW9uKQogewogICAgIGF1dG8gaXQgPSBtX3Nl
c3Npb25SZXNvdXJjZXMuZmluZChzZXNzaW9uSUQpOwogICAgIGlmIChpdCA9PSBtX3Nlc3Npb25S
ZXNvdXJjZXMuZW5kKCkpCkBAIC01MzEsNyArNTMxLDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVt
b3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdpbiYgb3JpZ2luKQogICAgICAgICBy
ZW1vdmUoKnJlc291cmNlKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2Vz
V2l0aE9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgSGFzaFNldDxSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNl
c1dpdGhPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgSGFzaFNldDxSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKIHsKICAgICBhdXRvKiByZXNvdXJjZU1hcCA9
IHNlc3Npb25SZXNvdXJjZU1hcChzZXNzaW9uSUQpOwogICAgIGlmICghcmVzb3VyY2VNYXApCkBA
IC01NzIsNyArNTcyLDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZShT
ZWN1cml0eU9yaWdpblNldCYgb3JpZ2lucykKICAgICB9CiB9CiAKLUhhc2hTZXQ8UmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPj4gTWVtb3J5Q2FjaGU6Om9yaWdpbnNXaXRoQ2FjaGUoU2Vzc2lvbklEIHNl
c3Npb25JRCkgY29uc3QKK0hhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gTWVtb3J5Q2Fj
aGU6Om9yaWdpbnNXaXRoQ2FjaGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdAogewog
ICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luczsKIApAQCAtNzA3LDcg
KzcwNyw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0UmVzb3VyY2VzKCkKICAgICBzZXREaXNh
YmxlZChmYWxzZSk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0UmVzb3VyY2VzKFNlc3Np
b25JRCBzZXNzaW9uSUQpCit2b2lkIE1lbW9yeUNhY2hlOjpldmljdFJlc291cmNlcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKGRpc2FibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKaW5kZXggMmM0ZGQx
MDlmNTcuLmY2N2M4MWM0MjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5
Q2FjaGUuaApAQCAtMjYsOCArMjYsOCBAQAogCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNp
bmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIE1lbW9yeUNhY2hlJiBzaW5nbGV0b24oKTsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclJlcXVlc3QoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBBTDo6U2Vzc2lv
bklEKTsKIAogICAgIGJvb2wgYWRkKENhY2hlZFJlc291cmNlJik7CiAgICAgdm9pZCByZW1vdmUo
Q2FjaGVkUmVzb3VyY2UmKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZXZhbGlkYXRpb25GYWlsZWQoQ2FjaGVkUmVzb3VyY2UmIHJldmFsaWRhdGluZ1Jlc291cmNlKTsK
IAogICAgIHZvaWQgZm9yRWFjaFJlc291cmNlKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChDYWNo
ZWRSZXNvdXJjZSYpPiYpOwotICAgIHZvaWQgZm9yRWFjaFNlc3Npb25SZXNvdXJjZShTZXNzaW9u
SUQsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChDYWNoZWRSZXNvdXJjZSYpPiYpOworICAgIHZv
aWQgZm9yRWFjaFNlc3Npb25SZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV1RGOjpGdW5j
dGlvbjx2b2lkKENhY2hlZFJlc291cmNlJik+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
ZXN0cm95RGVjb2RlZERhdGFGb3JBbGxJbWFnZXMoKTsKIAogICAgIC8vIFNldHMgdGhlIGNhY2hl
J3MgbWVtb3J5IGNhcGFjaXRpZXMsIGluIGJ5dGVzLiBUaGVzZSB3aWxsIGhvbGQgb25seSBhcHBy
b3hpbWF0ZWx5LApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGRpc2FibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxlZDsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBldmljdFJlc291cmNlcygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXZpY3RSZXNvdXJj
ZXMoU2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV2aWN0UmVzb3VyY2VzKFBB
TDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgcHJ1bmUoKTsKICAgICB2b2lkIHBydW5lU29vbigp
OwpAQCAtMTUzLDkgKzE1Myw5IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+PiBTZWN1cml0eU9yaWdpblNldDsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4oU2VjdXJpdHlPcmlnaW4mKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5zKFNlc3Npb25JRCwg
Y29uc3QgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiYpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGdldE9yaWdpbnNXaXRoQ2FjaGUoU2VjdXJpdHlPcmlnaW5TZXQmIG9yaWdpbnMpOwotICAg
IFdFQkNPUkVfRVhQT1JUIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luc1dp
dGhDYWNoZShTZXNzaW9uSUQpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEhhc2hTZXQ8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luc1dpdGhDYWNoZShQQUw6OlNlc3Npb25JRCkgY29u
c3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFkZEltYWdlVG9DYWNoZShOYXRpdmVJbWFn
ZVB0ciYmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGRvbWFpbkZvckNhY2hlUGFydGl0aW9u
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pOwpAQCAtMTg3LDggKzE4
Nyw4IEBAIHByaXZhdGU6CiAKICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0
SW1wbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZU1hcCYpOwogCi0gICAg
Q2FjaGVkUmVzb3VyY2VNYXAmIGVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcChTZXNzaW9uSUQpOwot
ICAgIENhY2hlZFJlc291cmNlTWFwKiBzZXNzaW9uUmVzb3VyY2VNYXAoU2Vzc2lvbklEKSBjb25z
dDsKKyAgICBDYWNoZWRSZXNvdXJjZU1hcCYgZW5zdXJlU2Vzc2lvblJlc291cmNlTWFwKFBBTDo6
U2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZU1hcCogc2Vzc2lvblJlc291cmNlTWFwKFBB
TDo6U2Vzc2lvbklEKSBjb25zdDsKIAogICAgIGJvb2wgbV9kaXNhYmxlZDsgIC8vIFdoZXRoZXIg
b3Igbm90IHRoZSBjYWNoZSBpcyBlbmFibGVkLgogICAgIGJvb2wgbV9pblBydW5lUmVzb3VyY2Vz
OwpAQCAtMjExLDcgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgLy8gQSBVUkwtYmFzZWQg
bWFwIG9mIGFsbCByZXNvdXJjZXMgdGhhdCBhcmUgaW4gdGhlIGNhY2hlIChpbmNsdWRpbmcgdGhl
IGZyZXNoZXN0IHZlcnNpb24gb2Ygb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgCiAg
ICAgLy8gcmVmZXJlbmNlZCBieSBhIFdlYiBwYWdlKS4KLSAgICB0eXBlZGVmIEhhc2hNYXA8U2Vz
c2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVk
UmVzb3VyY2VNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVu
aXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7CiAg
ICAgU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwIG1fc2Vzc2lvblJlc291cmNlczsKIAogICAgIFRp
bWVyIG1fcHJ1bmVUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2Nv
YS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9E
aXNrQ2FjaGVNb25pdG9yQ29jb2EuaAppbmRleCA2MzA0ZjFmMDZlZC4uYmRiYTFjOTM1OGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29j
b2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNv
Y29hLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50
aWZpZXIvU2Vzc2lvbklELmg+CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hlZFVSTFJl
c3BvbnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOwogCkBAIC0zNiwxOSArMzYsMTkgQEAgY2xh
c3MgU2hhcmVkQnVmZmVyOwogCiBjbGFzcyBEaXNrQ2FjaGVNb25pdG9yIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgdm9pZCBtb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CisgICAgc3Rh
dGljIHZvaWQgbW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBQQUw6OlNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAgICAgc3Rh
dGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHRyeUdldEZpbGVCYWNrZWRTaGFyZWRCdWZmZXJGcm9t
Q0ZVUkxDYWNoZWRSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKIAogcHJpdmF0ZToK
LSAgICBEaXNrQ2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCwg
Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CisgICAgRGlza0NhY2hlTW9uaXRvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQQUw6OlNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CiAK
ICAgICB2b2lkIHJlc291cmNlQmVjYW1lRmlsZUJhY2tlZChTaGFyZWRCdWZmZXImKTsKIAogICAg
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4g
bV9yZXNvdXJjZVJlcXVlc3Q7IH0KLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3Vy
Y2VSZXF1ZXN0OwotICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0KaW5kZXgg
M2YxOGQyNjkyYjUuLmEwZmJiMWE5YzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0KQEAgLTUxLDcgKzUxLDcgQEAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gRGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0RmlsZUJhY2tlZFNoYXJl
ZEJ1ZmZlckZyb21DRlVSTENhY2gKICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0
YSk7CiB9CiAKLXZvaWQgRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVD
cmVhdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9u
SUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCit2b2lkIERpc2tDYWNo
ZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVz
cG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCiB7CiAgICAgaWYgKCFjYWNoZWRSZXNwb25zZSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNjAsNyArNjAsNyBAQCB2b2lkIERpc2tDYWNoZU1vbml0b3I6Om1v
bml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZQog
ICAgIG5ldyBEaXNrQ2FjaGVNb25pdG9yKHJlcXVlc3QsIHNlc3Npb25JRCwgY2FjaGVkUmVzcG9u
c2UpOyAvLyBCYWxhbmNlZCBieSBkZWxldGUgYW5kIHVuaXF1ZV9wdHIgaW4gdGhlIGJsb2NrcyBz
ZXQgdXAgaW4gdGhlIGNvbnN0cnVjdG9yLCBvbmUgb2Ygd2hpY2ggaXMgZ3VhcmFudGVlZCB0byBy
dW4uCiB9CiAKLURpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBDRkNhY2hlZFVSTFJlc3Bv
bnNlUmVmIGNhY2hlZFJlc3BvbnNlKQorRGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSkKICAgICA6IG1fcmVzb3Vy
Y2VSZXF1ZXN0KHJlcXVlc3QpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKaW5kZXggNWFlYzlmNDYxOTgu
LjNmNmM4ODRjN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFn
ZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRl
ci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDxwYWwv
aWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIENhY2hlU3RvcmFnZVByb3ZpZGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENh
Y2hlU3RvcmFnZVByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hl
U3RvcmFnZVByb3ZpZGVyKTsgfQotICAgIHZpcnR1YWwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rp
b24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oU2Vzc2lvbklEKSB7IHJldHVybiBDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoKTsgfQorICAgIHZpcnR1YWwgUmVmPENhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oUEFMOjpTZXNzaW9u
SUQpIHsgcmV0dXJuIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZSgpOyB9CiAgICAgdmly
dHVhbCB+Q2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IH07CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKaW5kZXggYTc2Yzc5MWM4NjguLmYwOGU5NTlhMTIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaApAQCAtMjcsOSArMjcsMTEg
QEAKIAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQorbmFtZXNwYWNlIFBBTCB7CiBjbGFzcyBTZXNzaW9uSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKIAogbmFtZXNwYWNlIElEQkNsaWVudCB7CiBjbGFzcyBJREJDb25uZWN0aW9uVG9TZXJ2
ZXI7CkBAIC00MCw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EYXRhYmFzZVByb3Zp
ZGVyKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICB2aXJ0dWFsIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNz
aW9uKGNvbnN0IFNlc3Npb25JRCYpID0gMDsKKyAgICB2aXJ0dWFsIElEQkNsaWVudDo6SURCQ29u
bmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBB
TDo6U2Vzc2lvbklEJikgPSAwOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4
ZGY3YTAwOTZkNS4uOTE4MmJjOWE0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjI5LDcgKzIy
OSw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikK
ICAgICAsIG1fc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0
aW9uLnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcikpCiAgICAgLCBtX3VzZXJDb250ZW50UHJvdmlk
ZXIoKldURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlcikpCiAgICAg
LCBtX3Zpc2l0ZWRMaW5rU3RvcmUoKldURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExp
bmtTdG9yZSkpCi0gICAgLCBtX3Nlc3Npb25JRChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSkKKyAgICAsIG1fc2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
CiAgICAgLCBtX2lzVXRpbGl0eVBhZ2UoaXNVdGlsaXR5UGFnZUNocm9tZUNsaWVudChjaHJvbWUo
KS5jbGllbnQoKSkpCiAgICAgLCBtX3BlcmZvcm1hbmNlTW9uaXRvcihpc1V0aWxpdHlQYWdlKCkg
PyBudWxscHRyIDogc3RkOjptYWtlX3VuaXF1ZTxQZXJmb3JtYW5jZU1vbml0b3I+KCp0aGlzKSkK
ICAgICAsIG1fbG93UG93ZXJNb2RlTm90aWZpZXIoc3RkOjptYWtlX3VuaXF1ZTxMb3dQb3dlck1v
ZGVOb3RpZmllcj4oW3RoaXNdKGJvb2wgaXNMb3dQb3dlck1vZGVFbmFibGVkKSB7IGhhbmRsZUxv
d01vZGVQb3dlckNoYW5nZShpc0xvd1Bvd2VyTW9kZUVuYWJsZWQpOyB9KSkKQEAgLTE0MjgsOSAr
MTQyOCw5IEBAIHZvaWQgUGFnZTo6c3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkKIHZvaWQg
UGFnZTo6ZW5hYmxlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCkKIHsKICAgICAvLyBEb24ndCBhbGxvdyBjaGFuZ2luZyB0aGUgbGVnYWN5IHByaXZhdGUg
YnJvd3Npbmcgc3RhdGUgaWYgd2UgaGF2ZSBzZXQgYSBzZXNzaW9uIElELgotICAgIEFTU0VSVCht
X3Nlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSB8fCBtX3Nlc3Npb25J
RCA9PSBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisgICAgQVNTRVJUKG1f
c2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkgfHwgbV9zZXNz
aW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAKLSAg
ICBzZXRTZXNzaW9uSUQocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA/IFNlc3Npb25JRDo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAg
IHNldFNlc3Npb25JRChwcml2YXRlQnJvd3NpbmdFbmFibGVkID8gUEFMOjpTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpOwogfQogCiB2b2lkIFBhZ2U6OnVwZGF0ZUlzUGxheWluZ01lZGlhKHVpbnQ2NF90IHNvdXJj
ZUVsZW1lbnRJRCkKQEAgLTIxMDUsMTIgKzIxMDUsMTIgQEAgdm9pZCBQYWdlOjpzZXRWaXNpdGVk
TGlua1N0b3JlKFJlZjxWaXNpdGVkTGlua1N0b3JlPiYmIHZpc2l0ZWRMaW5rU3RvcmUpCiAgICAg
aW52YWxpZGF0ZVN0eWxlc0ZvckFsbExpbmtzKCk7CiB9CiAKLVNlc3Npb25JRCBQYWdlOjpzZXNz
aW9uSUQoKSBjb25zdAorUEFMOjpTZXNzaW9uSUQgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CiB9CiAKLXZvaWQgUGFnZTo6c2V0U2Vzc2lvbklEKFNl
c3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFBhZ2U6OnNldFNlc3Npb25JRChQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCmluZGV4IGI1NGQ3NjJkMzA0Li4yM2U5NGU3NWE1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAg
LTMyLDEzICszMiwxMyBAQAogI2luY2x1ZGUgIlJUQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJS
ZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgotI2luY2x1ZGUgIlNlc3Npb25JRC5o
IgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlICJVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlld3BvcnRB
cmd1bWVudHMuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRl
IDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgpAQCAtNTEwLDggKzUxMCw4IEBAIHB1YmxpYzoKICAgICBWaXNpdGVkTGlu
a1N0b3JlJiB2aXNpdGVkTGlua1N0b3JlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRW
aXNpdGVkTGlua1N0b3JlKFJlZjxWaXNpdGVkTGlua1N0b3JlPiYmKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNlc3Npb25JRChTZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Vz
c2lvbklEKFBBTDo6U2Vzc2lvbklEKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZUxl
Z2FjeVByaXZhdGVCcm93c2luZyhib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpOwogICAgIGJv
b2wgdXNlc0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRC5pc0Vw
aGVtZXJhbCgpOyB9CiAKQEAgLTc4MSw3ICs3ODEsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZXNvdXJjZVVzYWdlT3ZlcmxheT4gbV9yZXNvdXJjZVVzYWdlT3ZlcmxheTsKICNl
bmRpZgogCi0gICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwogCiAgICAgYm9vbCBtX2lzQ2xvc2luZyB7IGZhbHNlIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGx1Z0luQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BsdWdJbkNsaWVudC5oCmluZGV4IDI1YTY5NjJjYmQxLi5iOGU5MWZiYzYxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QbHVnSW5DbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BsdWdJbkNsaWVudC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBQbHVnSW5DbGllbnQgewogcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRB
dXRvU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFNlc3Npb25JRCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBw
YWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgUEFMOjpTZXNzaW9uSUQpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBs
dWdJbkNsaWVudCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmNwcAppbmRl
eCBhNzY1ZDRkNjk1Yi4uMDc4YzI3ZDVlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU29ja2V0UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJv
dmlkZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAK
LVJlZjxTb2NrZXRTdHJlYW1IYW5kbGU+IFNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJl
YW1IYW5kbGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50
LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24p
CitSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29ja2V0U3Ry
ZWFtSGFuZGxlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVu
dCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0
aXRpb24pCiB7CiAgICAgcmV0dXJuIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0ZSh1cmws
IGNsaWVudCwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uLCB7IH0pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Tb2NrZXRQcm92aWRlci5oCmluZGV4IDU1OWNhZDAyN2ExLi43NWMwMmU2Mjc4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaApAQCAtMjUsNyArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVu
dGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zOSw3ICszOSw3IEBAIGNs
YXNzIFVSTDsKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFNvY2tldFByb3ZpZGVyIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFNvY2tldFByb3ZpZGVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxTb2NrZXRQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb2Nr
ZXRQcm92aWRlcik7IH0KLSAgICB2aXJ0dWFsIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGU+IGNyZWF0
ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQm
LCBTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbik7CisgICAgdmly
dHVhbCBSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29u
c3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbik7CiAgICAgdmlydHVhbCB+U29ja2V0UHJvdmlk
ZXIoKSB7IH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db29r
aWVzU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZXNTdHJhdGVneS5o
CmluZGV4IGUwNDliZTM1MDU0Li41ZGM3NTJlNzE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ29va2llc1N0cmF0ZWd5LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgQ29va2llc1N0
cmF0ZWd5X2gKICNkZWZpbmUgQ29va2llc1N0cmF0ZWd5X2gKIAotI2luY2x1ZGUgIlNlc3Npb25J
RC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDIsNyAr
NDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY29v
a2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBVUkwmKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmKSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFVSTCYpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBV
UkwmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBWZWN0b3I8
Q29va2llPiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkg
PSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJDb3JlQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhy
ZWFkQ29waWVyLmNwcAppbmRleCAxMjFhODZjYjEzNi4uNDAzNjc2YTk4ZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcApA
QCAtMzEsMTIgKzMxLDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUNyb3NzVGhyZWFkQ29waWVyLmgiCiAKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRl
ICJUaHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Np
b25JRC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNl
LCBmYWxzZSwgV2ViQ29yZTo6U2Vzc2lvbklEPjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhc2U8
ZmFsc2UsIGZhbHNlLCBXZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb3B5KGNvbnN0IFdlYkNvcmU6OlNl
c3Npb25JRCYgc2Vzc2lvbklEKQorQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwg
UEFMOjpTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2Us
IFBBTDo6U2Vzc2lvbklEPjo6Y29weShjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQog
ewogICAgIHJldHVybiBzZXNzaW9uSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5oCmluZGV4IDdlM2I5YmMxMTgyLi5iNGM5MjM5
MWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhy
ZWFkQ29waWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhy
ZWFkQ29waWVyLmgKQEAgLTMzLDE2ICszMywxOSBAQAogCiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhy
ZWFkQ29waWVyLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBQQUwgewogY2xh
c3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUaHJlYWRTYWZl
RGF0YUJ1ZmZlcjsKIH0KIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0IENy
b3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6OlNlc3Npb25JRD4gewot
ICAgIHR5cGVkZWYgV2ViQ29yZTo6U2Vzc2lvbklEIFR5cGU7Ci0gICAgc3RhdGljIFR5cGUgY29w
eShjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKK3RlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhy
ZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFBBTDo6U2Vzc2lvbklEPiB7CisgICAgdHlwZWRl
ZiBQQUw6OlNlc3Npb25JRCBUeXBlOworICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUEFMOjpT
ZXNzaW9uSUQmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFz
ZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6OlRocmVhZFNhZmVEYXRhQnVmZmVyPiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHAKaW5k
ZXggYzUyNmM0MTdmZTMuLjIyYjgzMzMzMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCkBAIC0zMzksNyArMzM5LDcgQEAg
Q2FjaGVDb250cm9sRGlyZWN0aXZlcyBwYXJzZUNhY2hlQ29udHJvbERpcmVjdGl2ZXMoY29uc3Qg
SFRUUEhlYWRlck1hcCYgaGVhZGVycykKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMg
U3RyaW5nIGhlYWRlclZhbHVlRm9yVmFyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgaGVhZGVyTmFtZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3N0YXRpYyBT
dHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBoZWFkZXJOYW1lLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAg
ICAgLy8gRXhwbGljaXQgaGFuZGxpbmcgZm9yIGNvb2tpZXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhl
eSBhcmUgYWRkZWQgbWFnaWNhbGx5IGJ5IHRoZSBuZXR3b3JraW5nIGxheWVyLgogICAgIC8vIEZJ
WE1FOiBUaGUgdmFsdWUgbWlnaHQgaGF2ZSBjaGFuZ2VkIGJldHdlZW4gbWFraW5nIHRoZSByZXF1
ZXN0IGFuZCByZXRyaWV2aW5nIHRoZSBjb29raWUgaGVyZS4KQEAgLTM0OCw3ICszNDgsNyBAQCBz
dGF0aWMgU3RyaW5nIGhlYWRlclZhbHVlRm9yVmFyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgaAogICAgIGlmIChoZWFkZXJOYW1lID09IGh0dHBIZWFkZXJO
YW1lU3RyaW5nKEhUVFBIZWFkZXJOYW1lOjpDb29raWUpKSB7CiAgICAgICAgIGF1dG8qIGNvb2tp
ZVN0cmF0ZWd5ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCkgPyBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
Y29va2llc1N0cmF0ZWd5KCkgOiBudWxscHRyOwogICAgICAgICBpZiAoIWNvb2tpZVN0cmF0ZWd5
KSB7Ci0gICAgICAgICAgICBBU1NFUlQoc2Vzc2lvbklEID09IFNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChzZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgICAgICAgICByZXR1cm4gY29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNl
c3Npb24oKSwgcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCByZXF1ZXN0LnVybCgpKTsK
ICAgICAgICAgfQogICAgICAgICByZXR1cm4gY29va2llU3RyYXRlZ3ktPmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKHNlc3Npb25JRCwgcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCByZXF1ZXN0LnVybCgpKTsKQEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0aWMgU3RyaW5nIGhlYWRl
clZhbHVlRm9yVmFyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgaAogICAgIHJldHVybiByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZChoZWFkZXJOYW1lKTsKIH0K
IAotVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNvbGxlY3RWYXJ5aW5nUmVxdWVz
dEhlYWRlcnMoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkK
K1ZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RI
ZWFkZXJzKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICBTdHJpbmcgdmFyeVZhbHVlID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKFdl
YkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpWYXJ5KTsKICAgICBpZiAodmFyeVZhbHVlLmlzRW1wdHko
KSkKQEAgLTM3Myw3ICszNzMsNyBAQCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4g
Y29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBXZWJDb3JlOjpSZQogICAgIHJldHVy
biB2YXJ5aW5nUmVxdWVzdEhlYWRlcnM7CiB9CiAKLWJvb2wgdmVyaWZ5VmFyeWluZ1JlcXVlc3RI
ZWFkZXJzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdmFyeWluZ1Jl
cXVlc3RIZWFkZXJzLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNl
c3Npb25JRCBzZXNzaW9uSUQpCitib29sIHZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25z
dCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHZhcnlpbmdSZXF1ZXN0SGVhZGVy
cywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7CiAgICAgZm9yIChhdXRvJiB2YXJ5aW5nUmVxdWVzdEhlYWRlciA6IHZh
cnlpbmdSZXF1ZXN0SGVhZGVycykgewogICAgICAgICAvLyBGSVhNRTogVmFyeTogKiBpbiByZXNw
b25zZSB3b3VsZCBpZGVhbGx5IHRyaWdnZXIgYSBjYWNoZSBkZWxldGUgaW5zdGVhZCBvZiBhIHN0
b3JlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZh
bGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0
aW9uLmgKaW5kZXggNDQzYjIzMWU4ZDYuLmVmZTUwZWFiYmJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmgKQEAgLTI2LDggKzI2LDgg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCIKLSNp
bmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzAs
OCArNzAsOCBAQCBzdHJ1Y3QgQ2FjaGVDb250cm9sRGlyZWN0aXZlcyB7CiB9OwogV0VCQ09SRV9F
WFBPUlQgQ2FjaGVDb250cm9sRGlyZWN0aXZlcyBwYXJzZUNhY2hlQ29udHJvbERpcmVjdGl2ZXMo
Y29uc3QgSFRUUEhlYWRlck1hcCYpOwogCi1XRUJDT1JFX0VYUE9SVCBWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgU3RyaW5nPj4gY29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgU2Vzc2lvbklEID0gU2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwotV0VCQ09SRV9FWFBPUlQgYm9vbCB2ZXJpZnlWYXJ5
aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+
JiB2YXJ5aW5nUmVxdWVzdEhlYWRlcnMsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25J
RCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKK1dFQkNPUkVfRVhQT1JUIFZlY3Rv
cjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJz
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQQUw6OlNl
c3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworV0VCQ09SRV9F
WFBPUlQgYm9vbCB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgVmVjdG9yPHN0ZDo6
cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB2YXJ5aW5nUmVxdWVzdEhlYWRlcnMsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFBBTDo6U2Vzc2lvbklEID0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSk7CiAKIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTdGF0dXNDb2RlQ2FjaGVhYmxlQnlE
ZWZhdWx0KGludCBzdGF0dXNDb2RlKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTdGF0dXNDb2Rl
UG90ZW50aWFsbHlDYWNoZWFibGUoaW50IHN0YXR1c0NvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCmlu
ZGV4IDk4ZGEwODJhZWU2Li40MTY4OGMwNWY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtMjYs
MjcgKzI2LDI3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmgiCiAKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDxwYWwvaWRl
bnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1IYXNoTWFwPFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRy
PE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omdsb2JhbFNl
c3Npb25NYXAoKQorSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbj4+JiBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omdsb2JhbFNlc3Npb25N
YXAoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFNlc3Npb25JRCwgc3Rk
Ojp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+PiBtYXA7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrU3RvcmFnZVNlc3Npb24+Pj4gbWFwOwogICAgIHJldHVybiBtYXA7CiB9CiAKLU5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihTZXNz
aW9uSUQgc2Vzc2lvbklEKQorTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OnN0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBp
ZiAoc2Vzc2lvbklEID09IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgIGlmIChz
ZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKICAgICAgICAg
cmV0dXJuICZkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKICAgICByZXR1cm4gZ2xvYmFsU2Vzc2lv
bk1hcCgpLmdldChzZXNzaW9uSUQpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAg
QVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAg
QVNTRVJUKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsK
ICAgICBnbG9iYWxTZXNzaW9uTWFwKCkucmVtb3ZlKHNlc3Npb25JRCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oCmluZGV4IGRlZDI2Y2FmNGMxLi5iNDU5ZmMzM2UxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0y
Niw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNyZWRlbnRpYWxTdG9yYWdl
LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTYyLDE1ICs2MiwxNSBA
QCBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KE5ldHdvcmtTdG9yYWdlU2Vzc2lvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIGRlZmF1
bHRTdG9yYWdlU2Vzc2lvbigpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UgPSBTdHJpbmcoKSk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRl
bnRpZmllckJhc2UgPSBTdHJpbmcoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQg
ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uKiBzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSA9IFN0cmluZygpKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlID0gU3RyaW5nKCkpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JFYWNoKGNvbnN0IFdURjo6RnVuY3Rpb248
dm9pZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mKT4mKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKIAot
ICAgIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQor
ICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CiAgICAgQ3JlZGVudGlhbFN0b3JhZ2UmIGNyZWRlbnRpYWxTdG9yYWdlKCkgeyByZXR1cm4g
bV9jcmVkZW50aWFsU3RvcmFnZTsgfQogCiAjaWZkZWYgX19PQkpDX18KQEAgLTc4LDggKzc4LDgg
QEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGVVJMQ09O
TkVDVElPTikKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uKFNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSwgUmV0YWluUHRyPENGSFRUUENv
b2tpZVN0b3JhZ2VSZWY+JiYpOwotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQs
IFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiYmLCBSZXRhaW5QdHI8Q0ZIVFRQQ29v
a2llU3RvcmFnZVJlZj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW5zdXJl
U2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSwgUmV0
YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCwgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+JiYs
IFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiYmKTsKIAogICAgIC8vIE1heSBiZSBu
dWxsLCBpbiB3aGljaCBjYXNlIGEgRm91bmRhdGlvbiBkZWZhdWx0IHNob3VsZCBiZSB1c2VkLgog
ICAgIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcGxhdGZvcm1TZXNzaW9uKCkgeyByZXR1cm4gbV9w
bGF0Zm9ybVNlc3Npb24uZ2V0KCk7IH0KQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxkUGFydGl0aW9uQ29va2llc0Zvckhvc3RzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9SZW1vdmUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBk
b21haW5zVG9BZGQsIGJvb2wgY2xlYXJGaXJzdCk7CiAjZW5kaWYKICNlbGlmIFVTRShTT1VQKQot
ICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxTb3Vw
TmV0d29ya1Nlc3Npb24+JiYpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Np
b25JRCwgc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3b3JrU2Vzc2lvbj4mJik7CiAgICAgfk5ldHdv
cmtTdG9yYWdlU2Vzc2lvbigpOwogCiAgICAgU291cE5ldHdvcmtTZXNzaW9uKiBzb3VwTmV0d29y
a1Nlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH07CkBAIC0xMDMsNyAr
MTAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0Q3JlZGVudGlhbEZyb21QZXJzaXN0ZW50U3Rv
cmFnZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBGdW5jdGlvbjx2b2lkIChDcmVkZW50aWFsJiYp
PiBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgdm9pZCBzYXZlQ3JlZGVudGlhbFRvUGVyc2lzdGVu
dFN0b3JhZ2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgQ3JlZGVudGlhbCYpOwogI2Vs
c2UKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklELCBOZXR3b3JraW5nQ29udGV4
dCopOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgTmV0d29ya2lu
Z0NvbnRleHQqKTsKICAgICB+TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7CiAKICAgICBOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCgpIGNvbnN0OwpAQCAtMTE3LDggKzExNyw4IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZsdXNoQ29va2llU3RvcmUoKTsKIAogcHJpdmF0ZToK
LSAgICBzdGF0aWMgSGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+PiYgZ2xvYmFsU2Vzc2lvbk1hcCgpOwotICAgIFNlc3Npb25JRCBtX3Nlc3Np
b25JRDsKKyAgICBzdGF0aWMgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRy
PE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBnbG9iYWxTZXNzaW9uTWFwKCk7CisgICAgUEFMOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4gbV9wbGF0
Zm9ybVNlc3Npb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAppbmRleCA0ZTFlMzNlNmJkYy4u
YjJhNjU3ZjJiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcApAQCAtMzQsNyArMzQsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0KQorTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICA6
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fY29udGV4dChjb250ZXh0KQogewpAQCAt
NDksMTIgKzQ5LDEyIEBAIE5ldHdvcmtpbmdDb250ZXh0KiBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHQuZ2V0KCk7CiB9CiAKLXZvaWQg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmKQogewog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6ZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYpCit2b2lkIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTY4LDcgKzY4LDcgQEAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBkZWZhdWx0U2Vzc2lv
bigpCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVs
dFN0b3JhZ2VTZXNzaW9uKCkKIHsKICAgICBpZiAoIWRlZmF1bHRTZXNzaW9uKCkpCi0gICAgICAg
IGRlZmF1bHRTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4oU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIpOworICAgICAgICBkZWZh
dWx0U2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIpOwogICAgIHJldHVybiAq
ZGVmYXVsdFNlc3Npb24oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApp
bmRleCAzZTA4NTRmNGY3OS4uN2U5MDMyYzM0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q0ZOZXQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdl
U2Vzc2lvblJlZj4gY3JlYXRlQ0ZTdG9yYWdlU2Vzc2lvbkZvcklkZW50aWZpZXIoQ0ZTCiAgICAg
cmV0dXJuIHN0b3JhZ2VTZXNzaW9uOwogfQogCi1OZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBSZXRhaW5QdHI8Q0ZVUkxTdG9y
YWdlU2Vzc2lvblJlZj4mJiBwbGF0Zm9ybVNlc3Npb24sIFJldGFpblB0cjxDRkhUVFBDb29raWVT
dG9yYWdlUmVmPiYmIHBsYXRmb3JtQ29va2llU3RvcmFnZSkKK05ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmV0YWlu
UHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+JiYgcGxhdGZvcm1TZXNzaW9uLCBSZXRhaW5QdHI8
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4mJiBwbGF0Zm9ybUNvb2tpZVN0b3JhZ2UpCiAgICAgOiBt
X3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX3BsYXRmb3JtU2Vzc2lvbihXVEZNb3ZlKHBs
YXRmb3JtU2Vzc2lvbikpCiB7CkBAIC05OSwyMyArOTksMjMgQEAgdm9pZCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQogICAgIGlmIChzZXNzaW9uKQog
ICAgICAgICBjb29raWVTdG9yYWdlID0gYWRvcHRDRihfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlD
b29raWVTdG9yYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHNlc3Npb24uZ2V0KCkpKTsKIAotICAg
IGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29y
a1N0b3JhZ2VTZXNzaW9uPihTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgV1RGTW92ZShz
ZXNzaW9uKSwgV1RGTW92ZShjb29raWVTdG9yYWdlKSk7CisgICAgZGVmYXVsdE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdURk1vdmUoc2Vzc2lvbiksIFdURk1v
dmUoY29va2llU3RvcmFnZSkpOwogfQogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkKIHsKICAgICBpZiAoIWRlZmF1
bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkKLSAgICAgICAgZGVmYXVsdE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgZGVm
YXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIs
IG51bGxwdHIpOwogICAgIHJldHVybiAqZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpOwog
fQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlKQor
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlKQog
ewogICAgIEFTU0VSVChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7CiAgICAgZW5zdXJlU2Vzc2lv
bihzZXNzaW9uSUQsIGlkZW50aWZpZXJCYXNlKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmVuc3VyZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyQmFzZSwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYgY29va2ll
U3RvcmFnZSkKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSwgUmV0YWlu
UHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYgY29va2llU3RvcmFnZSkKIHsKICAgICBhdXRv
IGFkZFJlc3VsdCA9IGdsb2JhbFNlc3Npb25NYXAoKS5hZGQoc2Vzc2lvbklELCBudWxscHRyKTsK
ICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQpAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgaWRlCiAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6
bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihzZXNzaW9uSUQsIFdURk1vdmUoc3Rv
cmFnZVNlc3Npb24pLCBXVEZNb3ZlKGNvb2tpZVN0b3JhZ2UpKTsKIH0KIAotdm9pZCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiBpZGVudGlmaWVyQmFzZSkKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1
cmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyQmFzZSkKIHsKICAgICBlbnN1cmVTZXNzaW9uKHNlc3Npb25JRCwgaWRlbnRpZmllckJhc2Us
IG51bGxwdHIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaAppbmRleCAwOWQyYTg3MWI2MC4uNWQ2
ZjIzZjg1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
U29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCkBAIC0zMSw4ICszMSw4IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiU29ja2V0U3Ry
ZWFtSGFuZGxlLmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJlYW1CdWZmZXIuaD4KIApA
QCAtNDYsNyArNDYsNyBAQCBjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ7CiAKIGNsYXNz
IFNvY2tldFN0cmVhbUhhbmRsZUltcGwgOiBwdWJsaWMgU29ja2V0U3RyZWFtSGFuZGxlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNvY2tldFN0cmVhbUhhbmRsZUltcGw+IGNyZWF0ZShjb25z
dCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgU291cmNlQXBwbGlj
YXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNvY2tl
dFN0cmVhbUhhbmRsZUltcGwodXJsLCBjbGllbnQsIHNlc3Npb25JRCwgY3JlZGVudGlhbFBhcnRp
dGlvbiwgV1RGTW92ZShhdWRpdERhdGEpKSk7IH0KKyAgICBzdGF0aWMgUmVmPFNvY2tldFN0cmVh
bUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xp
ZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVk
ZW50aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0U3RyZWFtSGFuZGxlSW1wbCh1cmwsIGNsaWVu
dCwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uLCBXVEZNb3ZlKGF1ZGl0RGF0YSkpKTsg
fQogCiAgICAgdmlydHVhbCB+U29ja2V0U3RyZWFtSGFuZGxlSW1wbCgpOwogCkBAIC01Nyw3ICs1
Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IHBsYXRmb3JtU2VuZElu
dGVybmFsKGNvbnN0IGNoYXIqLCBzaXplX3QpOwogICAgIGJvb2wgc2VuZFBlbmRpbmdEYXRhKCk7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsKGNvbnN0IFVSTCYs
IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVk
ZW50aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbChjb25zdCBVUkwmLCBTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFs
UGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CiAgICAgdm9pZCBjcmVh
dGVTdHJlYW1zKCk7CiAgICAgdm9pZCBzY2hlZHVsZVN0cmVhbXMoKTsKICAgICB2b2lkIGNob29z
ZVByb3h5KCk7CkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPENGV3Jp
dGVTdHJlYW1SZWY+IG1fd3JpdGVTdHJlYW07CiAKICAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IG1f
aHR0cHNVUkw7IC8vIHdzKHMpOiByZXBsYWNlZCB3aXRoIGh0dHBzOgotICAgIFNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBTdHJpbmcg
bV9jcmVkZW50aWFsUGFydGl0aW9uOwogICAgIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiBt
X2F1ZGl0RGF0YTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCmluZGV4IDMz
NjZhYTYwNmRhLi4wOTk4YTFlODVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0
LmNwcApAQCAtNjQsNyArNjQsNyBAQCBleHRlcm4gIkMiIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZT
dHJlYW1Tb2NrZXRTZXROb0RlbGF5OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNvY2tldFN0
cmVhbUhhbmRsZUltcGw6OlNvY2tldFN0cmVhbUhhbmRsZUltcGwoY29uc3QgVVJMJiB1cmwsIFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tl
biYmIGF1ZGl0RGF0YSkKK1NvY2tldFN0cmVhbUhhbmRsZUltcGw6OlNvY2tldFN0cmVhbUhhbmRs
ZUltcGwoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlv
biwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhKQogICAgIDogU29ja2V0
U3RyZWFtSGFuZGxlKHVybCwgY2xpZW50KQogICAgICwgbV9jb25uZWN0aW5nU3Vic3RhdGUoTmV3
KQogICAgICwgbV9jb25uZWN0aW9uVHlwZShVbmtub3duKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
LmgKaW5kZXggZGIzMDkwZTg4YTYuLjgwYjk4MGJkYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsLmgKQEAgLTM3LDggKzM3LDggQEAKICNpbmNsdWRlIDx3aW5zb2NrMi5oPgogI2VuZGlmCiAK
LSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDxjdXJsL2N1cmwuaD4KKyNpbmNsdWRl
IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNp
bmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01MSw3
ICs1MSw3IEBAIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudDsKIAogY2xhc3MgU29ja2V0
U3RyZWFtSGFuZGxlSW1wbCA6IHB1YmxpYyBTb2NrZXRTdHJlYW1IYW5kbGUgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gY3JlYXRlKGNvbnN0IFVSTCYg
dXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgU2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJikgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsKHVybCwgY2xpZW50KSk7IH0KKyAgICBzdGF0aWMg
UmVmPFNvY2tldFN0cmVhbUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
LCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
b2NrZXRTdHJlYW1IYW5kbGVJbXBsKHVybCwgY2xpZW50KSk7IH0KIAogICAgIHZpcnR1YWwgflNv
Y2tldFN0cmVhbUhhbmRsZUltcGwoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAu
Y3BwCmluZGV4IDVjNWZkNzU0MTNkLi4wZGZjNjY1NDBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25Tb3VwLmNwcApAQCAtNDksNyArNDksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLU5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxTb3VwTmV0d29ya1Nlc3Npb24+JiYgc2Vzc2lv
bikKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3b3JrU2Vzc2lvbj4mJiBz
ZXNzaW9uKQogICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9zZXNzaW9uKFdU
Rk1vdmUoc2Vzc2lvbikpCiB7CkBAIC03NSwyNSArNzUsMjUgQEAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBkZWZhdWx0U2Vzc2lvbigpCiBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9u
KCkKIHsKICAgICBpZiAoIWRlZmF1bHRTZXNzaW9uKCkpCi0gICAgICAgIGRlZmF1bHRTZXNzaW9u
KCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4oU2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIpOworICAgICAgICBkZWZhdWx0U2Vzc2lvbigpID0g
c3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFBBTDo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIpOwogICAgIHJldHVybiAqZGVmYXVsdFNlc3Npb24o
KTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBBU1NFUlQoc2Vzc2lvbklEICE9
IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICBBU1NFUlQoc2Vzc2lvbklEICE9
IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIEFTU0VSVCghZ2xvYmFs
U2Vzc2lvbk1hcCgpLmNvbnRhaW5zKHNlc3Npb25JRCkpOwogICAgIGdsb2JhbFNlc3Npb25NYXAo
KS5hZGQoc2Vzc2lvbklELCBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4o
c2Vzc2lvbklELCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXBOZXR3b3JrU2Vzc2lvbj4oKSkpOwogfQog
Ci12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
CiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNz
aW9uKCkKIHsKLSAgICBkZWZhdWx0U2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3Jr
U3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBzdGQ6Om1ha2Vf
dW5pcXVlPFNvdXBOZXR3b3JrU2Vzc2lvbj4oKSk7CisgICAgZGVmYXVsdFNlc3Npb24oKSA9IHN0
ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXBOZXR3b3JrU2Vzc2lvbj4oKSk7
CiB9CiAKIFNvdXBOZXR3b3JrU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRPckNy
ZWF0ZVNvdXBOZXR3b3JrU2Vzc2lvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaApp
bmRleCA5Mzc4OTk1MGEwZi4uZmUwMjQyM2VhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGwu
aApAQCAtMzYsNyArMzYsNyBAQAogCiAjaWYgVVNFKFNPVVApCiAKLSNpbmNsdWRlICJTZXNzaW9u
SUQuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvU3RyZWFtQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCkBAIC00
Nyw3ICs0Nyw3IEBAIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudDsKIAogY2xhc3MgU29j
a2V0U3RyZWFtSGFuZGxlSW1wbCBmaW5hbCA6IHB1YmxpYyBTb2NrZXRTdHJlYW1IYW5kbGUgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gY3JlYXRlKGNv
bnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYpOworICAgIHN0YXRpYyBSZWY8U29j
a2V0U3RyZWFtSGFuZGxlSW1wbD4gY3JlYXRlKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRs
ZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmLCBTb3VyY2VBcHBsaWNhdGlv
bkF1ZGl0VG9rZW4mJik7CiAgICAgc3RhdGljIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGU+IGNyZWF0
ZShHU29ja2V0Q29ubmVjdGlvbiosIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYpOwogCiAgICAg
dmlydHVhbCB+U29ja2V0U3RyZWFtSGFuZGxlSW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxTb3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5k
bGVJbXBsU291cC5jcHAKaW5kZXggZTg1OTRlOTQzYzEuLjhlNTBiZDZjMzU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIHZv
aWQgd3NzU29ja2V0Q2xpZW50RXZlbnRDYWxsYmFjayhHU29ja2V0Q2xpZW50KiwgR1NvY2tldENs
aWVudEV2ZW50IGV2ZW4KICAgICBnX3NpZ25hbF9jb25uZWN0KGNvbm5lY3Rpb24sICJhY2NlcHQt
Y2VydGlmaWNhdGUiLCBHX0NBTExCQUNLKHdzc0Nvbm5lY3Rpb25BY2NlcHRDZXJ0aWZpY2F0ZUNh
bGxiYWNrKSwgbnVsbHB0cik7CiB9CiAKLVJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhh
bmRsZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGxp
Y2F0aW9uQXVkaXRUb2tlbiYmKQorUmVmPFNvY2tldFN0cmVhbUhhbmRsZUltcGw+IFNvY2tldFN0
cmVhbUhhbmRsZUltcGw6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxl
Q2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmLCBTb3VyY2VBcHBs
aWNhdGlvbkF1ZGl0VG9rZW4mJikKIHsKICAgICBSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4g
c29ja2V0ID0gYWRvcHRSZWYoKm5ldyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsKHVybCwgY2xpZW50
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5jcHAKaW5kZXggN2I3M2Y1OTMzZGEuLjEyMTA1ODUzMzgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNw
cApAQCAtNDEsNyArNDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IENvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwg
UmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQ
cm92aWRlciogc29ja2V0UHJvdmlkZXIsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8RGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUo
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0
UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZSh1cmwsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgdGhyZWFkLCBzaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFdURk1vdmUodG9wT3JpZ2luKSwgdGltZU9yaWdpbiwg
Y29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgc2Vzc2lvbklEKSk7CiAgICAgaWYgKCFz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kpCkBAIC00OSw3ICs0OSw3
IEBAIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGU6OmNyZWF0ZShjb25zdCBVUkwmIHVyCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLURl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3Jp
Z2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblBy
b3h5KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgU2Vz
c2lvbklEIHNlc3Npb25JRCkKK0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVy
KiBzb2NrZXRQcm92aWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogV29ya2Vy
R2xvYmFsU2NvcGUodXJsLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIHRocmVhZCwgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBXVEZNb3ZlKHRvcE9yaWdpbiksIHRp
bWVPcmlnaW4sIGNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIHNlc3Npb25JRCkKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUuaAppbmRleCAyZDUwOGYxYTg5My4uMzRlZGVjMDZkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTQ4LDcg
KzQ4LDcgQEAgY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCiBjbGFzcyBEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZSBmaW5hbCA6IHB1YmxpYyBXb3JrZXJHbG9iYWxTY29wZSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIq
LCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyBSZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+
IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3Rv
bmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tl
dFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkRlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlKCk7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6
OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlND
OjpKU09iamVjdD4+JiYpOwpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IHVzaW5nIEJhc2UgPSBXb3JrZXJHbG9iYWxTY29wZTsKIAotICAgIERlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
T3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlv
blByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBTZXNzaW9uSUQpOworICAgIERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
dG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVj
dGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBib29s
IGlzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdXJscykgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRl
ZFdvcmtlclRocmVhZC5jcHAKaW5kZXggYTQ4MzhiNDcwYjMuLjUwOTJiYzljYjY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCkBAIC0z
OCw3ICszOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGVkaWNhdGVkV29ya2VyVGhy
ZWFkOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNl
Q29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQ
cm94eSYgd29ya2VyT2JqZWN0UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUs
IGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3Rv
bmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVj
dGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZs
YWdzIHJ1bnRpbWVGbGFncywgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0RlZGljYXRlZFdvcmtlclRo
cmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0
UHJveHkmIHdvcmtlck9iamVjdFByb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2Rl
LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5l
Y3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVG
bGFncyBydW50aW1lRmxhZ3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IFdvcmtl
clRocmVhZCh1cmwsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9h
ZGVyUHJveHksIHdvcmtlck9iamVjdFByb3h5LCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCB0b3BPcmlnaW4sIHRpbWVPcmlnaW4sIGNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJv
dmlkZXIsIHJ1bnRpbWVGbGFncywgc2Vzc2lvbklEKQogICAgICwgbV93b3JrZXJPYmplY3RQcm94
eSh3b3JrZXJPYmplY3RQcm94eSkKIHsKQEAgLTQ4LDcgKzQ4LDcgQEAgRGVkaWNhdGVkV29ya2Vy
VGhyZWFkOjp+RGVkaWNhdGVkV29ya2VyVGhyZWFkKCkKIHsKIH0KIAotUmVmPFdvcmtlckdsb2Jh
bFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4s
IE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK1JlZjxXb3Jr
ZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
T3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICByZXR1cm4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSh1cmws
IGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgKnRoaXMsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBX
VEZNb3ZlKHRvcE9yaWdpbiksIHRpbWVPcmlnaW4sIGlkYkNvbm5lY3Rpb25Qcm94eSgpLCBzb2Nr
ZXRQcm92aWRlcigpLCBzZXNzaW9uSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKaW5kZXggZWMwMTJmNWJmYTAuLjc3NWIwYzA5YjYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKQEAg
LTQ5LDExICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9i
amVjdFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJPYmplY3RQcm94eTsgfQogCiBwcm90
ZWN0ZWQ6Ci0gICAgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29w
ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29s
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5
T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBTZXNzaW9uSUQp
IG92ZXJyaWRlOworICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwg
Ym9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1
cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpT
ZXNzaW9uSUQpIG92ZXJyaWRlOwogICAgIHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6Ci0gICAgRGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYg
c291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYsIFdvcmtl
clRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwg
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIEpTQzo6UnVu
dGltZUZsYWdzLCBTZXNzaW9uSUQpOworICAgIERlZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0
UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1l
IHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlk
ZXIqLCBKU0M6OlJ1bnRpbWVGbGFncywgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgV29ya2VyT2Jq
ZWN0UHJveHkmIG1fd29ya2VyT2JqZWN0UHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
Y3BwCmluZGV4IDQzNjEyZDIzM2RkLi44MjkwMzE0MDVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgV29ya2VyOjpkaWRSZWNlaXZlUmVzcG9u
c2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlCiB2b2lk
IFdvcmtlcjo6bm90aWZ5RmluaXNoZWQoKQogewogICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IGNvbnRleHQgPyBj
b250ZXh0LT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRCgpOworICAgIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCA9IGNvbnRleHQgPyBjb250ZXh0LT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklE
KCk7CiAKICAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpIHx8ICFzZXNzaW9uSUQuaXNW
YWxpZCgpKQogICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDE4MGY4OGU2OTU4Li43NjJiNDExNmM4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTUyLDcgKzUy
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1Xb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRo
cmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1l
T3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5LCBT
b2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitXb3Jr
ZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCYg
dGhyZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwg
UmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQ
cm92aWRlciogc29ja2V0UHJvdmlkZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6
IG1fdXJsKHVybCkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV91c2Vy
QWdlbnQodXNlckFnZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oCmluZGV4IGM1YjBkNTJhYjRjLi42NzA3MzQ0NzdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMjksMTMgKzI5LDEzIEBACiAjaW5jbHVkZSAi
QmFzZTY0VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVk
ZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJXb3JrZXJF
dmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgPGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0
ZW5lcnMoKSBmaW5hbDsKIAogcHJvdGVjdGVkOgotICAgIFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0
IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IFdvcmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIq
LCBTZXNzaW9uSUQpOworICAgIFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBQQUw6OlNlc3Npb25J
RCk7CiAKICAgICB2b2lkIGFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
KGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYpOwogCkBAIC0xMzAs
NyArMTMwLDcgQEAgcHJpdmF0ZToKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBjb25zdF9jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlKj4odGhpcyk7IH0KICAgICBVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5n
JikgY29uc3QgZmluYWw7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBTdHJpbmcgdXNlckFnZW50KGNv
bnN0IFVSTCYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZVdlYkFzc2VtYmx5KGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBmaW5hbDsKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxQZXJmb3JtYW5jZT4gbV9wZXJmb3JtYW5jZTsKICAgICBtdXRhYmxlIFJl
ZlB0cjxDcnlwdG8+IG1fY3J5cHRvOwogCi0gICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAg
IFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVBy
b3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaApp
bmRleCA2N2FkZjcwMTQ3Ny4uYzFkZjQ5YzZkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC0zNSwxMCArMzUsMTMgQEAKICNpbmNs
dWRlIDxydW50aW1lL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1l
Lmg+CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsK
LWNsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFVSTDsKIGNsYXNzIFdvcmtlcjsKIApAQCAtNDcsNyAr
NTAsNyBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZVByb3h5IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgV29ya2VyR2xvYmFsU2NvcGVQcm94eSYgY3JlYXRlKFdvcmtlciYpOwogCi0gICAgdmlydHVh
bCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIEpTQzo6
UnVudGltZUZsYWdzLCBTZXNzaW9uSUQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3Jr
ZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSlNDOjpSdW50aW1lRmxhZ3MsIFBB
TDo6U2Vzc2lvbklEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2Jh
bFNjb3BlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFs
U2NvcGUoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1l
c3NhZ2VQb3J0Q2hhbm5lbEFycmF5PikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDE5NjUzZDhjMmI1Li40YjJhYzEzMGJmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTcw
LDcgKzcwLDcgQEAgV29ya2VyTWVzc2FnaW5nUHJveHk6On5Xb3JrZXJNZXNzYWdpbmdQcm94eSgp
CiAgICAgICAgIHx8IChpczxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkgJiYgY3VycmVudFRocmVhZCgpID09IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKS50aHJlYWRJRCgpKSk7CiB9CiAKLXZv
aWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6OlJ1
bnRpbWVGbGFncyBydW50aW1lRmxhZ3MsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0
VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBj
b25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSlNDOjpSdW50aW1lRmxh
Z3MgcnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgLy8gRklY
TUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3ZSBzdXBwb3J0IG5lc3RlZCB3b3Jr
ZXIgb25lIGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IDc5M2E0YzUw
NjUxLi5jMTIzZTNmOTI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIC8v
IEltcGxlbWVudGF0aW9ucyBvZiBXb3JrZXJHbG9iYWxTY29wZVByb3h5LgogICAgIC8vIChPbmx5
IHVzZSB0aGVzZSBmdW5jdGlvbnMgaW4gdGhlIHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICB2
b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIEpTQzo6UnVu
dGltZUZsYWdzLCBTZXNzaW9uSUQpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSlNDOjpSdW50aW1lRmxhZ3MsIFBBTDo6U2Vzc2lv
bklEKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNjb3BlKCkgZmluYWw7
CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5
PikgZmluYWw7CiAgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCBmNmFiOWU0ZWZlMS4uYTZi
NzExMjI0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTcy
LDcgKzcyLDcgQEAgdW5zaWduZWQgV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpCiBz
dHJ1Y3QgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9u
b3RvbmljVGltZSB0aW1lT3JpZ2luLCBTZXNzaW9uSUQpOworICAgIFdvcmtlclRocmVhZFN0YXJ0
dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRo
cmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFM
OjpTZXNzaW9uSUQpOwogCiAgICAgVVJMIG1fc2NyaXB0VVJMOwogICAgIFN0cmluZyBtX2lkZW50
aWZpZXI7CkBAIC04MywxMCArODMsMTAgQEAgcHVibGljOgogICAgIGJvb2wgbV9zaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAgICAgUmVmPFNlY3VyaXR5T3JpZ2lu
PiBtX3RvcE9yaWdpbjsKICAgICBNb25vdG9uaWNUaW1lIG1fdGltZU9yaWdpbjsKLSAgICBTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9Owog
Ci1Xb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6V29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3Qg
VVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
IHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3Jp
Z2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFNlc3Npb25JRCBzZXNzaW9uSUQpCitXb3Jr
ZXJUaHJlYWRTdGFydHVwRGF0YTo6V29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3QgVVJMJiBz
Y3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0
TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBN
b25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6
IG1fc2NyaXB0VVJMKHNjcmlwdFVSTC5pc29sYXRlZENvcHkoKSkKICAgICAsIG1faWRlbnRpZmll
cihpZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50
Lmlzb2xhdGVkQ29weSgpKQpAQCAtMTAwLDcgKzEwMCw3IEBAIFdvcmtlclRocmVhZFN0YXJ0dXBE
YXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyCiB7CiB9CiAKLVdvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgc2NyaXB0
VVJMLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQ
cm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJU
aHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tl
dFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MsIFNlc3Npb25JRCBzZXNz
aW9uSUQpCitXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHks
IFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFk
U3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdp
biYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29u
bmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92
aWRlciwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiAgICAgOiBtX3dvcmtlckxvYWRlclByb3h5KHdvcmtlckxvYWRlclByb3h5KQogICAg
ICwgbV93b3JrZXJSZXBvcnRpbmdQcm94eSh3b3JrZXJSZXBvcnRpbmdQcm94eSkKICAgICAsIG1f
cnVudGltZUZsYWdzKHJ1bnRpbWVGbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5oCmluZGV4IGM1OTMyMjk2N2ZkLi5jZmUzNDNlZWY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5oCkBAIC0zMSwxMyArMzEsMTYgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKK25hbWVzcGFjZSBQQUwgeworY2xh
c3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKIGNsYXNzIFVSTDsKIGNsYXNzIE5vdGlmaWNh
dGlvbkNsaWVudDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2Vzc2lvbklEOwogY2xh
c3MgU29ja2V0UHJvdmlkZXI7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKIGNsYXNzIFdvcmtl
ckxvYWRlclByb3h5OwpAQCAtODEsMTAgKzg0LDEwIEBAIHB1YmxpYzoKICAgICBKU0M6OlJ1bnRp
bWVGbGFncyBydW50aW1lRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3J1bnRpbWVGbGFnczsgfQog
CiBwcm90ZWN0ZWQ6Ci0gICAgV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNl
Q29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRo
cmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIEpTQzo6UnVudGlt
ZUZsYWdzLCBTZXNzaW9uSUQpOworICAgIFdvcmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBX
b3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBKU0M6
OlJ1bnRpbWVGbGFncywgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgLy8gRmFjdG9yeSBtZXRob2Qg
Zm9yIGNyZWF0aW5nIGEgbmV3IHdvcmtlciBjb250ZXh0IGZvciB0aGUgdGhyZWFkLgotICAgIHZp
cnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBTZXNzaW9uSUQpID0gMDsK
KyAgICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2Nv
cGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNz
aW9uSUQpID0gMDsKIAogICAgIC8vIEV4ZWN1dGVzIHRoZSBldmVudCBsb29wIGZvciB0aGUgd29y
a2VyIHRocmVhZC4gRGVyaXZlZCBjbGFzc2VzIGNhbiBvdmVycmlkZSB0byBwZXJmb3JtIGFjdGlv
bnMgYmVmb3JlL2FmdGVyIGVudGVyaW5nIHRoZSBldmVudCBsb29wLgogICAgIHZpcnR1YWwgdm9p
ZCBydW5FdmVudExvb3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmluZGV4IDEwMmMyZmNmZmMzLi4wZTQyYmM0
Y2Y4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlckpvYkNsaWVudC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oIgotI2luY2x1
ZGUgIlNlc3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvblBhcmFtZXRlcnMuaAppbmRleCBiYTc0MzRhMGU1Mi4uMWY5MmE3
ZmQyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5oCkBAIC0yOSwx
MyArMjksMTMgQEAKIAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklE
LmgiCiAjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklE
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25QYXJhbWV0ZXJzIHsKLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEOworICAgIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRDsKICAgICBVUkwgc2NyaXB0VVJMOwogICAgIFVSTCBjbGllbnRDcmVh
dGlvblVSTDsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4
MzdkYmYxZTU2OS4uYjZkYWQ3ZDYyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjc5IEBACisyMDE3
LTA4LTE2ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CisKKyAgICAgICAg
W1BBTF0gTW92ZSBTZXNzaW9uSUQgaW50byBQQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDE5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OkRvd25sb2FkKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKyAgICAgICAgKFdlYktpdDo6RG93
bmxvYWQ6OkRvd25sb2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFy
dERvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpyZXN1bWVEb3du
bG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5oOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OnN0YXJ0RG93bmxvYWQpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0
ZVNvY2tldFN0cmVhbSk6CisgICAgICAgIChXZWJLaXQ6OnN0b3JhZ2VTZXNzaW9uKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0RG93bmxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVy
dE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00pOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnN0YXJ0RG93bmxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24p
OgorICAgICAgICAoV2ViS2l0OjpmZXRjaERpc2tDYWNoZUVudHJpZXMpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OnJlc3VtZURvd25sb2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Nlc3Npb246OmRlZmF1bHRTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2Vz
c2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3Ry
ZWFtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldFN0cmVhbTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldFN0cmVhbTo6TmV0d29ya1NvY2tldFN0cmVh
bSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWQ6OlNwZWN1bGF0
aXZlTG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OmNvbmZpZ3VyYXRpb25Gb3JTZXNzaW9uSUQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3b3JrU2Vzc2lvblNvdXApOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmg6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChmb3J3YXJkX2RlY2xhcmF0aW9uc19h
bmRfaGVhZGVycy50ZW1wbGF0ZXMpOiBEZWxldGVkLgorICAgICAgICAoY2xhc3NfdGVtcGxhdGVf
aGVhZGVycy50ZW1wbGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZSk6CisgICAg
ICAgICogU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3RhdGlj
U2Vzc2lvbk1hcCk6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpuZXR3b3JrU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAg
KiBTaGFyZWQvU2Vzc2lvblRyYWNrZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvU3RvcmFnZS9TdG9y
YWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAg
ICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICog
U2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL21h
Yy9Db29raWVTdG9yYWdlU2hpbS5tbToKKyAgICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3Rv
cmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKToKKyAgICAgICAgKiBTdG9yYWdlUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCk6Cisg
ICAgICAgICogU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmlkYlNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgICogU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9y
YWdlUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAg
ICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5j
cHA6CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpzZXRXZWJzaXRlRGF0YVN0b3Jl
KToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNlc3Npb25JRCk6CisgICAgICAg
IChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpzZXRTZXNzaW9uSUQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpXZWJzaXRlRGF0YVN0b3Jl
OjpkZWZhdWx0RGF0YVN0b3JlKToKKyAgICAgICAgKEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6Y3Jl
YXRlTGVnYWN5KToKKyAgICAgICAgKEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFT
dG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChX
S0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6CisgICAgICAgIChXS0Nvb2tp
ZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV0tDb29raWVNYW5h
Z2VyRGVsZXRlQWxsQ29va2llcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxD
b29raWVzTW9kaWZpZWRBZnRlckRhdGUpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyk6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9zZXRDb29raWVBY2NlcHRQb2xpY3k6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06Cisg
ICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0X3BvbGljeSk6CisgICAgICAg
ICh3ZWJraXRfY29va2llX21hbmFnZXJfZ2V0X2FjY2VwdF9wb2xpY3kpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpQbHVnSW5BdXRvU3RhcnRQcm92
aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphZGRBdXRv
U3RhcnRPcmlnaW5IYXNoKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXI6OmF1dG9TdGFydE9yaWdpbnNUYWJsZUNvcHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1z
UGFzc2luZ1Rlc3QpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6
ZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3RvcmFnZS9T
dG9yYWdlUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3NQ
cm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNz
UHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nl
c3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVBbGxDb29raWVzTW9kaWZpZWRT
aW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2ll
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRBbGxDb29raWVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRDb29raWVzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzdGFydE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0b3BP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
clByb3h5OjpzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29va2llTWFuYWdlclByb3h5OjpyZWdpc3Rlck9ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29va2llTWFuYWdlclByb3h5Ojp1bnJlZ2lzdGVyT2JzZXJ2ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNvb2tpZXNEaWRDaGFuZ2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRBbnlQ
YWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpwYWdlQWRkZWRUb1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6cGFnZVJlbW92ZWRGcm9tUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpkb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpy
ZXN1bWVEb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjphZGRQbHVn
SW5BdXRvU3RhcnRPcmlnaW5IYXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvclRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW5zSW5BbGxQZXJzaXN0ZW50RGF0YVN0b3Jlcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNX
aXRoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmZldGNo
V2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdl
YnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29r
aWVNYW5hZ2VyOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmdldEFsbENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyOjpnZXRDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29v
a2llTWFuYWdlcjo6c2V0Q29va2llKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
cjo6c2V0Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6Om5vdGlm
eUNvb2tpZXNEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpz
dGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVN
YW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNl
UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhYmFzZVByb3ZpZGVyOjppZGJD
b25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFi
YXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRsZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNvY2tldFN0cmVhbTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0
U3RyZWFtOjpXZWJTb2NrZXRTdHJlYW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRTdHJlYW0uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9y
YWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJUb1N0b3JhZ2VQ
cm9jZXNzQ29ubmVjdGlvbjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFp
blJlc291cmNlTG9hZFRvRG93bmxvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnSW5DbGllbnQ6OmRpZFN0YXJ0RnJvbU9yaWdpbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpzdGFy
dERvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpzZXRTZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3dlYlNR
TGl0ZURhdGFiYXNlVHJhY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpk
ZXN0cm95U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmlzUGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsdWdJbkRp
ZFN0YXJ0RnJvbU9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRpZEFkZFBs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpy
ZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKwogMjAxNy0wOC0xNiAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9zaGlha2ku
Sml0c3VrYXdhQHNvbnkuY29tPgogCiAgICAgICAgIFtQQUxdIE1vdmUgc3BpL2lvcyBhbmQgc3Bp
L3dpbiBkaXJlY3RvcmllcyBpbnRvIFBBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCmluZGV4IGJmODQ0M2I1NzE4Li5jZDkyMTk1
MjFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkLmNwcApAQCAtNDUsNyArNDUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLURvd25sb2Fk
OjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBk
b3dubG9hZElELCBOZXR3b3JrRGF0YVRhc2smIGRvd25sb2FkLCBjb25zdCBTZXNzaW9uSUQmIHNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQorRG93bmxvYWQ6OkRvd25sb2Fk
KERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQs
IE5ldHdvcmtEYXRhVGFzayYgZG93bmxvYWQsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkKICAgICA6IG1fZG93bmxvYWRNYW5hZ2Vy
KGRvd25sb2FkTWFuYWdlcikKICAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQogICAgICwg
bV9kb3dubG9hZCgmZG93bmxvYWQpCkBAIC01Nyw3ICs1Nyw3IEBAIERvd25sb2FkOjpEb3dubG9h
ZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElE
LCBOZXR3CiAgICAgbV9kb3dubG9hZE1hbmFnZXIuZGlkQ3JlYXRlRG93bmxvYWQoKTsKIH0KICNp
ZiBQTEFURk9STShDT0NPQSkKLURvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRv
d25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9h
ZFRhc2sqIGRvd25sb2FkLCBjb25zdCBTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBzdWdnZXN0ZWROYW1lKQorRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93
bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIE5TVVJMU2Vzc2lvbkRvd25sb2Fk
VGFzayogZG93bmxvYWQsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgc3VnZ2VzdGVkTmFtZSkKICAgICA6IG1fZG93bmxvYWRNYW5hZ2VyKGRvd25sb2FkTWFu
YWdlcikKICAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQogICAgICwgbV9kb3dubG9hZFRh
c2soZG93bmxvYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaAppbmRleCBhZTRkN2NmZjZjZi4uYmM5ZWE0ZjUyMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaApAQCAtMzIs
OCArMzIsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PG1lbW9yeT4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTc2
LDkgKzc2LDkgQEAgY2xhc3MgRG93bmxvYWQgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEb3dubG9hZCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgRG93bmxvYWQoRG93
bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgTmV0d29ya0RhdGFUYXNrJiwgY29uc3QgV2ViQ29y
ZTo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUg
PSB7IH0pOworICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIE5ldHdv
cmtEYXRhVGFzayYsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgc3VnZ2VzdGVkRmlsZW5hbWUgPSB7IH0pOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIERv
d25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIE5TVVJMU2Vzc2lvbkRvd25sb2Fk
VGFzayosIGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKKyAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXIm
LCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sqLCBjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsK
ICNlbmRpZgogI2Vsc2UKICAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3Rl
ZEZpbGVuYW1lID0geyB9KTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2s+IG1fZG93
bmxvYWRUYXNrOwogI2VuZGlmCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwor
ICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogI2Vsc2UgLy8gVVNFKE5FVFdPUktfU0VT
U0lPTikKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFN0cmlu
ZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAppbmRleCBiNzZiYTQ3YmQx
MC4uZWYxNTMwMTlhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
I2luY2x1ZGUgIlBlbmRpbmdEb3dubG9hZC5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
U2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTQ1LDcgKzQ1LDcgQEAgRG93bmxvYWRNYW5hZ2VyOjpEb3dubG9hZE1hbmFnZXIoQ2xpZW50JiBj
bGllbnQpCiB7CiB9CiAKLXZvaWQgRG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0aW9uLCBTZXNzaW9uSUQgc2Vzc2lvbklE
LCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQordm9pZCBEb3dubG9hZE1hbmFnZXI6OnN0YXJ0
RG93bmxvYWQoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24sIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkKIHsKICNpZiBV
U0UoTkVUV09SS19TRVNTSU9OKQogICAgIGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gU2Vzc2lvblRy
YWNrZXI6Om5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7CkBAIC0xNjIsNyArMTYyLDcgQEAgdm9p
ZCBEb3dubG9hZE1hbmFnZXI6OmNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRp
b24oRG93bmxvYWRJRCBkb3dubG8KICNlbmRpZgogfQogCi12b2lkIERvd25sb2FkTWFuYWdlcjo6
cmVzdW1lRG93bmxvYWQoU2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCit2b2lkIERv
d25sb2FkTWFuYWdlcjo6cmVzdW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQg
ZG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBT
dHJpbmcmIHBhdGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVu
c2lvbkhhbmRsZSkKIHsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFuYWdlci5oCmluZGV4IGI0ZDUyNWI3MmQ0Li4xNjNjMDBhNWI1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmgKQEAgLTM1LDEyICszNSwxNSBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKK25hbWVzcGFjZSBQQUwgeworY2xh
c3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iRGF0YUZp
bGVSZWZlcmVuY2U7CiBjbGFzcyBSZXNvdXJjZUhhbmRsZTsKIGNsYXNzIFJlc291cmNlUmVxdWVz
dDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBTZXNzaW9uSUQ7CiB9CiAKIG5hbWVz
cGFjZSBJUEMgewpAQCAtNzUsNyArNzgsNyBAQCBwdWJsaWM6CiAKICAgICBleHBsaWNpdCBEb3du
bG9hZE1hbmFnZXIoQ2xpZW50Jik7CiAKLSAgICB2b2lkIHN0YXJ0RG93bmxvYWQoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MqLCBXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFt
ZSA9IHsgfSk7CisgICAgdm9pZCBzdGFydERvd25sb2FkKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKiwgUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CiAjaWYgVVNF
KE5FVFdPUktfU0VTU0lPTikKICAgICB2b2lkIGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKERv
d25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxEb3dubG9hZD4mJik7CiAjaWYgVVNFKFBST1RFQ1RJ
T05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKQEAgLTg3LDcgKzkwLDcgQEAgcHVibGljOgogICAgIHZv
aWQgY29udmVydE5ldHdvcmtMb2FkVG9Eb3dubG9hZChEb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya0xvYWQ+JiYsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVm
ZXJlbmNlPj4mJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgY29udGludWVEZWNpZGVQZW5kaW5nRG93
bmxvYWREZXN0aW5hdGlvbihEb3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIGNvbnN0IFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSYsIGJvb2wgYWxsb3dPdmVyd3JpdGUpOwogCi0gICAgdm9p
ZCByZXN1bWVEb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICB2b2lkIHJlc3VtZURvd25sb2FkKFBBTDo6
U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURh
dGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7
CiAKICAgICB2b2lkIGNhbmNlbERvd25sb2FkKERvd25sb2FkSUQpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyLmgKaW5kZXggNjUyMmQ5ODI2ODQuLmFlOTQ3NGE1MWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxl
VHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVi
bGljOgogICAgIHN0cnVjdCBQYXJhbWV0ZXJzIHsKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdDsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiBzb3VyY2VPcmlnaW47Ci0gICAgICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQ7
CisgICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICAgICAgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFsczsKICAgICB9OwogICAgIGVudW0g
Y2xhc3MgUmVzdWx0IHsgU3VjY2VzcywgRmFpbHVyZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCA3M2JhNjBjMjdlMy4uZDI0MWMwZDczNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC01MSw3ICs1MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNv
b2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nl
c3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiAjaWYg
VVNFKE5FVFdPUktfU0VTU0lPTikKICNpbmNsdWRlICJQaW5nTG9hZC5oIgpAQCAtMTczLDcgKzE3
Myw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJCiB7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVNvY2tldFN0cmVhbShVUkwmJiB1cmwsIFNlc3Npb25J
RCBzZXNzaW9uSUQsIFN0cmluZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllcikK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVNvY2tldFN0cmVhbShV
UkwmJiB1cmwsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9u
LCB1aW50NjRfdCBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVCghbV9uZXR3b3JrU29ja2V0U3Ry
ZWFtcy5jb250YWlucyhpZGVudGlmaWVyKSk7CiAgICAgV2ViQ29yZTo6U291cmNlQXBwbGljYXRp
b25BdWRpdFRva2VuIHRva2VuID0geyB9OwpAQCAtMjYzLDEwICsyNjMsMTAgQEAgdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0
bmFtZSkKICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkucHJlZmV0Y2hETlMoaG9zdG5h
bWUpOwogfQogCi1zdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbihT
ZXNzaW9uSUQgc2Vzc2lvbklEKQorc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFn
ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChzZXNzaW9u
SUQuaXNWYWxpZCgpKTsKLSAgICBpZiAoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpKSB7CisgICAgaWYgKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgICAg
IHJldHVybiAqc3RvcmFnZVNlc3Npb247CiAKQEAgLTI3NywxMiArMjc3LDEyIEBAIHN0YXRpYyBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQp
CiAgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9u
KCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0RG93bmxv
YWQoU2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkKK3ZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQogewogICAgIE5ldHdvcmtQ
cm9jZXNzOjpzaW5nbGV0b24oKS5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKHRoaXMs
IHNlc3Npb25JRCwgZG93bmxvYWRJRCwgcmVxdWVzdCwgc3VnZ2VzdGVkTmFtZSk7CiB9CiAKLXZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2Fk
VG9Eb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50
aWZpZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBhdXRvJiBuZXR3
b3JrUHJvY2VzcyA9IE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKTsKICAgICBpZiAoIW1haW5S
ZXNvdXJjZUxvYWRJZGVudGlmaWVyKSB7CkBAIC0yOTksMzIgKzI5OSwzMiBAQCB2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxv
YWQoU2Vzc2lvbklECiAgICAgbG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChkb3dubG9hZElELCBy
ZXF1ZXN0LCByZXNwb25zZSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNvb2tpZXNGb3JET00oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCiB7
CiAgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzdG9yYWdlU2Vzc2lvbihzZXNz
aW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmlu
ZykKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9N
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7CiAgICAgV2ViQ29yZTo6c2V0
Q29va2llc0Zyb21ET00oc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJs
LCBjb29raWVTdHJpbmcpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpjb29raWVzRW5hYmxlZChTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFVSTCYgdXJsLCBib29sJiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGJvb2wmIHJlc3VsdCkKIHsKICAg
ICByZXN1bHQgPSBXZWJDb3JlOjpjb29raWVzRW5hYmxlZChzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcmIHJlc3VsdCkK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gV2ViQ29y
ZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklE
KSwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Z2V0UmF3Q29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgcmVzdWx0KQordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxD
b29raWU+JiByZXN1bHQpCiB7CiAgICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vz
c2lvbihzZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwsIHJlc3VsdCk7CiB9CiAKLXZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlbGV0ZUNvb2tpZShTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKIHsKICAg
ICBXZWJDb3JlOjpkZWxldGVDb29raWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgdXJsLCBj
b29raWVOYW1lKTsKIH0KQEAgLTQyMCw3ICs0MjAsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJv
bwogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVMZWdhY3lQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKCkKIHsKLSAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih7U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCksIHsgfSwgeyB9LCB7IH19KTsKKyAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih7UEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQoKSwgeyB9LCB7IH0sIHsgfX0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAzODRjY2U3NGM0Mi4uMjY3YTFhNmFh
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTg4LDE1ICs4OCwxNSBAQCBwcml2YXRl
OgogICAgIHZvaWQgcmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllcik7
CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wp
OwogICAgIHZvaWQgY3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKFJlc291cmNlTG9hZElkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlVSTCYgcmVkaXJlY3RVUkwpOwotICAgIHZvaWQgc3RhcnRE
b3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7Ci0gICAg
dm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklE
LCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOworICAgIHZvaWQgc3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRO
YW1lID0geyB9KTsKKyAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQ
QUw6OlNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25s
b2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKIAotICAgIHZvaWQgY29va2llc0ZvckRPTShXZWJDb3JlOjpTZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJM
JiwgU3RyaW5nJiByZXN1bHQpOwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oV2ViQ29yZTo6
U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlVSTCYsIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY29va2llc0VuYWJsZWQoV2ViQ29yZTo6
U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlVSTCYsIGJvb2wmIHJlc3VsdCk7Ci0gICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6VVJMJiwgU3RyaW5nJiByZXN1bHQpOwotICAgIHZvaWQgZ2V0UmF3Q29v
a2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKTsKLSAgICB2b2lk
IGRlbGV0ZUNvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNv
bnN0IFN0cmluZyYgY29va2llTmFtZSk7CisgICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVS
TCYsIFN0cmluZyYgcmVzdWx0KTsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVS
TCYsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgY29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwg
Ym9vbCYgcmVzdWx0KTsKKyAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNv
cmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0KTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShQ
QUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVO
YW1lKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwm
LCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYsIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFdlYkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3JlOjpCbG9iUGFydD4mJiwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
c2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sKTsKIAotICAgIHZv
aWQgY3JlYXRlU29ja2V0U3RyZWFtKFdlYkNvcmU6OlVSTCYmLCBXZWJDb3JlOjpTZXNzaW9uSUQs
IFN0cmluZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QpOworICAgIHZvaWQgY3JlYXRlU29ja2V0
U3RyZWFtKFdlYkNvcmU6OlVSTCYmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0
aW9uLCB1aW50NjRfdCk7CiAgICAgdm9pZCBkZXN0cm95U29ja2V0U3RyZWFtKHVpbnQ2NF90KTsK
ICAgICAKICAgICB2b2lkIGVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGVlMjU4NGJjM2Jj
Li45NjA4YjQ5YmVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCkBAIC0yOSwxNSArMjksMTUgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldERlZmVyc0xvYWRpbmcodWludDY0X3Qg
cmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCBkZWZlcnMpCiAgICAgUHJlZmV0Y2hETlMoU3Ry
aW5nIGhvc3RuYW1lKQogCi0gICAgU3RhcnREb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBzdWdnZXN0ZWROYW1lKQotICAgIENvbnZlcnRNYWluUmVz
b3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRf
dCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2Fk
SUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlIHJlc3BvbnNlKQorICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIFN0cmluZyBzdWdnZXN0ZWROYW1lKQorICAgIENvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5S
ZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVzcG9uc2UpCiAKLSAgICBDb29raWVzRm9yRE9NKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5n
IHJlc3VsdCkKLSAgICBTZXRDb29raWVzRnJvbURPTShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIGNv
b2tpZVN0cmluZykKLSAgICBDb29raWVzRW5hYmxlZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKGJvb2wg
ZW5hYmxlZCkKLSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVy
bCkgLT4gKFN0cmluZyByZXN1bHQpCi0gICAgR2V0UmF3Q29va2llcyhXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkg
LT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpCi0gICAgRGVsZXRlQ29va2llKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29r
aWVOYW1lKQorICAgIENvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQp
CisgICAgU2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIGNvb2tpZVN0cmluZykK
KyAgICBDb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVS
TCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoYm9vbCBlbmFibGVkKQorICAgIENv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJpbmcgcmVzdWx0
KQorICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpV
UkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29r
aWU+IGNvb2tpZXMpCisgICAgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3RlckZpbGVC
bG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBleHRlbnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlwZSkKICAgICBS
ZWdpc3RlckJsb2JVUkwoV2ViQ29yZTo6VVJMIHVybCwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0
PiBibG9iUGFydHMsIFN0cmluZyBjb250ZW50VHlwZSkKQEAgLTUzLDcgKzUzLDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAg
ICAgU2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sIGVuYWJsZWQp
CiAKLSAgICBDcmVhdGVTb2NrZXRTdHJlYW0oV2ViQ29yZTo6VVJMIHVybCwgV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlm
aWVyKQorICAgIENyZWF0ZVNvY2tldFN0cmVhbShXZWJDb3JlOjpVUkwgdXJsLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFN0cmluZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmll
cikKIAogICAgIEVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCAwNDc0N2M0MGEw
Mi4uODVhNWIxMmU4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWQuY3BwCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1l
bnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRp
Zmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9TZWNvbmRzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IGQwNjRiZWJlY2VhLi4xNGE1ZTkzYjVjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFy
YW1ldGVycy5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YUZp
bGVSZWZlcmVuY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzIHsKIHB1YmxpYzoKICAgICB1aW50NjRfdCB3ZWJQYWdlSUQgeyAwIH07CiAgICAg
dWludDY0X3Qgd2ViRnJhbWVJRCB7IDAgfTsKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklEIHsgV2ViQ29yZTo6U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgpIH07CisgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEIHsgUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkgfTsK
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6U25pZmZD
b250ZW50IH07CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVk
ZW50aWFscyB7IFdlYkNvcmU6OkRvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscyB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAxYmUz
OGEyNzIxOC4uZTFlZjE1MWJiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC02MSw5ICs2MSw5IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkxQYXJzZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRp
Zmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yMzcsNyAr
MjM3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYKIAogICAgIC8vIEZJWE1FOiBpbnN0ZWFk
IG9mIGhhbmRsaW5nIHRoaXMgaGVyZSwgYSBtZXNzYWdlIHNob3VsZCBiZSBzZW50IGxhdGVyIChz
Y2FsZXMgdG8gbXVsdGlwbGUgc2Vzc2lvbnMpCiAgICAgaWYgKHBhcmFtZXRlcnMucHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCkKLSAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oe1Nlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgp
LCB7IH0sIHsgfSwgeyB9fSk7CisgICAgICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHtQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNl
c3Npb25JRCgpLCB7IH0sIHsgfSwgeyB9fSk7CiAKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRV
c2VUZXN0aW5nTmV0d29ya1Nlc3Npb24pCiAgICAgICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzCiAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNp
dGVEYXRhU3RvcmVTZXNzaW9uKFdURk1vdmUocGFyYW1ldGVycykpOwogfQogCi12b2lkIE5ldHdv
cmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihzZXNzaW9uSUQpOwogfQpAQCAtMzI1
LDcgKzMyNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnVwZGF0ZUNvb2tpZVBhcnRpdGlvbmlu
Z0ZvclRvcFByaXZhdGVseU93bmVkRG9tYWlucyhjb25zdCBWCiB9CiAjZW5kaWYKIAotc3RhdGlj
IHZvaWQgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIEZ1bmN0aW9uPHZvaWQgKFZl
Y3RvcjxXZWJzaXRlRGF0YTo6RW50cnk+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3N0YXRpYyB2
b2lkIGZldGNoRGlza0NhY2hlRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIEZ1bmN0aW9uPHZvaWQg
KFZlY3RvcjxXZWJzaXRlRGF0YTo6RW50cnk+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNp
ZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBpZiAoYXV0byogY2FjaGUgPSBOZXR3b3JrUHJv
Y2Vzczo6c2luZ2xldG9uKCkuY2FjaGUoKSkgewpAQCAtMzYwLDcgKzM2MCw3IEBAIHN0YXRpYyB2
b2lkIGZldGNoRGlza0NhY2hlRW50cmllcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFGZXRjCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmZldGNo
V2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4gd2Vic2l0ZURhdGFUeXBlcywgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZl
dGNoT3B0aW9ucywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmZl
dGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9w
dGlvbj4gZmV0Y2hPcHRpb25zLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIHN0cnVjdCBD
YWxsYmFja0FnZ3JlZ2F0b3IgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWxsYmFja0FnZ3Jl
Z2F0b3I+IHsKICAgICAgICAgZXhwbGljaXQgQ2FsbGJhY2tBZ2dyZWdhdG9yKEZ1bmN0aW9uPHZv
aWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTQwMiw3ICs0MDIsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6
dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6
c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29u
dGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpIU1RTQ2FjaGUpKSB7CkBAIC00NjAsNyArNDYwLDcgQEAg
c3RhdGljIHZvaWQgY2xlYXJEaXNrQ2FjaGVFbnRyaWVzKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9y
aWdpbkRhdGE+JiBvcmlnaW5zLCBGdW4KICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3Jp
Z2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5E
YXRhPiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OkNvb2tpZXMpKSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrU3Rv
cmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Np
b25JRCkpCkBAIC00NzksMTIgKzQ3OSwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVX
ZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PAogICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRvd25sb2Fk
UmVxdWVzdChTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFt
ZSkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRvd25sb2FkUmVxdWVzdChQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQogewogICAgIGRvd25sb2Fk
TWFuYWdlcigpLnN0YXJ0RG93bmxvYWQobnVsbHB0ciwgc2Vzc2lvbklELCBkb3dubG9hZElELCBy
ZXF1ZXN0LCBzdWdnZXN0ZWRGaWxlbmFtZSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnJl
c3VtZURvd25sb2FkKFNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgs
IGNvbnN0IFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVzdW1lRG93bmxvYWQoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKIHsKICAgICBkb3du
bG9hZE1hbmFnZXIoKS5yZXN1bWVEb3dubG9hZChzZXNzaW9uSUQsIGRvd25sb2FkSUQsIHJlc3Vt
ZURhdGEsIHBhdGgsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGRkZjFmYTIyNDk1Li5lZGUy
YmYzZTk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMzAsOCArMzAsOCBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KQEAgLTQyLDEzICs0MiwxNiBAQAogI2luY2x1
ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgogI2VuZGlmCiAKK25hbWVzcGFjZSBQQUwg
eworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEb3du
bG9hZElEOwogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFz
cyBTZXNzaW9uSUQ7CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogc3RydWN0IFNvdXBOZXR3
b3JrUHJveHlTZXR0aW5nczsKIH0KQEAgLTE3MSwxOSArMTc0LDE5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBpbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmJik7CiAgICAgdm9pZCBjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcygp
OwogICAgIHZvaWQgYWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyYmKTsKLSAgICB2b2lkIGRlc3Ryb3lTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAg
dm9pZCBkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CiAKLSAgICB2b2lkIGZldGNoV2Vi
c2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCB1aW50NjRfdCBjYWxsYmFja0lEKTsK
LSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQg
bW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdp
bnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwg
dWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7Cisg
ICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhPiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywg
dWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMo
KTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgc2Vzc2lvbiBJRCBzbyB3ZSBj
YW4gaWRlbnRpZnkgd2hpY2ggZGlzayBjYWNoZSB0byBkZWxldGUuCiAgICAgdm9pZCBjbGVhckRp
c2tDYWNoZShzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2lu
Y2UsIEZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogCi0gICAgdm9pZCBk
b3dubG9hZFJlcXVlc3QoV2ViQ29yZTo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKTsK
LSAgICB2b2lkIHJlc3VtZURvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgs
IGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOworICAgIHZvaWQgZG93bmxvYWRSZXF1
ZXN0KFBBTDo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKTsKKyAgICB2b2lkIHJlc3Vt
ZURvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJik7CiAgICAgdm9pZCBjYW5jZWxEb3dubG9hZChEb3dubG9hZElEKTsKICNp
ZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIHZvaWQgY29udGludWVD
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKHVpbnQ2NF90IHJlc291cmNlTG9h
ZElkZW50aWZpZXIsIGJvb2wgY2FuQXV0aGVudGljYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDM2
ZTQ3Nzc4OWYyLi5hY2FmODFmMmZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNywxNCArMzcsMTQg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgRW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycyB3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycykKICAgICBBZGRXZWJzaXRlRGF0
YVN0b3JlKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzKTsKLSAgICBEZXN0cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQorICAgIERlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIAotICAgIEZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCi0gICAgRGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0
YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2lu
Y2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4gb3JpZ2lucywgVmVjdG9yPFN0cmluZz4gY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBj
YWxsYmFja0lEKQorICAgIEZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIE9w
dGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFU
eXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNl
LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlw
ZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4g
b3JpZ2lucywgVmVjdG9yPFN0cmluZz4gY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFj
a0lEKQogCi0gICAgRG93bmxvYWRSZXF1ZXN0KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKQotICAgIFJlc3VtZURvd25sb2FkKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElE
LCBJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdW1lRGF0YSwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCisgICAgRG93bmxv
YWRSZXF1ZXN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRv
d25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3VnZ2Vz
dGVkRmlsZW5hbWUpCisgICAgUmVzdW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3Vt
ZURhdGEsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKQogICAgIENhbmNlbERvd25sb2FkKFdlYktpdDo6RG93bmxvYWRJ
RCBkb3dubG9hZElEKQogCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuaAppbmRleCAxY2ZlN2E4YmUzZi4uOGFmNDIxYTExMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KIAogbmFtZXNwYWNlIElQQyB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApp
bmRleCA2ZWQ1ZjdmZjIxNC4uZGJlNTE5YzQyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtNzcsNyArNzcsNyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Uo
KSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlOyB9CiAKICAgICBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcygpIHsgcmV0dXJuIG1fY29ubmVjdGlv
bjsgfQotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBt
X3BhcmFtZXRlcnMuc2Vzc2lvbklEOyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkg
Y29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLnNlc3Npb25JRDsgfQogICAgIFJlc291cmNlTG9h
ZElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyOyB9CiAgICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlEOyB9CiAgICAgdWludDY0X3QgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9wYXJhbWV0ZXJzLndlYlBhZ2VJRDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCA0OTgwMDVlZDFjOS4uNjc5NGQwMGRmZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBA
IC00NSw3ICs0NSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotUmVmPE5ldHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKFNlc3Np
b25JRCBzZXNzaW9uSUQsIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciogY3VzdG9tUHJvdG9j
b2xNYW5hZ2VyKQorUmVmPE5ldHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBjdXN0
b21Qcm90b2NvbE1hbmFnZXIpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgcmV0dXJuIE5l
dHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZShzZXNzaW9uSUQsIGN1c3RvbVByb3RvY29sTWFuYWdl
cik7CkBAIC02Miw3ICs2Miw3IEBAIE5ldHdvcmtTZXNzaW9uJiBOZXR3b3JrU2Vzc2lvbjo6ZGVm
YXVsdFNlc3Npb24oKQogICAgIHJldHVybiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpkZWZhdWx0U2Vz
c2lvbigpOwogI2Vsc2UKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIHN0YXRp
YyBOZXR3b3JrU2Vzc2lvbiogc2Vzc2lvbiA9ICZOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKS5sZWFrUmVmKCk7CisgICAgc3RhdGljIE5ldHdvcmtT
ZXNzaW9uKiBzZXNzaW9uID0gJk5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSkubGVha1JlZigpOwogICAgIHJldHVybiAqc2Vzc2lvbjsKICNl
bmRpZgogfQpAQCAtNzQsNyArNzQsNyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtT
ZXNzaW9uOjpuZXR3b3JrU3RvcmFnZVNlc3Npb24oKSBjb25zdAogICAgIHJldHVybiAqc3RvcmFn
ZVNlc3Npb247CiB9CiAKLU5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihTZXNzaW9uSUQg
c2Vzc2lvbklEKQorTmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCBhYzIzMDkxNDNi
Ny4uNWEzZmU2Y2UzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
CiAKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlm
aWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MywyMyArNDMsMjMgQEAg
Y2xhc3MgTmV0d29ya0RhdGFUYXNrOwogCiBjbGFzcyBOZXR3b3JrU2Vzc2lvbiA6IHB1YmxpYyBS
ZWZDb3VudGVkPE5ldHdvcmtTZXNzaW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3
b3JrU2Vzc2lvbj4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9j
b2xNYW5hZ2VyKiA9IG51bGxwdHIpOworICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Npb24+IGNy
ZWF0ZShQQUw6OlNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiA9IG51bGxw
dHIpOwogICAgIHN0YXRpYyBOZXR3b3JrU2Vzc2lvbiYgZGVmYXVsdFNlc3Npb24oKTsKICAgICB2
aXJ0dWFsIH5OZXR3b3JrU2Vzc2lvbigpOwogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVB
bmRDYW5jZWwoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDcmVkZW50aWFscygpIHsgfTsKIAot
ICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Np
b25JRDsgfQorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Vzc2lvbklEOyB9CiAgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3Jr
U3RvcmFnZVNlc3Npb24oKSBjb25zdDsKIAogICAgIHZvaWQgcmVnaXN0ZXJOZXR3b3JrRGF0YVRh
c2soTmV0d29ya0RhdGFUYXNrJiB0YXNrKSB7IG1fZGF0YVRhc2tTZXQuYWRkKCZ0YXNrKTsgfQog
ICAgIHZvaWQgdW5yZWdpc3Rlck5ldHdvcmtEYXRhVGFzayhOZXR3b3JrRGF0YVRhc2smIHRhc2sp
IHsgbV9kYXRhVGFza1NldC5yZW1vdmUoJnRhc2spOyB9CiAKIHByb3RlY3RlZDoKLSAgICBOZXR3
b3JrU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIE5ldHdvcmtTZXNzaW9uKFBBTDo6
U2Vzc2lvbklEKTsKIAotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQ
QUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIAogICAgIEhhc2hTZXQ8TmV0d29ya0RhdGFUYXNr
Kj4gbV9kYXRhVGFza1NldDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmNwcAppbmRleCAzMzE3MGRhODNmMi4uYzExNjA4MzFj
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tl
dFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29j
a2V0U3RyZWFtLmNwcApAQCAtMzUsMTIgKzM1LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPE5ldHdvcmtTb2NrZXRTdHJlYW0+IE5ldHdv
cmtTb2NrZXRTdHJlYW06OmNyZWF0ZShXZWJDb3JlOjpVUkwmJiB1cmwsIFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgdWludDY0
X3QgaWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTb3VyY2VBcHBsaWNh
dGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEpCitSZWY8TmV0d29ya1NvY2tldFN0cmVhbT4gTmV0
d29ya1NvY2tldFN0cmVhbTo6Y3JlYXRlKFdlYkNvcmU6OlVSTCYmIHVybCwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90
IGlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU291cmNlQXBwbGljYXRp
b25BdWRpdFRva2VuJiYgYXVkaXREYXRhKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5l
dHdvcmtTb2NrZXRTdHJlYW0oV1RGTW92ZSh1cmwpLCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0
aXRpb24sIGlkZW50aWZpZXIsIGNvbm5lY3Rpb24sIFdURk1vdmUoYXVkaXREYXRhKSkpOwogfQog
Ci1OZXR3b3JrU29ja2V0U3RyZWFtOjpOZXR3b3JrU29ja2V0U3RyZWFtKFVSTCYmIHVybCwgU2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCB1aW50
NjRfdCBpZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNvdXJjZUFwcGxp
Y2F0aW9uQXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSkKK05ldHdvcmtTb2NrZXRTdHJlYW06Ok5ldHdv
cmtTb2NrZXRTdHJlYW0oVVJMJiYgdXJsLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllciwgSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRp
dERhdGEpCiAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlv
bihjb25uZWN0aW9uKQogICAgICwgbV9pbXBsKFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0
ZSh1cmwsICp0aGlzLCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFdURk1vdmUoYXVk
aXREYXRhKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTb2NrZXRTdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nv
Y2tldFN0cmVhbS5oCmluZGV4IDdkYzNkMGNlM2U5Li5lNDY1MDczYmM5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmgKQEAgLTI3
LDkgKzI3LDkgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lv
bklELmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlvbjsKQEAgLTQ2LDcgKzQ2
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtTb2NrZXRTdHJlYW0gOiBw
dWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrU29ja2V0U3RyZWFtPiwgcHVibGljIElQQzo6TWVzc2Fn
ZVNlbmRlciwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6U29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtT
b2NrZXRTdHJlYW0+IGNyZWF0ZShXZWJDb3JlOjpVUkwmJiwgV2ViQ29yZTo6U2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90LCBJUEM6OkNvbm5lY3Rp
b24mLCBXZWJDb3JlOjpTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CisgICAgc3RhdGlj
IFJlZjxOZXR3b3JrU29ja2V0U3RyZWFtPiBjcmVhdGUoV2ViQ29yZTo6VVJMJiYsIFBBTDo6U2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90LCBJUEM6
OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CiAg
ICAgfk5ldHdvcmtTb2NrZXRTdHJlYW0oKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CkBAIC02Niw3ICs2Niw3IEBAIHByaXZh
dGU6CiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFs
OwogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgZmluYWw7CiAKLSAg
ICBOZXR3b3JrU29ja2V0U3RyZWFtKFdlYkNvcmU6OlVSTCYmLCBXZWJDb3JlOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgdWludDY0X3QsIElQQzo6Q29ubmVj
dGlvbiYsIFdlYkNvcmU6OlNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmKTsKKyAgICBOZXR3
b3JrU29ja2V0U3RyZWFtKFdlYkNvcmU6OlVSTCYmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCB1aW50NjRfdCwgSVBDOjpDb25uZWN0aW9uJiwgV2Vi
Q29yZTo6U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYpOwogCiAgICAgdWludDY0X3QgbV9p
ZGVudGlmaWVyOwogICAgIElQQzo6Q29ubmVjdGlvbiYgbV9jb25uZWN0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5o
CmluZGV4IGFiM2VmYmI0MjE3Li4yZTRlN2M5NTIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjgsNyAr
MjgsNyBAQAogI2RlZmluZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCiAKICNpbmNsdWRlIDxX
ZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKQEAgLTM2LDcgKzM2LDcgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzOwogCiBjbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBXZWJD
b3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJv
b2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0aWMg
UmVmPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChz
ZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKICAg
ICB9CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7IH0KIAogcHJpdmF0ZToKLSAgICBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vz
c2lvbklEKQogICAgICAgICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdChzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKQEAg
LTY2LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2Nr
ZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsK
ICNlbmRpZgogCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6
U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
TG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVNwZWN1bGF0aXZlTG9hZC5jcHAKaW5kZXggZTM3NTdjOTE5MTAuLjhkNmVkMDRmMTI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5j
bHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKICNpbmNsdWRl
ICJOZXR3b3JrU2Vzc2lvbi5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIApAQCAtNTIsNyArNTIsNyBAQCBTcGVj
dWxhdGl2ZUxvYWQ6OlNwZWN1bGF0aXZlTG9hZChDYWNoZSYgY2FjaGUsIGNvbnN0IEdsb2JhbEZy
YW1lSUQmIGZyYW1lSUQsIGNvbgogICAgIEFTU0VSVCghbV9jYWNoZUVudHJ5IHx8IG1fY2FjaGVF
bnRyeS0+bmVlZHNWYWxpZGF0aW9uKCkpOwogCiAgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHBh
cmFtZXRlcnM7Ci0gICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKTsKKyAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgcGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxz
ID0gQWxsb3dTdG9yZWRDcmVkZW50aWFsczsKICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmlu
Z1BvbGljeSA9IERvTm90U25pZmZDb250ZW50OwogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IG1f
b3JpZ2luYWxSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAppbmRleCAzNTE2NDEyYzA0OC4uNDkwMDFl
NjA1YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrU2Vz
c2lvbiB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtEYXRhVGFza0NvY29hOwogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQs
IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciopOworICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nl
c3Npb24+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Kik7CiAgICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uJiBkZWZhdWx0U2Vzc2lvbigpOwogICAgIH5O
ZXR3b3JrU2Vzc2lvbkNvY29hKCk7CiAKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIERv
d25sb2FkSUQgdGFrZURvd25sb2FkSUQoTmV0d29ya0RhdGFUYXNrQ29jb2E6OlRhc2tJZGVudGlm
aWVyKTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrU2Vzc2lvbkNvY29hKFdlYkNvcmU6OlNlc3Np
b25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKik7CisgICAgTmV0d29ya1Nlc3Npb25D
b2NvYShQQUw6OlNlc3Npb25JRCwgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKik7CiAKICAg
ICB2b2lkIGludmFsaWRhdGVBbmRDYW5jZWwoKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQ3Jl
ZGVudGlhbHMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCAwZjg1ZDA3MGFlYy4u
ODc1NDgyMTczNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTQ1NSw3ICs0NTUsNyBAQCBzdGF0
aWMgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBsZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXI7CiBzdGF0aWMgYm9vbCBzZXNzaW9uc0NyZWF0ZWQgPSBmYWxzZTsKICNlbmRpZgogCi1zdGF0
aWMgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbkZvclNlc3Npb25JRChj
b25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNlc3Npb24pCitzdGF0aWMgTlNVUkxTZXNzaW9uQ29u
ZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbkZvclNlc3Npb25JRChjb25zdCBQQUw6OlNlc3Npb25J
RCYgc2Vzc2lvbikKIHsKICAgICBpZiAoc2Vzc2lvbi5pc0VwaGVtZXJhbCgpKSB7CiAgICAgICAg
IE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbTlNVUkxTZXNzaW9u
Q29uZmlndXJhdGlvbiBlcGhlbWVyYWxTZXNzaW9uQ29uZmlndXJhdGlvbl07CkBAIC01MzMsNyAr
NTMzLDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpzZXRDVERhdGFDb25uZWN0aW9uU2Vy
dmljZVR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogfQogI2VuZGlmCiAKLVJlZjxOZXR3b3JrU2Vz
c2lvbj4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciogY3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
KQorUmVmPE5ldHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIqIGN1c3RvbVBy
b3RvY29sTWFuYWdlcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU2Vzc2lv
bkNvY29hKHNlc3Npb25JRCwgY3VzdG9tUHJvdG9jb2xNYW5hZ2VyKSk7CiB9CkBAIC01NDEsMTEg
KzU0MSwxMSBAQCBSZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0
ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBMZQogTmV0d29ya1Nlc3Npb24mIE5ldHdv
cmtTZXNzaW9uQ29jb2E6OmRlZmF1bHRTZXNzaW9uKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwotICAgIHN0YXRpYyBOZXR3b3JrU2Vzc2lvbiogc2Vzc2lvbiA9ICZOZXR3b3Jr
U2Vzc2lvbkNvY29hOjpjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCksIGxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlcikubGVha1JlZigpOworICAgIHN0YXRpYyBO
ZXR3b3JrU2Vzc2lvbiogc2Vzc2lvbiA9ICZOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUoUEFM
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgbGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyKS5sZWFrUmVmKCk7CiAgICAgcmV0dXJuICpzZXNzaW9uOwogfQogCi1OZXR3b3JrU2Vzc2lv
bkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyKQorTmV0
d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciogY3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
KQogICAgIDogTmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKQogewogICAgIHJlbGF4QWRvcHRpb25S
ZXF1aXJlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAppbmRleCBmNmJhZWRhYzE3Mi4uZGM2OWNjNmRm
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3Jr
U2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrU2Vzc2lvblNvdXAuY3BwCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotTmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3
b3JrU2Vzc2lvblNvdXAoU2Vzc2lvbklEIHNlc3Npb25JRCkKK05ldHdvcmtTZXNzaW9uU291cDo6
TmV0d29ya1Nlc3Npb25Tb3VwKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IE5ldHdv
cmtTZXNzaW9uKHNlc3Npb25JRCkKIHsKICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zZXRD
b29raWVPYnNlcnZlckhhbmRsZXIoW3RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaAppbmRleCBlMDE5NjAyOWEx
YS4uZjU4Y2Q4MTJlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtTZXNzaW9uU291cCBmaW5hbCA6IHB1YmxpYyBOZXR3
b3JrU2Vzc2lvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3Jl
YXRlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgc3RhdGljIFJlZjxOZXR3b3Jr
U2Vzc2lvbj4gY3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtTZXNzaW9uU291cChzZXNzaW9uSUQpKTsKICAg
ICB9CkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Np
b24oKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrU2Vzc2lvblNvdXAoV2ViQ29yZTo6
U2Vzc2lvbklEKTsKKyAgICBOZXR3b3JrU2Vzc2lvblNvdXAoUEFMOjpTZXNzaW9uSUQpOwogCiAg
ICAgdm9pZCBjbGVhckNyZWRlbnRpYWxzKCkgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZmU2YmY4OTZkZDguLmM1ZmU1MDZhNGI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM1Miw2ICszNTIs
NyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKIAogICAgIHNwZWNpYWxfY2FzZXMgPSB7
CiAgICAgICAgICdTdHJpbmcnOiBbJzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKKyAgICAgICAg
J1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZl
bnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMnOiBbJzxXZWJDb3Jl
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9v
c2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCBhNmE4NjM0N2Q4Ny4uYzgxMDJhMDlmOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVu
dGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTczLDggKzczLDggQEAgdm9pZCBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemUoY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWUKICAgICBTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzIHNhbmRib3hQYXJhbWV0ZXJzOwogICAgIGluaXRp
YWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsKIAotICAgIC8vIElu
IFdlYktpdDIsIG9ubHkgdGhlIFVJIHByb2Nlc3Mgc2hvdWxkIGV2ZXIgYmUgZ2VuZXJhdGluZyBu
b24tZGVmYXVsdCBTZXNzaW9uSURzLgotICAgIFdlYkNvcmU6OlNlc3Npb25JRDo6ZW5hYmxlR2Vu
ZXJhdGlvblByb3RlY3Rpb24oKTsKKyAgICAvLyBJbiBXZWJLaXQyLCBvbmx5IHRoZSBVSSBwcm9j
ZXNzIHNob3VsZCBldmVyIGJlIGdlbmVyYXRpbmcgbm9uLWRlZmF1bHQgUEFMOjpTZXNzaW9uSURz
LgorICAgIFBBTDo6U2Vzc2lvbklEOjplbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOwogCiAg
ICAgbV9jb25uZWN0aW9uID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9u
KHBhcmFtZXRlcnMuY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsKICAgICBtX2Nvbm5lY3Rp
b24tPnNldERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soZGlkQ2xvc2VPbkNv
bm5lY3Rpb25Xb3JrUXVldWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vz
c2lvblRyYWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3Bw
CmluZGV4IDQ4YWU4YTU2YWRkLi5kNzM4MzU3ZDdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nl
c3Npb25UcmFja2VyLmNwcApAQCAtNTYsMjkgKzU2LDI5IEBAIHZvaWQgU2Vzc2lvblRyYWNrZXI6
OnNldElkZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKIH0KIAogI2lmIFVT
RShORVRXT1JLX1NFU1NJT04pCi1zdGF0aWMgSGFzaE1hcDxTZXNzaW9uSUQsIFJlZlB0cjxOZXR3
b3JrU2Vzc2lvbj4+JiBzdGF0aWNTZXNzaW9uTWFwKCkKK3N0YXRpYyBIYXNoTWFwPFBBTDo6U2Vz
c2lvbklELCBSZWZQdHI8TmV0d29ya1Nlc3Npb24+PiYgc3RhdGljU2Vzc2lvbk1hcCgpCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxIYXNoTWFwPFNlc3Npb25JRCwgUmVmUHRyPE5ldHdvcmtTZXNzaW9uPj4+IG1hcDsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmUHRyPE5ldHdv
cmtTZXNzaW9uPj4+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCi1OZXR3b3JrU2Vzc2lvbiog
U2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCitOZXR3
b3JrU2Vzc2lvbiogU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKLSAgICBpZiAoc2Vzc2lvbklEID09IFNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpKQorICAgIGlmIChzZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSkKICAgICAgICAgcmV0dXJuICZOZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Np
b24oKTsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1hcCgpLmdldChzZXNzaW9uSUQpOwogfQog
Ci12b2lkIFNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIFJl
ZjxOZXR3b3JrU2Vzc2lvbj4mJiBzZXNzaW9uKQordm9pZCBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vz
c2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lvbj4mJiBzZXNz
aW9uKQogewotICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCkpOworICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSk7CiAgICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIFdURk1v
dmUoc2Vzc2lvbikpOwogfQogI2VuZGlmCiAKLXZvaWQgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lT
ZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFNlc3Npb25UcmFja2VyOjpkZXN0cm95
U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nl
c3Npb25UcmFja2VyLmgKaW5kZXggOWY3YTZjMDcwMDEuLmJmZTE1MDk3YzcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOwogfQogCi0jaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDYsMTAgKzQ2LDEwIEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCBzZXRJZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKICAg
ICAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIHN0YXRpYyB2b2lkIHNldFNlc3Npb24o
V2ViQ29yZTo6U2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Npb24+JiYpOwotICAgIHN0YXRpYyBO
ZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBz
dGF0aWMgdm9pZCBzZXRTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Npb24+
JiYpOworICAgIHN0YXRpYyBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24oUEFMOjpTZXNz
aW9uSUQpOwogI2VuZGlmCi0gICAgc3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24oV2ViQ29yZTo6
U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25J
RCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAppbmRleCBlMGYzNTM2NDExOS4uNDYxNzM3OGQ1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNDMsNyArNDMsNyBAQCBzdHJ1Y3QgU3Rv
cmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBTdG9y
YWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgU3RyaW5nIGluZGV4ZWREYXRhYmFzZURpcmVjdG9y
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmlu
ZGV4IDk5YzM5NTRkYzk1Li4xNGE4MjNjYmIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC02MSw3ICs2MSw2IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxpbmdDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hl
Y2tlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVGltaW5nRnVuY3Rpb24uaD4KQEAgLTcwLDYgKzY5LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFy
Z3VtZW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KKyNpbmNsdWRl
IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRl
eCA5MjNhYjc5ZmJlZi4uMGMzOTAxYjI5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00NCw2ICs0NCwxMCBAQCBjbGFzcyBNb25vdG9uaWNU
aW1lOwogY2xhc3MgU2Vjb25kczsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9u
SUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNs
YXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwpAQCAtNzgsNyArODIsNiBAQCBjbGFzcyBSZWdp
b247CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFNwcmluZ1RpbWluZ0Z1
bmN0aW9uOwogY2xhc3MgU3RlcHNUaW1pbmdGdW5jdGlvbjsKIGNsYXNzIFN0aWNreVBvc2l0aW9u
Vmlld3BvcnRDb25zdHJhaW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzNzYzYzg3NTg1Mi4uYzllNTlhODRiNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTQxLDggKzQxLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2luYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVz
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC04OCw3ICs4OCw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgdXNlckFnZW50OwogCiAgICAgVmVjdG9yPEJhY2tGb3J3
YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlczsKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklEOworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICB1aW50NjRfdCBoaWdo
ZXN0VXNlZEJhY2tGb3J3YXJkSXRlbUlEOwogCiAgICAgdWludDY0X3QgdXNlckNvbnRlbnRDb250
cm9sbGVySUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggNjcyYjY1YjFjZTkuLmQ5OTg4MDIxNmEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IlRleHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0xNTUsNyArMTU1LDcgQEAgc3RydWN0
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIEhhc2hNYXA8U3RyaW5nLCBib29s
PiBub3RpZmljYXRpb25QZXJtaXNzaW9uczsKICNlbmRpZgogCi0gICAgSGFzaE1hcDxXZWJDb3Jl
OjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+IHBsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVk
LCBkb3VibGU+PiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAgICAgVmVjdG9yPFN0cmlu
Zz4gcGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgKaW5kZXggZTkyYzA3ZjJjMjcuLmU0MDFhOTYzYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKQEAgLTI3LDcgKzI3LDcg
QEAKIAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nv
b2tpZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycyB7CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzJik7CiAKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBWZWN0b3I8dWludDhfdD4gdWlQcm9jZXNz
Q29va2llU3RvcmFnZUlkZW50aWZpZXI7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGNv
b2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29r
aWU+IHBlbmRpbmdDb29raWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L0Nvb2tpZVN0b3JhZ2VTaGltLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0Nvb2tpZVN0
b3JhZ2VTaGltLm1tCmluZGV4IDUyOTEyZmFkMzQ4Li4zNDI3NDhkZThjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQpAQCAtMzEsOSArMzEsOSBA
QAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8
ZGxmY24uaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgQ0ZE
aWN0aW9uYXJ5UmVmIHdlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0Zv
clVSTChDRkhUVFBDbwogewogICAgIFN0cmluZyBjb29raWVzOwogICAgIFVSTCBmaXJzdFBhcnR5
Rm9yQ29va2llc1VSTDsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtD
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCksIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RV
UkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JE
T006OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
Lm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
UEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgZmlyc3RQYXJ0eUZvckNvb2tpZXNV
UkwsIGluUmVxdWVzdFVSTCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Q29va2llc0ZvckRPTTo6UmVwbHkoY29va2llcyksIDApKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIGlmIChjb29raWVzLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHAKaW5kZXggMWZmN2JlODFhZTkuLmJkMDQ1MDEwNWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTQ1LDEyICs0NSwxMiBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ+IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKFN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1JlZjxXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQ+IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKFN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudChjb25uZWN0aW9uLCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgc2Vzc2lvbklEKSk7CiB9CiAKLVdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6V2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50KFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lk
ZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgLCBtX3Nlc3Npb25JRChz
ZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IGYzNDNlMTNk
MWUwLi44ODMzODFkNWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAg
LTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVk
ZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIElEQkN1cnNvckluZm87CkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZSwgcHVibGljIElQQzo6TWVz
c2FnZVNlbmRlciwgcHVibGljIFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IGNyZWF0
ZShTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyBSZWY8V2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50PiBjcmVhdGUoU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24m
LCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwog
CiAgICAgdmlydHVhbCB+V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KCk7CiAKQEAgLTEyNiw3ICsx
MjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKTsKIAogcHJpdmF0ZToKLSAgICBXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQoU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQoU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFsOwogCkBAIC0xMzUsNyArMTM1
LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IG1f
Y29ubmVjdGlvbjsKIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKLSAgICBXZWJDb3JlOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50PiBtX2Nv
bm5lY3Rpb25Ub0NsaWVudDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TdG9yYWdlUHJvY2Vzcy5jcHAKaW5kZXggMWNjN2E2YmQ0MGUuLjk5NDZhNjhlZTMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApAQCAt
MzUsOCArMzUsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSURCS2V5RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4
dEVuY29kaW5nLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIKIH0KIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotSURCU2VydmVyOjpJREJTZXJ2ZXImIFN0b3JhZ2VQcm9j
ZXNzOjppZGJTZXJ2ZXIoU2Vzc2lvbklEIHNlc3Npb25JRCkKK0lEQlNlcnZlcjo6SURCU2VydmVy
JiBTdG9yYWdlUHJvY2Vzczo6aWRiU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsK
ICAgICBhdXRvIGFkZFJlc3VsdCA9IG1faWRiU2VydmVycy5hZGQoc2Vzc2lvbklELCBudWxscHRy
KTsKICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KSB7CkBAIC05OCw4ICs5OCw4IEBAIElE
QlNlcnZlcjo6SURCU2VydmVyJiBTdG9yYWdlUHJvY2Vzczo6aWRiU2VydmVyKFNlc3Npb25JRCBz
ZXNzaW9uSUQpCiAgICAgfQogCiAgICAgYXV0byBwYXRoID0gbV9pZGJEYXRhYmFzZVBhdGhzLmdl
dChzZXNzaW9uSUQpOwotICAgIC8vIFRoZXJlIHNob3VsZCBhbHJlYWR5IGJlIGEgcmVnaXN0ZXJl
ZCBwYXRoIGZvciB0aGlzIFNlc3Npb25JRC4KLSAgICAvLyBJZiB0aGVyZSdzIG5vdCwgdGhlbiB3
aGVyZSBkaWQgdGhpcyBTZXNzaW9uSUQgY29tZSBmcm9tPworICAgIC8vIFRoZXJlIHNob3VsZCBh
bHJlYWR5IGJlIGEgcmVnaXN0ZXJlZCBwYXRoIGZvciB0aGlzIFBBTDo6U2Vzc2lvbklELgorICAg
IC8vIElmIHRoZXJlJ3Mgbm90LCB0aGVuIHdoZXJlIGRpZCB0aGlzIFBBTDo6U2Vzc2lvbklEIGNv
bWUgZnJvbT8KICAgICBBU1NFUlQoIXBhdGguaXNFbXB0eSgpKTsKIAogICAgIGFkZFJlc3VsdC5p
dGVyYXRvci0+dmFsdWUgPSBJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y3JlYXRlKHBhdGgsIFN0b3Jh
Z2VQcm9jZXNzOjpzaW5nbGV0b24oKSk7CkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBTdG9yYWdl
UHJvY2Vzczo6Y3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogI2VuZGlmCiB9
CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0
X3QgY2FsbGJhY2tJRCkKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgY2FsbGJhY2tJRF0o
Y29uc3QgV2Vic2l0ZURhdGEmIHdlYnNpdGVEYXRhKSB7CkBAIC0yMDksNyArMjA5LDcgQEAgdm9p
ZCBTdG9yYWdlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGEKICNlbmRpZgogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpk
ZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Ns
b2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lk
IFN0b3JhZ2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hy
b25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKIHsKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBhdXRvIGNvbXBs
ZXRpb25IYW5kbGVyID0gW3RoaXMsIGNhbGxiYWNrSURdKCkgewpAQCAtMjI1LDcgKzIyNSw3IEBA
IHZvaWQgU3RvcmFnZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXCiAjZW5kaWYKIH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vz
czo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZl
Y3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbkRhdGFzLCB1aW50NjRfdCBj
YWxsYmFja0lEKQordm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4g
d2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIHNlY3Vy
aXR5T3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBjYWxsYmFj
a0lEXSgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFn
ZVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3Mu
aAppbmRleCAzYmM3MmUyMDZhMi4uYjhjN2Y3NzY0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKQEAgLTI5LDggKzI5LDggQEAKICNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JREJCYWNraW5nU3RvcmUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQlNlcnZlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VbmlxdWVJREJEYXRhYmFzZS5oPgorI2luY2x1
ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVh
ZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIApAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAgICAgflN0b3JhZ2VQcm9jZXNzKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKLSAgICBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlciYgaWRiU2VydmVyKFdlYkNv
cmU6OlNlc3Npb25JRCk7CisgICAgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXImIGlkYlNl
cnZlcihQQUw6OlNlc3Npb25JRCk7CiAjZW5kaWYKIAogICAgIFdvcmtRdWV1ZSYgcXVldWUoKSB7
IHJldHVybiBtX3F1ZXVlLmdldCgpOyB9CkBAIC05Miw5ICs5Miw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBpbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShjb25zdCBTdG9yYWdlUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgY3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lE
KTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAgdm9pZCBncmFudFNhbmRi
b3hFeHRlbnNpb25zRm9yQmxvYnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYpOwogICAgIHZvaWQgZGlkR2V0U2FuZGJveEV4
dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGVBcnJheSYmKTsKQEAgLTExMyw4ICsxMTMsOCBAQCBwcml2YXRlOgogICAgIFJlZjxX
b3JrUXVldWU+IG1fcXVldWU7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBI
YXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgU3RyaW5nPiBtX2lkYkRhdGFiYXNlUGF0aHM7Ci0g
ICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIFJlZlB0cjxXZWJDb3JlOjpJREJTZXJ2ZXI6
OklEQlNlcnZlcj4+IG1faWRiU2VydmVyczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBT
dHJpbmc+IG1faWRiRGF0YWJhc2VQYXRoczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBS
ZWZQdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI+PiBtX2lkYlNlcnZlcnM7CiAjZW5k
aWYKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+PiBtX2Jsb2JU
ZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RG
OjpGdW5jdGlvbjx2b2lkIChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmKT4+IG1fc2Fu
ZGJveEV4dGVuc2lvbkZvckJsb2JzQ29tcGxldGlvbkhhbmRsZXJzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KaW5k
ZXggNGJkZWM3M2U2NGYuLmM5ZGVhZGYyN2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI3LDkgKzI3
LDkgQEAgbWVzc2FnZXMgLT4gU3RvcmFnZVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgICMg
Q3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MK
ICAgICBDcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCiAKLSAgICBGZXRjaFdl
YnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6
OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkK
LSAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hy
b25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKLSAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zLCB1
aW50NjRfdCBjYWxsYmFja0lEKQorICAgIEZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdl
YnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9k
aWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YUZv
ck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJz
aXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGE+IG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAjaWYgRU5BQkxFKFNBTkRC
T1hfRVhURU5TSU9OUykKICAgICBHcmFudFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYnMoVmVjdG9y
PFN0cmluZz4gcGF0aHMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgZXh0
ZW5zaW9ucykKICAgICBEaWRHZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyh1aW50NjRf
dCByZXF1ZXN0SUQsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgZXh0ZW5z
aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNGFjYzI2NDA0NGYuLmRlOTE5
MTFlZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBA
IHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKQog
ICAgIHJldHVybiArK2lkZW50aWZpZXI7CiB9CiAKLXZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcihXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCit2b2lk
IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpCiB7CiAgICAgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0
ZUNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKTsKICAgICBMT0coSW5kZXhlZERCLCAiU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZl
ciAtICUiIFBSSXU2NCwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5oCmluZGV4IDEyZmZlOTVkODIyLi41YmU5ODMyY2YwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTksNyArNTksNyBAQCBwcml2YXRl
OgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgLy8gTWVzc2FnZXMgaGFuZGxl
cnMgKE1vZGVybiBJREIpCi0gICAgdm9pZCBlc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIo
V2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIp
OworICAgIHZvaWQgZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklE
LCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3Zl
SURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ+PiBtX3dlYklEQkNvbm5lY3Rpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KaW5kZXggNTg3NjEyMDIwNWUuLjhkMTA4ZjY0NTIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3Nh
Z2VzIC0+IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAjIENyZWF0ZXMgYSBjb25uZWN0aW9uIGZv
ciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCi0gICAgRXN0YWJsaXNoSURCQ29ubmVj
dGlvblRvU2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICBFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAodWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIpCiAgICAgUmVtb3ZlSURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBmMDNh
NGU5ZmE0MC4uMmZlM2ZhNmZiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMTUwLDE3ICsxNTAsMTcgQEAgdm9p
ZCBQYWdlQ29uZmlndXJhdGlvbjo6c2V0V2Vic2l0ZURhdGFTdG9yZShBUEk6OldlYnNpdGVEYXRh
U3RvcmUqIHdlYnNpdGVEYXRhU3QKICAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKQogICAgICAg
ICBtX3Nlc3Npb25JRCA9IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNl
c3Npb25JRCgpOwogICAgIGVsc2UKLSAgICAgICAgbV9zZXNzaW9uSUQgPSBXZWJDb3JlOjpTZXNz
aW9uSUQoKTsKKyAgICAgICAgbV9zZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRCgpOwogfQogCi1X
ZWJDb3JlOjpTZXNzaW9uSUQgUGFnZUNvbmZpZ3VyYXRpb246OnNlc3Npb25JRCgpCitQQUw6OlNl
c3Npb25JRCBQYWdlQ29uZmlndXJhdGlvbjo6c2Vzc2lvbklEKCkKIHsKLSAgICBBU1NFUlQoIW1f
d2Vic2l0ZURhdGFTdG9yZSB8fCBtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUo
KS5zZXNzaW9uSUQoKSA9PSBtX3Nlc3Npb25JRCB8fCBtX3Nlc3Npb25JRCA9PSBTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CisgICAgQVNTRVJUKCFtX3dlYnNpdGVEYXRhU3Rv
cmUgfHwgbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkg
PT0gbV9zZXNzaW9uSUQgfHwgbV9zZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQoKSk7CiAKICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CiB9CiAKLXZvaWQg
UGFnZUNvbmZpZ3VyYXRpb246OnNldFNlc3Npb25JRChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQordm9pZCBQYWdlQ29uZmlndXJhdGlvbjo6c2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKICAgICBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXgg
YjJhZTI0NzJkZTMuLjIzYzAxMWU0NGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5j
bHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRy
Lmg+CiAKQEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2Vic2l0ZURhdGFT
dG9yZShXZWJzaXRlRGF0YVN0b3JlKik7CiAKICAgICAvLyBGSVhNRTogT25jZSBQYWdlQ29uZmln
dXJhdGlvbnMgKmFsd2F5cyogaGF2ZSBhIGRhdGEgc3RvcmUsIGdldCByaWQgb2YgdGhlIHNlcGFy
YXRlIHNlc3Npb25JRC4KLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCk7Ci0gICAg
dm9pZCBzZXRTZXNzaW9uSUQoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQoKTsKKyAgICB2b2lkIHNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCk7CiAK
ICAgICBib29sIHRyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlKCkgeyByZXR1
cm4gbV90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZTsgfQogICAgIHZvaWQg
c2V0VHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmUoYm9vbCB0cmVhdHNTSEEx
U2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZSkgeyBtX3RyZWF0c1NIQTFTaWduZWRDZXJ0aWZp
Y2F0ZXNBc0luc2VjdXJlID0gdHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmU7
IH0gCkBAIC0xMTksNyArMTE5LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2Vic2l0ZURhdGFT
dG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOwogICAgIC8vIEZJWE1FOiBXZSBjdXJyZW50bHkgaGF2
ZSB0byBwYXNzIHRoZSBzZXNzaW9uIElEIHNlcGFyYXRlbHkgaGVyZSB0byBzdXBwb3J0IHRoZSBs
ZWdhY3kgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9uLgogICAgIC8vIE9uY2Ugd2UgZ2V0IHJpZCBv
ZiBpdCB3ZSBzaG91bGQgZ2V0IHJpZCBvZiB0aGlzIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGFz
IHdlbGwuCi0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBBTDo6U2Vz
c2lvbklEIG1fc2Vzc2lvbklEOwogCiAgICAgYm9vbCBtX3RyZWF0c1NIQTFTaWduZWRDZXJ0aWZp
Y2F0ZXNBc0luc2VjdXJlID0gdHJ1ZTsKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMGRi
NWRkOTJjNTQuLjUwZmE2MGJlZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0zNSw3ICszNSw3IEBAIFJlZjxXZWJz
aXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlKCkKIHsKICAg
ICBXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKCk7CiAKLSAgICBzdGF0aWMgV2Vic2l0ZURhdGFT
dG9yZSogZGVmYXVsdERhdGFTdG9yZSA9IGFkb3B0UmVmKG5ldyBXZWJzaXRlRGF0YVN0b3JlKGRl
ZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9uKCksIFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKSkubGVha1JlZigpOworICAgIHN0YXRpYyBXZWJzaXRlRGF0YVN0b3JlKiBk
ZWZhdWx0RGF0YVN0b3JlID0gYWRvcHRSZWYobmV3IFdlYnNpdGVEYXRhU3RvcmUoZGVmYXVsdERh
dGFTdG9yZUNvbmZpZ3VyYXRpb24oKSwgUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSkpLmxlYWtSZWYoKTsKIAogICAgIHJldHVybiAqZGVmYXVsdERhdGFTdG9yZTsKIH0KQEAgLTQ3
LDcgKzQ3LDcgQEAgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRhU3RvcmU6OmNyZWF0
ZU5vblBlcnNpc3RlbnREYXRhU3RvcmUoKQogCiBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0
ZURhdGFTdG9yZTo6Y3JlYXRlTGVnYWN5KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmln
dXJhdGlvbiBjb25maWd1cmF0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYnNp
dGVEYXRhU3RvcmUoV1RGTW92ZShjb25maWd1cmF0aW9uKSwgV2ViQ29yZTo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0
YVN0b3JlKFdURk1vdmUoY29uZmlndXJhdGlvbiksIFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpKTsKIH0KIAogV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZSgpCkBA
IC01NSw3ICs1NSw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoKQogewog
fQogCi1XZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQorV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogbV93ZWJzaXRlRGF0YVN0b3JlKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6Y3JlYXRlKFdURk1vdmUoY29uZmlndXJhdGlvbiksIHNlc3Npb25JRCkpCiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUu
aAppbmRleCAyMzhjNmM0ZDdiNC4uNDRiMWQzZGU4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjgsNyArMjgsNyBAQAog
CiAjaW5jbHVkZSAiQVBJSFRUUENvb2tpZVN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFT
dG9yZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBBUEkgewpAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVOb25QZXJzaXN0ZW50RGF0YVN0b3JlKCk7CiAgICAg
c3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVMZWdhY3koV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpDb25maWd1cmF0aW9uKTsKIAotICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3Rv
cmUoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZXNz
aW9uSUQpOworICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmUoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjpDb25maWd1cmF0aW9uLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+V2Vi
c2l0ZURhdGFTdG9yZSgpOwogCiAgICAgYm9vbCBpc1BlcnNpc3RlbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDE5MGY1
NTFjOWFhLi5hYTYyZjI2YzdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCkBAIC00NCwxNyArNDQsMTcgQEAgdm9pZCBXS0Nvb2tp
ZU1hbmFnZXJTZXRDbGllbnQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIGNv
bnN0IFdLQ29va2kKIAogdm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29va2ll
cyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZiwgdm9pZCogY29udGV4dCwgV0tD
b29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0gICAg
dG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXZWJDb3Jl
OjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlv
bihjb250ZXh0LCBjYWxsYmFjaykpOworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+Z2V0
SG9zdG5hbWVzV2l0aENvb2tpZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwg
dG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFjaykpOwogfQogCiB2b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXS0Nvb2tpZU1hbmFnZXJS
ZWYgY29va2llTWFuYWdlclJlZiwgV0tTdHJpbmdSZWYgaG9zdG5hbWUpCiB7Ci0gICAgdG9JbXBs
KGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVDb29raWVzRm9ySG9zdG5hbWUoV2ViQ29yZTo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvSW1wbChob3N0bmFtZSktPnN0cmluZygpKTsK
KyAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0ltcGwoaG9zdG5hbWUpLT5zdHJp
bmcoKSk7CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdl
clJlZiktPmRlbGV0ZUFsbENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCkpOworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsQ29va2llcyhQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBXS0Nvb2tpZU1h
bmFnZXJEZWxldGVBbGxDb29raWVzTW9kaWZpZWRBZnRlckRhdGUoV0tDb29raWVNYW5hZ2VyUmVm
IGNvb2tpZU1hbmFnZXJSZWYsIGRvdWJsZSBkYXRlKQpAQCAtNjIsMTcgKzYyLDE3IEBAIHZvaWQg
V0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNCiAgICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25vOwogCiAg
ICAgYXV0byB0aW1lID0gc3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50KGR1cmF0aW9uX2Nhc3Q8c3lz
dGVtX2Nsb2NrOjpkdXJhdGlvbj4oZHVyYXRpb248ZG91YmxlPihkYXRlKSkpOwotICAgIHRvSW1w
bChjb29raWVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoV2ViQ29y
ZTo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRpbWUsIFtdKENhbGxiYWNrQmFzZTo6
RXJyb3Ipe30pOworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsQ29va2ll
c01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdGltZSwg
W10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwg
V0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKIHsKLSAgICB0b0ltcGwoY29va2llTWFu
YWdlciktPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksIHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbXShDYWxs
YmFja0Jhc2U6OkVycm9yKXt9KTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9I
VFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSksIFtdKENhbGxiYWNrQmFzZTo6RXJyb3Ipe30p
OwogfQogCiB2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFu
YWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjaykKIHsKLSAgICB0
b0ltcGwoY29va2llTWFuYWdlciktPmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb248
V0tIVFRQQ29va2llQWNjZXB0UG9saWN5LCBIVFRQQ29va2llQWNjZXB0UG9saWN5Pihjb250ZXh0
LCBjYWxsYmFjaykpOworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+Z2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0dlbmVyaWND
YWxsYmFja0Z1bmN0aW9uPFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgSFRUUENvb2tpZUFjY2Vw
dFBvbGljeT4oY29udGV4dCwgY2FsbGJhY2spKTsKIH0KIAogdm9pZCBXS0Nvb2tpZU1hbmFnZXJT
ZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZChXS0Nvb2tpZU1hbmFnZXJSZWYgY29v
a2llTWFuYWdlciwgYm9vbCBlbmFibGVkKQpAQCAtODIsMTAgKzgyLDEwIEBAIHZvaWQgV0tDb29r
aWVNYW5hZ2VyU2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoV0tDb29raWVNYW5h
Z2VyUmVmIGNvb2tpCiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKQogewotICAgIHRvSW1wbChj
b29raWVNYW5hZ2VyKS0+c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKTsKIH0KIAogdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdl
cyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlcikKIHsKLSAgICB0b0ltcGwoY29va2ll
TWFuYWdlciktPnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0b3BPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bC5tbQppbmRleCA0ZGQ4YTBkNTU0Yy4uMWY1OTc0ZGY1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0yMDAsNyArMjAw
LDcgQEAgc3RhdGljIFdlYktpdDo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSB0b0hUVFBDb29raWVB
Y2NlcHRQb2xpY3koTlNIVFRQQ29va2llQWNjZXAKIAogLSAodm9pZClfc2V0Q29va2llQWNjZXB0
UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kpcG9saWN5CiB7Ci0gICAgX3Byb2Nlc3NQ
b29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5zZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW10oV2ViS2l0OjpDYWxsYmFja0Jh
c2U6OkVycm9yKXt9KTsKKyAgICBfcHJvY2Vzc1Bvb2wtPnN1cHBsZW1lbnQ8V2ViS2l0OjpXZWJD
b29raWVNYW5hZ2VyUHJveHk+KCktPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGlj
eSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7CiB9CiAKIC0gKGlkKV9vYmpl
Y3RGb3JCdW5kbGVQYXJhbWV0ZXI6KE5TU3RyaW5nICopcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpp
bmRleCA0MWIxOGQwNjEyYy4uOGMxMjEyYmU0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMTkwLDcg
KzE5MCw3IEBAIHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJz
aXRlRGF0YVJlY29yZHMoTlNBcnJheSAqZGF0YVJlY29yCiAgICAgaWYgKGNvbmZpZ3VyYXRpb24u
X2Nvb2tpZVN0b3JhZ2VGaWxlKQogICAgICAgICBjb25maWcuY29va2llU3RvcmFnZUZpbGUgPSBj
b25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZS5wYXRoOwogCi0gICAgQVBJOjpPYmplY3Q6
OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OldlYnNpdGVEYXRhU3RvcmU+KHNlbGYsIGNvbmZpZywg
V2ViQ29yZTo6U2Vzc2lvbklEOjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKSk7CisgICAg
QVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OldlYnNpdGVEYXRhU3RvcmU+KHNl
bGYsIGNvbmZpZywgUEFMOjpTZXNzaW9uSUQ6OmdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25JRCgp
KTsKIAogICAgIHJldHVybiBzZWxmOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcAppbmRleCBkN2VhYzg0Yzc1
NC4uMmVmNTQyZWRhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5j
bHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dFdlYnNpdGVEYXRhUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhUmVjb3JkLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L2dsaWIvV1RGR1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xODAs
NyArMTgwLDcgQEAgdm9pZCB3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3ko
V2ViS2l0Q29va2llTWFuYWdlciogbWFuYWdlciwgV2ViS2kKICAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19DT09LSUVfTUFOQUdFUihtYW5hZ2VyKSk7CiAKICAgICBmb3IgKGF1dG8qIHBy
b2Nlc3NQb29sIDogd2Via2l0V2Vic2l0ZURhdGFNYW5hZ2VyR2V0UHJvY2Vzc1Bvb2xzKG1hbmFn
ZXItPnByaXYtPmRhdGFNYW5hZ2VyKSkKLSAgICAgICAgcHJvY2Vzc1Bvb2wtPnN1cHBsZW1lbnQ8
V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNv
cmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kocG9saWN5KSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7CisgICAgICAgIHByb2Nlc3NQ
b29sLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+c2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7CiB9CiAK
IC8qKgpAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgd2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2dldF9h
Y2NlcHRfcG9saWN5KFdlYktpdENvb2tpZU1hbmFnZXIqIG1hbmFnZXIsIEdDYW5jCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBwcm9jZXNzUG9vbHNbMF0tPnN1cHBsZW1lbnQ8V2ViQ29v
a2llTWFuYWdlclByb3h5PigpLT5nZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBbdGFzayA9IFdURk1vdmUodGFzayldKEhUVFBD
b29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDYWxsYmFja0Jhc2U6OkVycm9yKSB7CisgICAgcHJv
Y2Vzc1Bvb2xzWzBdLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBb
dGFzayA9IFdURk1vdmUodGFzayldKEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDYWxs
YmFja0Jhc2U6OkVycm9yKSB7CiAgICAgICAgIGdfdGFza19yZXR1cm5faW50KHRhc2suZ2V0KCks
IHRvV2ViS2l0Q29va2llQWNjZXB0UG9saWN5KHBvbGljeSkpOwogICAgIH0pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKaW5kZXggY2YzOTZmNGIxMGYuLjkxYmE5YTA2NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAg
LTEyMiw3ICsxMjIsNyBAQCBEb3dubG9hZFByb3h5KiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjcmVh
dGVEb3dubG9hZFByb3h5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcgogICAgIHJldHVybiBtX2Rv
d25sb2FkUHJveHlNYXAtPmNyZWF0ZURvd25sb2FkUHJveHkobV9wcm9jZXNzUG9vbCwgcmVzb3Vy
Y2VSZXF1ZXN0KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVE
YXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFU
eXBlcywgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgV1RG
OjpGdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZCAo
V2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5k
TWVzc2FnZSgpKTsKIApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
CiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkZldGNoV2Vic2l0ZURhdGEoc2Vz
c2lvbklELCBkYXRhVHlwZXMsIGZldGNoT3B0aW9ucywgY2FsbGJhY2tJRCksIDApOwogfQogCi12
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3Rk
OjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1
bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2Nr
Ojp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNr
SUQoKTsKICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRh
a2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBp
cyBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvbgogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpE
ZWxldGVXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2Fs
bGJhY2tJRCksIDApOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGNvb2tpZUhvc3ROYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4
IDkyM2RkMmE5MDg3Li40MGVkNmIwOGMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTM1LDYgKzM1LDEwIEBA
CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCituYW1lc3BhY2Ug
UEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CkBAIC00Miw3
ICs0Niw2IEBAIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGVudW0gY2xhc3MgU2hvdWxkU2FtcGxl
OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwotY2xh
c3MgU2Vzc2lvbklEOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY0LDkgKzY3LDkgQEAg
cHVibGljOgogCiAgICAgRG93bmxvYWRQcm94eSogY3JlYXRlRG93bmxvYWRQcm94eShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShX
ZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIFdURjo6RnVuY3Rpb248dm9pZChXZWJzaXRlRGF0YSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29y
ZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5
cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6
OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRl
RGF0YUZldGNoT3B0aW9uPiwgV1RGOjpGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4mJiBjb21w
bGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6
OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcAppbmRleCAzYzBjYTJk
NzI5Yi4uMjIyNWUzMzI1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCkBAIC00Miw4ICs0Miw4
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OlBsdWdJbkF1
dG9TdGFydFByb3ZpZGVyKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICA6IG1fcHJv
Y2Vzc1Bvb2wocHJvY2Vzc1Bvb2wpCiB7Ci0gICAgbV9oYXNoVG9PcmlnaW5NYXAuYWRkKFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+KCkpOwot
ICAgIG1fYXV0b1N0YXJ0VGFibGUuYWRkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBB
dXRvU3RhcnRUYWJsZSgpKTsKKyAgICBtX2hhc2hUb09yaWdpbk1hcC5hZGQoUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPigpKTsKKyAg
ICBtX2F1dG9TdGFydFRhYmxlLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCBBdXRvU3RhcnRUYWJsZSgpKTsKIH0KIAogc3RhdGljIGRvdWJsZSBleHBpcmF0aW9uVGltZUZy
b21Ob3coKQpAQCAtNTEsMTQgKzUxLDE0IEBAIHN0YXRpYyBkb3VibGUgZXhwaXJhdGlvblRpbWVG
cm9tTm93KCkKICAgICByZXR1cm4gY3VycmVudFRpbWUoKSArIHBsdWdJbkF1dG9TdGFydEV4cGly
YXRpb25UaW1lVGhyZXNob2xkOwogfQogCi12b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjph
ZGRBdXRvU3RhcnRPcmlnaW5IYXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQg
cGx1Z0luT3JpZ2luSGFzaCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgUGx1Z0luQXV0b1N0
YXJ0UHJvdmlkZXI6OmFkZEF1dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3Jp
Z2luLCB1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CiB7CiAgICAgYXV0byBzZXNzaW9uSXRlcmF0b3IgPSBtX2hhc2hUb09yaWdpbk1hcC5maW5kKHNl
c3Npb25JRCk7CiAgICAgaWYgKHNlc3Npb25JdGVyYXRvciA9PSBtX2hhc2hUb09yaWdpbk1hcC5l
bmQoKSkgewotICAgICAgICBpZiAobV9oYXNoVG9PcmlnaW5NYXAuZ2V0KFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKS5jb250YWlucyhwbHVnSW5PcmlnaW5IYXNoKSkKKyAgICAgICAgaWYg
KG1faGFzaFRvT3JpZ2luTWFwLmdldChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
KS5jb250YWlucyhwbHVnSW5PcmlnaW5IYXNoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgc2Vzc2lvbkl0ZXJhdG9yID0gbV9oYXNoVG9PcmlnaW5NYXAuc2V0KHNlc3Npb25JRCwgSGFz
aE1hcDx1bnNpZ25lZCwgU3RyaW5nPigpKS5pdGVyYXRvcjsKLSAgICB9IGVsc2UgaWYgKHNlc3Np
b25JdGVyYXRvci0+dmFsdWUuY29udGFpbnMocGx1Z0luT3JpZ2luSGFzaCkgfHwgbV9oYXNoVG9P
cmlnaW5NYXAuZ2V0KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKS5jb250YWlucyhwbHVn
SW5PcmlnaW5IYXNoKSkKKyAgICB9IGVsc2UgaWYgKHNlc3Npb25JdGVyYXRvci0+dmFsdWUuY29u
dGFpbnMocGx1Z0luT3JpZ2luSGFzaCkgfHwgbV9oYXNoVG9PcmlnaW5NYXAuZ2V0KFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpLmNvbnRhaW5zKHBsdWdJbk9yaWdpbkhhc2gpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBBdXRvU3RhcnRUYWJsZTo6aXRlcmF0b3IgaXQgPSBtX2F1
dG9TdGFydFRhYmxlLmFkZChzZXNzaW9uSUQsIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52
YWx1ZS5hZGQocGFnZU9yaWdpbiwgUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwKCkpLml0ZXJhdG9y
OwpAQCAtOTIsNyArOTIsNyBAQCBSZWY8QVBJOjpEaWN0aW9uYXJ5PiBQbHVnSW5BdXRvU3RhcnRQ
cm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0CiAgICAgQVBJOjpEaWN0
aW9uYXJ5OjpNYXBUeXBlIG1hcDsKIAogICAgIGRvdWJsZSBub3cgPSBjdXJyZW50VGltZSgpOwot
ICAgIGZvciAoY29uc3QgYXV0byYgc3RyaW5nT3JpZ2luSGFzaCA6IG1fYXV0b1N0YXJ0VGFibGUu
Z2V0KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSkgeworICAgIGZvciAoY29uc3QgYXV0
byYgc3RyaW5nT3JpZ2luSGFzaCA6IG1fYXV0b1N0YXJ0VGFibGUuZ2V0KFBBTDo6U2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkpKSB7CiAgICAgICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlw
ZSBoYXNoTWFwOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIG9yaWdpbkhhc2ggOiBzdHJpbmdP
cmlnaW5IYXNoLnZhbHVlKSB7CiAgICAgICAgICAgICBpZiAobm93IDw9IG9yaWdpbkhhc2gudmFs
dWUpCkBAIC0xMjcsOCArMTI3LDggQEAgdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0
QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QoQVBJOjoKICAgICBtX2hh
c2hUb09yaWdpbk1hcC5jbGVhcigpOwogICAgIG1fYXV0b1N0YXJ0VGFibGUuY2xlYXIoKTsKICAg
ICBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+IGhhc2hNYXA7Ci0gICAgSGFzaE1hcDx1bnNpZ25l
ZCwgU3RyaW5nPiYgaGFzaFRvT3JpZ2luTWFwID0gbV9oYXNoVG9PcmlnaW5NYXAuYWRkKFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+KCkpLml0
ZXJhdG9yLT52YWx1ZTsKLSAgICBBdXRvU3RhcnRUYWJsZSYgYXN0ID0gbV9hdXRvU3RhcnRUYWJs
ZS5hZGQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEF1dG9TdGFydFRhYmxlKCkpLml0
ZXJhdG9yLT52YWx1ZTsKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+JiBoYXNoVG9Pcmln
aW5NYXAgPSBtX2hhc2hUb09yaWdpbk1hcC5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPigpKS5pdGVyYXRvci0+dmFsdWU7Cisg
ICAgQXV0b1N0YXJ0VGFibGUmIGFzdCA9IG1fYXV0b1N0YXJ0VGFibGUuYWRkKFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1
ZTsKIAogICAgIGZvciAoYXV0byYgc3RyRGljdCA6IHRhYmxlLm1hcCgpKSB7CiAgICAgICAgIFBs
dWdJbkF1dG9TdGFydE9yaWdpbk1hcCBoYXNoZXM7CkBAIC0xNjQsOSArMTY0LDkgQEAgdm9pZCBQ
bHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2luc0FycmF5KEFQSTo6QXJy
YXkmIG9yaWdpbkxpc3QpCiAgICAgICAgIG1fYXV0b1N0YXJ0T3JpZ2lucy5hcHBlbmQoc3RyaW5n
LT5zdHJpbmcoKSk7CiB9CiAKLXZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmRpZFJlY2Vp
dmVVc2VySW50ZXJhY3Rpb24odW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgU2Vzc2lvbklEIHNl
c3Npb25JRCkKK3ZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmRpZFJlY2VpdmVVc2VySW50
ZXJhY3Rpb24odW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogewotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVk
LCBTdHJpbmc+Pjo6Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9oYXNoVG9Pcmln
aW5NYXAuZmluZChzZXNzaW9uSUQpOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hN
YXA8dW5zaWduZWQsIFN0cmluZz4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBt
X2hhc2hUb09yaWdpbk1hcC5maW5kKHNlc3Npb25JRCk7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCwg
U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQ7CiAgICAgYm9vbCBjb250YWlucyA9IGZhbHNlOwog
ICAgIGlmIChzZXNzaW9uSXRlcmF0b3IgIT0gbV9oYXNoVG9PcmlnaW5NYXAuZW5kKCkpIHsKQEAg
LTE3NCw3ICsxNzQsNyBAQCB2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZl
VXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhcwogICAgICAgICBjb250YWlu
cyA9IGl0ICE9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCk7CiAgICAgfQogICAgIGlmICgh
Y29udGFpbnMpIHsKLSAgICAgICAgc2Vzc2lvbkl0ZXJhdG9yID0gbV9oYXNoVG9PcmlnaW5NYXAu
ZmluZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAgICAgIHNlc3Npb25JdGVy
YXRvciA9IG1faGFzaFRvT3JpZ2luTWFwLmZpbmQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSk7CiAgICAgICAgIGl0ID0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5maW5kKHBsdWdJ
bk9yaWdpbkhhc2gpOwogICAgICAgICBpZiAoaXQgPT0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5l
bmQoKSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVy
LmgKaW5kZXggY2ExYjAwNDA5MjcuLjQ0Yjg0ZjdmNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCkBA
IC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyX2gKICNkZWZp
bmUgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXJfaAogCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
V2ViUHJvY2Vzc1Bvb2w7CiAKIHR5cGVkZWYgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPiBQbHVn
SW5BdXRvU3RhcnRPcmlnaW5NYXA7Ci10eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklE
LCBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA+IFNlc3Npb25QbHVnSW5BdXRvU3RhcnRPcmlnaW5N
YXA7Cit0eXBlZGVmIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFBsdWdJbkF1dG9TdGFydE9yaWdp
bk1hcD4gU2Vzc2lvblBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcDsKIHR5cGVkZWYgVmVjdG9yPFN0
cmluZz4gUGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKIAogY2xhc3MgUGx1Z0luQXV0b1N0YXJ0UHJv
dmlkZXIgewpAQCAtNTIsOCArNTIsOCBAQCBjbGFzcyBQbHVnSW5BdXRvU3RhcnRQcm92aWRlciB7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIoV2ViUHJvY2Vz
c1Bvb2wqKTsKIAotICAgIHZvaWQgYWRkQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcm
IHBhZ2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25J
RCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9y
aWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBhZGRBdXRvU3RhcnRPcmln
aW5IYXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFz
aCwgUEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1
bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBSZWY8QVBJ
OjpEaWN0aW9uYXJ5PiBhdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGUoQVBJOjpEaWN0aW9uYXJ5Jik7CkBAIC02OSwxMCAr
NjksMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJ
dGVtc1Bhc3NpbmdUZXN0KEFQSTo6RGljdGlvbmFyeSYsIFdURjo6RnVuY3Rpb248Ym9vbChkb3Vi
bGUgZXhwaXJhdGlvblRpbWVzdGFtcCk+JiYpOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmlu
ZywgUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IEF1
dG9TdGFydFRhYmxlOwotICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEF1
dG9TdGFydFRhYmxlPiBTZXNzaW9uQXV0b1N0YXJ0VGFibGU7CisgICAgdHlwZWRlZiBIYXNoTWFw
PFBBTDo6U2Vzc2lvbklELCBBdXRvU3RhcnRUYWJsZT4gU2Vzc2lvbkF1dG9TdGFydFRhYmxlOwog
ICAgIFNlc3Npb25BdXRvU3RhcnRUYWJsZSBtX2F1dG9TdGFydFRhYmxlOwogCi0gICAgSGFzaE1h
cDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz4+IG1faGFzaFRv
T3JpZ2luTWFwOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQs
IFN0cmluZz4+IG1faGFzaFRvT3JpZ2luTWFwOwogCiAgICAgUGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
cyBtX2F1dG9TdGFydE9yaWdpbnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAKaW5kZXggMjBkMjBlMGVlM2Mu
LmE1YWE4MTE4YzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdl
L1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBTdG9y
YWdlUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGUKICAgICB9CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZmV0
Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiBkYXRhVHlwZXMsIFdURjo6RnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRh
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0
YVR5cGVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKQEAgLTkzLDcgKzkzLDcg
QEAgdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXQKICAgICBzZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJv
Y2Vzczo6RmV0Y2hXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgY2FsbGJhY2tJRCks
IDApOwogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRh
dGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNp
bmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFN0
b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6
c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIFdURjo6RnVuY3Rpb248dm9p
ZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBnZW5l
cmF0ZUNhbGxiYWNrSUQoKTsKIApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgU3RvcmFnZVByb2Nl
c3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uCiAgICAgc2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRlbGV0ZVdlYnNpdGVE
YXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBtb2RpZmllZFNpbmNlLCBjYWxsYmFja0lEKSwgMCk7
CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFU
eXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMs
IFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTdG9yYWdl
UHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3Nh
Z2UoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3Rv
cmFnZVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9y
YWdlUHJvY2Vzc1Byb3h5LmgKaW5kZXggNWMxMTA2ZDM2OGIuLmMyZDJlYmE2MDkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJv
eHkuaApAQCAtMzEsOSArMzEsMTIgQEAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30K
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXNz
aW9uSUQ7CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogfQogCkBAIC00OCw5ICs1MSw5IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFN0b3JhZ2VQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQ
cm9jZXNzUG9vbCopOwogICAgIH5TdG9yYWdlUHJvY2Vzc1Byb3h5KCk7CiAKLSAgICB2b2lkIGZl
dGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgV1RGOjpGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxl
cik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3Bv
aW50IG1vZGlmaWVkU2luY2UsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhPiYsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKTsKKyAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMo
UEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKTsKIAogICAgIHZvaWQgZ2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9u
KFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rp
b246OkRlbGF5ZWRSZXBseT4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDNmNjc4OTY4YzY1Li5lNjVjNGZjOTM2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
Y3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlcmVm
V2ViQ29udGV4dFN1cHBsZW1lbnQoKQogICAgIEFQSTo6T2JqZWN0OjpkZXJlZigpOwogfQogCi12
b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoU2Vzc2lv
bklEIHNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoQVBJOjpBcnJheSosIENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGdW5jdGlv
bjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5j
dGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShj
YWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1By
b2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpH
ZXRIb3N0bmFtZXNXaXRoQ29va2llcyhzZXNzaW9uSUQsIGNhbGxiYWNrSUQpKTsKQEAgLTEyNCw0
NyArMTI0LDQ3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRHZXRIb3N0bmFtZXNX
aXRoQ29va2llcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgaG9zCiAgICAgY2FsbGJhY2stPnBlcmZv
cm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShBUEk6OkFycmF5OjpjcmVhdGVTdHJpbmdBcnJheSho
b3N0bmFtZXMpLnB0cigpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0
ZUNvb2tpZXNGb3JIb3N0bmFtZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGhv
c3RuYW1lKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0
bmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiB7
CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lm
TmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVDb29raWVzRm9ySG9z
dG5hbWUoc2Vzc2lvbklELCBob3N0bmFtZSkpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6ZGVsZXRlQWxsQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogewogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hp
bmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQWxsQ29va2ll
cyhzZXNzaW9uSUQpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNv
b2tpZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNvb2tpZSwgRnVuY3Rpb248
dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5OjpkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBDb29raWUmIGNvb2tpZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxi
YWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vzc1Bvb2woKS0+
c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyOjpEZWxldGVDb29raWUoc2Vzc2lvbklELCBjb29raWUsIGNhbGxiYWNr
SUQpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXNN
b2RpZmllZFNpbmNlKFNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgdGltZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+
JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVB
bGxDb29raWVzTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6Y2hy
b25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdGltZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNr
SUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJv
Y2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5
KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5j
ZShzZXNzaW9uSUQsIHRpbWUsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5h
Z2VyUHJveHk6OnNldENvb2tpZShTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNv
b2tpZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5j
dGlvbikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNvb2tpZSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNr
SUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJv
Y2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5
KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRDb29raWUoc2Vzc2lvbklELCBjb29raWUs
IGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tp
ZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIG1haW5Eb2N1bWVudFVSTCwgRnVuY3Rpb248dm9pZCAo
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29va2ll
TWFuYWdlclByb3h5OjpzZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIG1haW5E
b2N1bWVudFVSTCwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJh
Y2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RG
TW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29y
a2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5h
Z2VyOjpTZXRDb29raWVzKHNlc3Npb25JRCwgY29va2llcywgdXJsLCBtYWluRG9jdW1lbnRVUkws
IGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEFsbENv
b2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPENv
b2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8Q29va2llPiYsIENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9j
YWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29s
KCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdl
czo6V2ViQ29va2llTWFuYWdlcjo6R2V0QWxsQ29va2llcyhzZXNzaW9uSUQsIGNhbGxiYWNrSUQp
KTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldENvb2tpZXMoU2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxD
b29raWU+JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQg
V2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgVVJMJiB1cmwsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxDb29raWU+Jiwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNh
bGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAg
ICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVj
ZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRDb29raWVzKHNlc3Npb25JRCwg
dXJsLCBjYWxsYmFja0lEKSk7CkBAIC0xODUsMTggKzE4NSwxOCBAQCB2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6ZGlkRGVsZXRlQ29va2llcyhXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKICAgICBtX2NhbGxiYWNrcy50YWtlPFZvaWRDYWxsYmFjaz4oY2FsbGJhY2tJRCktPnBlcmZv
cm1DYWxsYmFjaygpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c3RhcnRPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKIHsKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1Jl
bGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlN0YXJ0T2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyhzZXNzaW9uSUQpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5h
Z2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFNlc3Npb25JRCBzZXNzaW9uSUQp
Cit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2ll
TWFuYWdlcjo6U3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoc2Vzc2lvbklEKSk7CiB9CiAKIAot
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZU9ic2VydmVyQ2FsbGJhY2soV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIGNhbGxi
YWNrKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZU9ic2VydmVyQ2FsbGJh
Y2soUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYgY2Fs
bGJhY2spCiB7CiAgICAgaWYgKGNhbGxiYWNrKQogICAgICAgICBtX2xlZ2FjeUNvb2tpZU9ic2Vy
dmVycy5zZXQoc2Vzc2lvbklELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CkBAIC0yMDQsNyArMjA0LDcg
QEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZU9ic2VydmVyQ2FsbGJhY2so
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb24KICAgICAgICAgbV9sZWdhY3lDb29raWVPYnNlcnZl
cnMucmVtb3ZlKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpy
ZWdpc3Rlck9ic2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9ic2VydmVyJiBv
YnNlcnZlcikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpyZWdpc3Rlck9ic2VydmVyKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT2JzZXJ2ZXImIG9ic2VydmVyKQogewogICAgIGF1dG8g
cmVzdWx0ID0gbV9jb29raWVPYnNlcnZlcnMuc2V0KHNlc3Npb25JRCwgSGFzaFNldDxPYnNlcnZl
cio+KCkpOwogICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKCZvYnNlcnZlcik7CkBAIC0y
MTMsNyArMjEzLDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyT2JzZXJ2
ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT2JzZXIKICAgICAgICAgc3RhcnRPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdl
clByb3h5Ojp1bnJlZ2lzdGVyT2JzZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T2JzZXJ2ZXImIG9ic2VydmVyKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnVucmVnaXN0
ZXJPYnNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9ic2VydmVyJiBvYnNlcnZlcikK
IHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9jb29raWVPYnNlcnZlcnMuZmluZChzZXNzaW9uSUQp
OwogICAgIGlmIChpdGVyYXRvciA9PSBtX2Nvb2tpZU9ic2VydmVycy5lbmQoKSkKQEAgLTIyNyw3
ICsyMjcsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6dW5yZWdpc3Rlck9ic2VydmVy
KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9icwogICAgIHN0b3BPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpj
b29raWVzRGlkQ2hhbmdlKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6Y29va2llc0RpZENoYW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAg
ICAgbV9jbGllbnQuY29va2llc0RpZENoYW5nZSh0aGlzKTsKICAgICBhdXRvIGxlZ2FjeUl0ZXJh
dG9yID0gbV9sZWdhY3lDb29raWVPYnNlcnZlcnMuZmluZChzZXNzaW9uSUQpOwpAQCAtMjQyLDcg
KzI0Miw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpjb29raWVzRGlkQ2hhbmdlKFNl
c3Npb25JRCBzZXNzaW9uSUQpCiAgICAgICAgIG9ic2VydmVyLT5jb29raWVzRGlkQ2hhbmdlKCk7
CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KFNlc3Npb25JRCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIEZ1bmN0aW9uPHZv
aWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNv
b2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25J
RCwgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgaWYgKCFwcm9jZXNzUG9vbCgpLT5pc1VzaW5nVGVzdGluZ05ldHdvcmtTZXNzaW9uKCkp
CkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koU2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXAKICAgICBwcm9jZXNz
UG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
cjo6U2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3ksIE9wdGlvbmFsQ2FsbGJhY2tJRChj
YWxsYmFja0lEKSkpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKEhUVFBDb29raWVBY2Nl
cHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lk
IFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNl
c3Npb25JRCwgRnVuY3Rpb248dm9pZCAoSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ2FsbGJhY2tC
YXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBhdXRvIGNhbGxiYWNrSUQg
PSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vz
c1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1l
c3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNhbGxi
YWNrSUQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5LmgKaW5kZXggMzdmMjYzNzdkZDUuLjczZGM0ZjQ3NzkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaApAQCAtMzAsNyArMzAsNyBAQAog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVt
ZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5Q2xpZW50LmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CkBAIC02NCwyNyArNjQsMjcgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50
KGNvbnN0IFdLQ29va2llTWFuYWdlckNsaWVudEJhc2UqKTsKICAgICAKLSAgICB2b2lkIGdldEhv
c3RuYW1lc1dpdGhDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoQVBJ
OjpBcnJheSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tp
ZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIEZ1bmN0aW9uPHZv
aWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JI
b3N0bmFtZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpOwotICAg
IHZvaWQgZGVsZXRlQWxsQ29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgZGVs
ZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoV2ViQ29yZTo6U2Vzc2lvbklELCBzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6
OkVycm9yKT4mJik7CisgICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Np
b25JRCwgRnVuY3Rpb248dm9pZCAoQVBJOjpBcnJheSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
KTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
Q29va2llJiwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZv
aWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IGhvc3RuYW1lKTsKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQpOwor
ICAgIHZvaWQgZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQsIHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQsIEZ1bmN0aW9uPHZvaWQgKENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmKTsKIAotICAgIHZvaWQgc2V0Q29va2llKFdlYkNvcmU6OlNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6Q29va2llJiwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNl
OjpFcnJvcik+JiYpOwotICAgIHZvaWQgc2V0Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3Qg
V2ViQ29yZTo6VVJMJiBtYWluRG9jdW1lbnRVUkwsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIHNldENvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6Q29va2llJiwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYp
OworICAgIHZvaWQgc2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIG1h
aW5Eb2N1bWVudFVSTCwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwog
Ci0gICAgdm9pZCBnZXRBbGxDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9p
ZCAoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4m
JiBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBnZXRDb29raWVzKFdlYkNvcmU6OlNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjb21wbGV0aW9uSGFuZGxl
cik7CisgICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBGdW5jdGlvbjx2b2lk
IChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwog
Ci0gICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OlNlc3Npb25JRCwg
SFRUUENvb2tpZUFjY2VwdFBvbGljeSwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYpOwotICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpTZXNz
aW9uSUQsIEZ1bmN0aW9uPHZvaWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpT
ZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFM
OjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmKTsKIAogICAgIHZvaWQgc2V0Q29va2llU3RvcmFnZVBhcnRpdGlv
bmluZ0VuYWJsZWQoYm9vbCk7CiAKLSAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdl
cyhXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyhQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdl
cyhQQUw6OlNlc3Npb25JRCk7CiAKLSAgICB2b2lkIHNldENvb2tpZU9ic2VydmVyQ2FsbGJhY2so
V2ViQ29yZTo6U2Vzc2lvbklELCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYpOworICAgIHZvaWQg
c2V0Q29va2llT2JzZXJ2ZXJDYWxsYmFjayhQQUw6OlNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2
b2lkICgpPiYmKTsKIAogICAgIGNsYXNzIE9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC05Myw4
ICs5Myw4IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIG1hbmFnZXJEZXN0cm95ZWQo
KSA9IDA7CiAgICAgfTsKIAotICAgIHZvaWQgcmVnaXN0ZXJPYnNlcnZlcihXZWJDb3JlOjpTZXNz
aW9uSUQsIE9ic2VydmVyJik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoV2ViQ29yZTo6
U2Vzc2lvbklELCBPYnNlcnZlciYpOworICAgIHZvaWQgcmVnaXN0ZXJPYnNlcnZlcihQQUw6OlNl
c3Npb25JRCwgT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJPYnNlcnZlcihQQUw6OlNl
c3Npb25JRCwgT2JzZXJ2ZXImKTsKIAogI2lmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0Q29va2ll
UGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgdWludDMyX3Qgc3Rv
cmFnZVR5cGUpOwpAQCAtMTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRHZXRD
b29raWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgV2ViS2l0OjpDYWxsYmFja0lE
KTsKICAgICB2b2lkIGRpZERlbGV0ZUNvb2tpZXMoV2ViS2l0OjpDYWxsYmFja0lEKTsKIAotICAg
IHZvaWQgY29va2llc0RpZENoYW5nZShXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgY29v
a2llc0RpZENoYW5nZShQQUw6OlNlc3Npb25JRCk7CiAKICAgICAvLyBXZWJDb250ZXh0U3VwcGxl
bWVudAogICAgIHZvaWQgcHJvY2Vzc1Bvb2xEZXN0cm95ZWQoKSBvdmVycmlkZTsKQEAgLTEzMyw4
ICsxMzMsOCBAQCBwcml2YXRlOgogCiAgICAgQ2FsbGJhY2tNYXAgbV9jYWxsYmFja3M7CiAKLSAg
ICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPj4gbV9s
ZWdhY3lDb29raWVPYnNlcnZlcnM7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhh
c2hTZXQ8T2JzZXJ2ZXIqPj4gbV9jb29raWVPYnNlcnZlcnM7CisgICAgSGFzaE1hcDxQQUw6OlNl
c3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPj4gbV9sZWdhY3lDb29raWVPYnNlcnZlcnM7
CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaFNldDxPYnNlcnZlcio+PiBtX2Nvb2tp
ZU9ic2VydmVyczsKIAogICAgIFdlYkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudCBtX2NsaWVudDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGE1ZDc3Yjk2Mjk5Li4zM2RmNDk1YzM5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMjksNSArMjksNSBAQCBtZXNzYWdlcyAtPiBXZWJDb29raWVNYW5h
Z2VyUHJveHkgewogICAgIERpZFNldENvb2tpZXMoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpOwogICAgIERpZEdldENvb2tpZXMoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcywg
V2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpOwogCi0gICAgQ29va2llc0RpZENoYW5nZShX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIENvb2tpZXNEaWRDaGFuZ2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCA2NDRlZDc1YzQ4My4uMDlmNDk2OGVkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0yOTUsNyArMjk1LDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90
IHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9CiAKICAgICAvLyBGSVhNRTogRG9u
J3Qga2VlcCBhIHNlcGFyYXRlIHNlc3Npb25JRCAtIFJlbHkgb24gdGhlIFdlYnNpdGVEYXRhU3Rv
cmUKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVy
biBtX3Nlc3Npb25JRDsgfQogCiAgICAgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9tYWluRnJhbWUuZ2V0KCk7IH0KICAgICBXZWJGcmFtZVByb3h5KiBmb2N1c2Vk
RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZvY3VzZWRGcmFtZS5nZXQoKTsgfQpAQCAtMTg0Nyw3
ICsxODQ3LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCB1aW50NjRfdCBtX3BhZ2VJRDsKIAogICAg
IC8vIEZJWE1FOiBEb24ndCBrZWVwIGEgc2VwYXJhdGUgc2Vzc2lvbklEIC0gUmVseSBvbiB0aGUg
V2Vic2l0ZURhdGFTdG9yZQotICAgIGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25J
RDsKKyAgICBjb25zdCBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIAogICAgIGJvb2wgbV9p
c1BhZ2VTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hZGRzVmlzaXRlZExpbmtzIHsg
dHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4
IDQ2NTFjOTI0YjI3Li4xMzRjMzQ4NTEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcApAQCAtNzYsOCArNzYsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTGlu
a0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMUGFyc2VyLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50
aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAg
LTU4NCwxNSArNTg0LDE1IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFueVBhZ2VHcm91cE1p
Z2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRlCiB7CiAgICAgaWYgKG5l
dHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0g
ICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih7U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKCksIHsgfSwgeyB9LCB7IH19KSwgMCk7CisgICAgICAgICAgICBuZXR3b3JrUHJv
Y2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbih7UEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgeyB9
LCB7IH0sIHsgfX0pLCAwKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV0d29ya1Byb2Nl
c3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSwgMCk7CisgICAgICAgICAgICBuZXR3b3Jr
UHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVNlc3Npb24o
UEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSksIDApOwogICAgIH0KIAog
ICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICBzZW5kVG9BbGxQcm9jZXNz
ZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJv
Y2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKICAgICBlbHNlCi0g
ICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVNl
c3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKTsKKyAgICAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihQQUw6
OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiB9CiAKIHZvaWQgKCpzX2lu
dmFsaWRNZXNzYWdlQ2FsbGJhY2spKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lKTsKQEAgLTc3NCw3
ICs3NzQsNyBAQCBXZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQ
cm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYQogI2VuZGlmCiAKICAgICBpZiAoV2Vi
UHJlZmVyZW5jZXM6OmFueVBhZ2VzQXJlVXNpbmdQcml2YXRlQnJvd3NpbmcoKSkKLSAgICAgICAg
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSksIDApOworICAgICAg
ICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsK
IAogICAgIGlmIChtX2F1dG9tYXRpb25TZXNzaW9uKQogICAgICAgICBwcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVBdXRvbWF0aW9uU2Vzc2lvblByb3h5KG1fYXV0b21h
dGlvblNlc3Npb24tPnNlc3Npb25JZGVudGlmaWVyKCkpLCAwKTsKQEAgLTkyNiw3ICs5MjYsNyBA
QCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xp
ZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogICAgIGlmICghcGFnZUNvbmZpZ3VyYXRpb24tPndl
YnNpdGVEYXRhU3RvcmUoKSkgewogICAgICAgICBBU1NFUlQoIXBhZ2VDb25maWd1cmF0aW9uLT5z
ZXNzaW9uSUQoKS5pc1ZhbGlkKCkpOwogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0V2Vi
c2l0ZURhdGFTdG9yZShtX3dlYnNpdGVEYXRhU3RvcmUucHRyKCkpOwotICAgICAgICBwYWdlQ29u
ZmlndXJhdGlvbi0+c2V0U2Vzc2lvbklEKHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygp
LT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgPyBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSA6IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25J
RCgpKTsKKyAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFNlc3Npb25JRChwYWdlQ29uZmln
dXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gUEFMOjpT
ZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSA6IG1fd2Vic2l0ZURhdGFTdG9yZS0+
d2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpKTsKICAgICB9CiAKICAgICBSZWZQdHI8V2Vi
UHJvY2Vzc1Byb3h5PiBwcm9jZXNzOwpAQCAtOTU0LDcgKzk1NCw3IEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnBhZ2VBZGRlZFRvUHJvY2VzcyhXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgICAgIEFT
U0VSVChwYWdlLndlYnNpdGVEYXRhU3RvcmUoKS5wYXJhbWV0ZXJzKCkuc2Vzc2lvbklEID09IHNl
c3Npb25JRCk7CiAgICAgICAgIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihwYWdlLndlYnNpdGVEYXRh
U3RvcmUoKS5wYXJhbWV0ZXJzKCkpKTsKICAgICAgICAgcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihzZXNzaW9uSUQp
LCAwKTsKLSAgICB9IGVsc2UgaWYgKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSkgeworICAgIH0gZWxzZSBpZiAoc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCkpIHsKICAgICAgICAgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlKHBhZ2Uud2Vic2l0ZURh
dGFTdG9yZSgpLnBhcmFtZXRlcnMoKSkpOwogICAgICAgICBwYWdlLnByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlKHBhZ2Uud2Vic2l0ZURhdGFT
dG9yZSgpLnBhcmFtZXRlcnMoKSksIDApOwogCkBAIC05NzgsMTAgKzk3OCwxMCBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwYWdlUmVtb3ZlZEZyb21Qcm9jZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSkK
ICAgICBpZiAoaXRlcmF0b3ItPnZhbHVlLmlzRW1wdHkoKSkgewogICAgICAgICBtX3Nlc3Npb25U
b1BhZ2VzTWFwLnJlbW92ZShpdGVyYXRvcik7CiAKLSAgICAgICAgaWYgKHNlc3Npb25JRCA9PSBT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKKyAgICAgICAgaWYgKHNlc3Npb25JRCA9PSBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIC8vIFRoZSBsYXN0IHVzZXIgb2YgdGhpcyBub24tZGVmYXVsdCBTZXNzaW9uSUQg
aXMgZ29uZSwgc28gY2xlYW4gaXQgdXAgaW4gdGhlIGNoaWxkIHByb2Nlc3Nlcy4KKyAgICAgICAg
Ly8gVGhlIGxhc3QgdXNlciBvZiB0aGlzIG5vbi1kZWZhdWx0IFBBTDo6U2Vzc2lvbklEIGlzIGdv
bmUsIHNvIGNsZWFuIGl0IHVwIGluIHRoZSBjaGlsZCBwcm9jZXNzZXMuCiAgICAgICAgIGlmIChu
ZXR3b3JrUHJvY2VzcygpKQogICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCksIDApOwogICAg
ICAgICBwYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95U2Vz
c2lvbihzZXNzaW9uSUQpLCAwKTsKQEAgLTk5MSw3ICs5OTEsNyBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpwYWdlUmVtb3ZlZEZyb21Qcm9jZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSkKIERvd25sb2Fk
UHJveHkqIFdlYlByb2Nlc3NQb29sOjpkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQ
YWdlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgc3VnZ2Vz
dGVkRmlsZW5hbWUpCiB7CiAgICAgRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9IGNyZWF0
ZURvd25sb2FkUHJveHkocmVxdWVzdCk7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IGluaXRp
YXRpbmdQYWdlID8gaW5pdGlhdGluZ1BhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCk7CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gaW5pdGlhdGlu
Z1BhZ2UgPyBpbml0aWF0aW5nUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpOwogCiAgICAgaWYgKGluaXRpYXRpbmdQYWdlKQogICAgICAgICBpbml0
aWF0aW5nUGFnZS0+aGFuZGxlRG93bmxvYWRSZXF1ZXN0KGRvd25sb2FkUHJveHkpOwpAQCAtMTAy
MSw3ICsxMDIxLDcgQEAgRG93bmxvYWRQcm94eSogV2ViUHJvY2Vzc1Bvb2w6OnJlc3VtZURvd25s
b2FkKGNvbnN0IEFQSTo6RGF0YSogcmVzdW1lRGF0YSwgY29uc3QKIAogICAgIGlmIChuZXR3b3Jr
UHJvY2VzcygpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBzdGFydGVkIGEgZG93bmxvYWQg
aW4gYW4gZXBoZW1lcmFsIHNlc3Npb24gYW5kIHRoYXQgc2Vzc2lvbiBzdGlsbCBleGlzdHMsIHdl
IHNob3VsZCBmaW5kIGEgd2F5IHRvIHVzZSB0aGF0IHNhbWUgc2Vzc2lvbi4KLSAgICAgICAgbmV0
d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc3VtZURvd25s
b2FkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBkb3dubG9hZFByb3h5LT5kb3dubG9h
ZElEKCksIHJlc3VtZURhdGEtPmRhdGFSZWZlcmVuY2UoKSwgcGF0aCwgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSksIDApOworICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6UmVzdW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSwgZG93bmxvYWRQcm94eS0+ZG93bmxvYWRJRCgpLCByZXN1bWVEYXRhLT5kYXRhUmVm
ZXJlbmNlKCksIHBhdGgsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpLCAwKTsKICAgICAgICAgcmV0
dXJuIGRvd25sb2FkUHJveHk7CiAgICAgfQogCkBAIC0xNTM0LDEyICsxNTM0LDEyIEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnNldEphdmFTY3JpcHRHYXJiYWdlQ29sbGVjdG9yVGltZXJFbmFibGVk
KGJvb2wgZmxhZykKICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OlNldEphdmFTY3JpcHRHYXJiYWdlQ29sbGVjdG9yVGltZXJFbmFibGVkKGZsYWcpKTsKIH0KIAot
dm9pZCBXZWJQcm9jZXNzUG9vbDo6YWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBT
dHJpbmcmIHBhZ2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFNlc3Npb25JRCBz
ZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3NQb29sOjphZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIG1fcGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXIuYWRkQXV0b1N0YXJ0T3JpZ2luSGFzaChwYWdlT3JpZ2luLCBwbHVnSW5PcmlnaW5IYXNoLCBz
ZXNzaW9uSUQpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpwbHVnSW5EaWRSZWNlaXZlVXNl
ckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFNlc3Npb25JRCBzZXNzaW9u
SUQpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9u
KHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsK
ICAgICBtX3BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24o
cGx1Z0luT3JpZ2luSGFzaCwgc2Vzc2lvbklEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCmluZGV4IGM3MDA3ZGE1ZDBmLi5jYzA4MjJjMzUwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00NSw3ICs0NSw3IEBACiAjaW5j
bHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTQ1Nyw4ICs0NTcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpOwogI2VuZGlmCiAKLSAgICB2b2lkIGFk
ZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1bnNp
Z25lZCBwbHVnSW5PcmlnaW5IYXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgcGx1
Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBX
ZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgYWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aChjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBB
TDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24o
dW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBz
ZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wpOwogCkBA
IC02MTAsNyArNjEwLDcgQEAgcHJpdmF0ZToKICAgICB9OwogICAgIFBhdGhzIG1fcmVzb2x2ZWRQ
YXRoczsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoU2V0PFdlYlBhZ2VQ
cm94eSo+PiBtX3Nlc3Npb25Ub1BhZ2VzTWFwOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQs
IEhhc2hTZXQ8V2ViUGFnZVByb3h5Kj4+IG1fc2Vzc2lvblRvUGFnZXNNYXA7CiB9OwogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5tZXNzYWdlcy5pbgppbmRleCBlMGJiMjY5NGFhNS4uNjBhYThlMjI0MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmlu
CkBAIC0zMiw4ICszMiw4IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQb29sIHsKICNlbmRpZgog
CiAgICAgIyBQbHVnLWluIG1lc3NhZ2VzLgotICAgIHZvaWQgQWRkUGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luSGFzaChTdHJpbmcgcGFnZU9yaWdpbiwgdWludDMyX3QgaGFzaCwgV2ViQ29yZTo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKLSAgICB2b2lkIFBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24o
dWludDMyX3QgaGFzaCwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICB2b2lkIEFk
ZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2goU3RyaW5nIHBhZ2VPcmlnaW4sIHVpbnQzMl90IGhh
c2gsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICB2b2lkIFBsdWdJbkRpZFJlY2VpdmVV
c2VySW50ZXJhY3Rpb24odWludDMyX3QgaGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
CiAgICAgUmVwb3J0V2ViQ29udGVudENQVVRpbWUoU2Vjb25kcyBjcHVUaW1lLCB1aW50NjRfdCBh
Y3Rpdml0eVN0YXRlKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggNzA4NWNlOTI0MDYuLjcyZWFlNjJiNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JUb3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluc0luQWxsUGVycwogICAgIAogICAgIFJlZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNh
bGxiYWNrQWdncmVnYXRvciA9IGFkb3B0UmVmKG5ldyBDYWxsYmFja0FnZ3JlZ2F0b3IoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKIAotICAgIEhhc2hTZXQ8V2ViQ29yZTo6U2Vzc2lvbklE
PiB2aXNpdGVkU2Vzc2lvbklEczsKKyAgICBIYXNoU2V0PFBBTDo6U2Vzc2lvbklEPiB2aXNpdGVk
U2Vzc2lvbklEczsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBnbG9iYWxQYWdlTWFwKCkpIHsKICAg
ICAgICAgYXV0byYgZGF0YVN0b3JlID0gcGFnZS52YWx1ZS0+d2Vic2l0ZURhdGFTdG9yZSgpOwog
ICAgICAgICBpZiAoIWRhdGFTdG9yZS5pc1BlcnNpc3RlbnQoKSB8fCB2aXNpdGVkU2Vzc2lvbklE
cy5jb250YWlucyhkYXRhU3RvcmUuc2Vzc2lvbklEKCkpKQpAQCAtMzA5LDcgKzMwOSw3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5Ojp0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc1dpdGhXZWJz
aXRlRGF0YShPcHRpb25TZXQ8V2ViCiAgICAgCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVnYXRv
cj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gYWRvcHRSZWYobmV3IENhbGxiYWNrQWdncmVnYXRvcihX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwogICAgIAotICAgIEhhc2hTZXQ8V2ViQ29yZTo6
U2Vzc2lvbklEPiB2aXNpdGVkU2Vzc2lvbklEczsKKyAgICBIYXNoU2V0PFBBTDo6U2Vzc2lvbklE
PiB2aXNpdGVkU2Vzc2lvbklEczsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBnbG9iYWxQYWdlTWFw
KCkpIHsKICAgICAgICAgYXV0byYgZGF0YVN0b3JlID0gcGFnZS52YWx1ZS0+d2Vic2l0ZURhdGFT
dG9yZSgpOwogICAgICAgICBpZiAoIWRhdGFTdG9yZS5pc1BlcnNpc3RlbnQoKSB8fCB2aXNpdGVk
U2Vzc2lvbklEcy5jb250YWlucyhkYXRhU3RvcmUuc2Vzc2lvbklEKCkpKQpAQCAtODM0LDcgKzgz
NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp3aW5kb3dTZXJ2ZXJDb25uZWN0aW9uU3RhdGVD
aGFuZ2VkKCkKICAgICAgICAgcGFnZS0+YWN0aXZpdHlTdGF0ZURpZENoYW5nZShBY3Rpdml0eVN0
YXRlOjpJc1Zpc3VhbGx5SWRsZSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdl
YnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
IGRhdGFUeXBlcywgRnVuY3Rpb248dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgRnVuY3Rp
b248dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJU
KGNhblNlbmRNZXNzYWdlKCkpOwogCkBAIC04NTIsNyArODUyLDcgQEAgdm9pZCBXZWJQcm9jZXNz
UHJveHk6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXQKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRh
dGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNp
bmNlLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKIApAQCAtODY1LDcg
Kzg2NSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9u
SUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhCiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgRnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4mIG9yaWdpbnMsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMWVlNDhmN2NiMmQuLjU1OTBkYWYyYzQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzksOCArMzksOCBAQAog
I2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxw
YWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTEz
OCw5ICsxMzgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTYXZlVG9QYWdlQ2FjaGUoKTsKICAg
ICB2b2lkIHJlbGVhc2VQYWdlQ2FjaGUoKTsKIAotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShX
ZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBGdW5jdGlvbjx2
b2lkKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBkZWxldGVX
ZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIEZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBkZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRl
RGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIEZ1bmN0aW9u
PHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGRlbGV0
ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwg
c3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHN0YXRpYyB2b2lkIGRlbGV0ZVdlYnNp
dGVEYXRhRm9yVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNJbkFsbFBlcnNpc3RlbnREYXRh
U3RvcmVzKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBWZWN0b3I8U3RyaW5nPiYmIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW5zLCBib29sIHNob3VsZE5vdGlmeVBhZ2VzLCBGdW5jdGlv
bjx2b2lkIChjb25zdCBIYXNoU2V0PFN0cmluZz4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAg
ICAgc3RhdGljIHZvaWQgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNXaXRoV2Vic2l0ZURh
dGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBib29sIHNob3VsZE5vdGlm
eVBhZ2UsIEZ1bmN0aW9uPHZvaWQoSGFzaFNldDxTdHJpbmc+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKTsKICAgICBzdGF0aWMgdm9pZCBub3RpZnlQYWdlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
UHJvY2Vzc2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDk1ODY1NjYxMzI3Li4yYzM5YTRjYjky
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTYzLDE1ICs2MywxNSBAQCBzdGF0aWMgdWludDY0X3Qg
Z2VuZXJhdGVJZGVudGlmaWVyKCkKIAogUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRh
U3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnQoKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYnNpdGVEYXRhU3RvcmUoV2ViQ29yZTo6U2Vzc2lvbklEOjpnZW5lcmF0ZUVwaGVtZXJhbFNl
c3Npb25JRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vic2l0ZURhdGFTdG9yZShQ
QUw6OlNlc3Npb25JRDo6Z2VuZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQoKSkpOwogfQogCi1SZWY8
V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKENvbmZpZ3VyYXRpb24g
Y29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1JlZjxXZWJzaXRl
RGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGUoQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2Vic2l0ZURhdGFTdG9yZShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBzZXNzaW9uSUQp
KTsKIH0KIAotV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitXZWJzaXRlRGF0
YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRp
ZmllcigpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9jb25maWd1cmF0
aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpCkBAIC04MSw3ICs4MSw3IEBAIFdlYnNpdGVEYXRh
U3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBXZWJD
b3JlOjpTZXNzaW9uCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiB9CiAKLVdlYnNpdGVEYXRh
U3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1dl
YnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRpZmllcigpKQogICAgICwgbV9zZXNz
aW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9jb25maWd1cmF0aW9uKCkKQEAgLTk0LDcgKzk0LDcg
QEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogewogICAgIHBsYXRmb3Jt
RGVzdHJveSgpOwogCi0gICAgaWYgKG1fc2Vzc2lvbklELmlzVmFsaWQoKSAmJiBtX3Nlc3Npb25J
RCAhPSBXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgeworICAgIGlmICht
X3Nlc3Npb25JRC5pc1ZhbGlkKCkgJiYgbV9zZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSkgewogICAgICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2Vi
UHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKQogICAgICAgICAgICAgcHJvY2Vzc1Bvb2wt
PnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJv
eVNlc3Npb24obV9zZXNzaW9uSUQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggODBlOGYwN2Uy
NTAuLjAyZjExMzM3OTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0
YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KQEAgLTgxLDEzICs4MSwxMyBAQCBwdWJsaWM6CiAg
ICAgICAgIFN0cmluZyBjb29raWVTdG9yYWdlRmlsZTsKICAgICB9OwogICAgIHN0YXRpYyBSZWY8
V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlTm9uUGVyc2lzdGVudCgpOwotICAgIHN0YXRpYyBSZWY8
V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENvbmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlc3Npb25J
RCk7CisgICAgc3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGUoQ29uZmlndXJhdGlv
biwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfldlYnNpdGVEYXRhU3RvcmUoKTsKIAog
ICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0K
IAogICAgIGJvb2wgaXNQZXJzaXN0ZW50KCkgY29uc3QgeyByZXR1cm4gIW1fc2Vzc2lvbklELmlz
RXBoZW1lcmFsKCk7IH0KLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBj
b25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCiAgICAgYm9vbCByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoYm9vbCk7CkBAIC0xMzEsOCArMTMxLDggQEAgcHVibGljOgogICAgIHZvaWQgZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0FuZFNldFRlc3RpbmdDYWxsYmFjayhGdW5jdGlvbjx2
b2lkIChjb25zdCBTdHJpbmcmKT4mJiBjYWxsYmFjayk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgV2Vic2l0ZURhdGFTdG9yZShXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIGV4cGxpY2l0IFdl
YnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBl
eHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEKTsKKyAgICBleHBsaWNpdCBX
ZWJzaXRlRGF0YVN0b3JlKENvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZv
aWQgZmV0Y2hEYXRhQW5kQXBwbHkoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNl
dDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgUmVmUHRyPFdvcmtRdWV1ZT4mJiwgRnVuY3Rpb248
dm9pZChWZWN0b3I8V2Vic2l0ZURhdGFSZWNvcmQ+KT4mJiBhcHBseSk7CiAKQEAgLTE1OSw3ICsx
NTksNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHJlbW92ZU1lZGlhS2V5cyhjb25zdCBT
dHJpbmcmIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnksIGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhPiYpOwogCiAgICAgY29uc3QgdWludDY0X3QgbV9pZGVudGlmaWVy
OwotICAgIGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBjb25zdCBQ
QUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIAogICAgIGNvbnN0IENvbmZpZ3VyYXRpb24gbV9j
b25maWd1cmF0aW9uOwogICAgIENvbmZpZ3VyYXRpb24gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIuY3BwCmluZGV4IDEyMTNkM2E4NzNiLi45ZGM1NzcwNTdkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAg
LTU0LDcgKzU0LDcgQEAgV2ViQ29va2llTWFuYWdlcjo6V2ViQ29va2llTWFuYWdlcihDaGlsZFBy
b2Nlc3MqIHByb2Nlc3MpCiAgICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYkNvb2tpZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOwogfQog
Ci12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFNlc3Npb25J
RCBzZXNzaW9uSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdl
cjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgSGFzaFNldDxTdHJpbmc+IGhvc3RuYW1lczsKICAg
ICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3Jh
Z2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC02NiwyMCArNjYsMjAgQEAgdm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxs
YmFja0lEIGMKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6RGlkR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoaG9zdG5hbWVMaXN0LCBjYWxsYmFja0lE
KSwgMCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3Ru
YW1lKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCit2b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3Jh
Z2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpKQogICAgICAgICBXZWJDb3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKCpzdG9yYWdl
U2Vzc2lvbiwgeyBob3N0bmFtZSB9KTsKIH0KIAogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRl
bGV0ZUFsbENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdl
cjo6ZGVsZXRlQWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYg
KGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vz
c2lvbihzZXNzaW9uSUQpKQogICAgICAgICBXZWJDb3JlOjpkZWxldGVBbGxDb29raWVzKCpzdG9y
YWdlU2Vzc2lvbik7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llKFNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZSYgY29va2llLCBDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZSYgY29va2llLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiB7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+ZGVs
ZXRlQ29va2llKGNvb2tpZSk7CkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6ZGVsZXRlQ29va2llKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZSYgY29va2ll
LCBDCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6
OkRpZERlbGV0ZUNvb2tpZXMoY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFNlc3Npb25JRCBzZXNzaW9uSUQs
IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdGltZSwgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzTW9kaWZp
ZWRTaW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgdGltZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGlmIChh
dXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Np
b24oc2Vzc2lvbklEKSkKICAgICAgICAgV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVk
U2luY2UoKnN0b3JhZ2VTZXNzaW9uLCB0aW1lKTsKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBXZWJD
b29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShTZXNzaW9uSUQgc2Vz
c2lvbklELCBzdGQ6OmMKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1h
bmFnZXJQcm94eTo6RGlkRGVsZXRlQ29va2llcyhjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQg
V2ViQ29va2llTWFuYWdlcjo6Z2V0QWxsQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldEFsbENvb2tpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAg
VmVjdG9yPENvb2tpZT4gY29va2llczsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC0xMDQs
NyArMTA0LDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRBbGxDb29raWVzKFNlc3Npb25J
RCBzZXNzaW9uSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkR2V0Q29va2llcyhjb29raWVzLCBj
YWxsYmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0Q29va2llcyhT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lE
KQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgVVJMJiB1cmwsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBWZWN0
b3I8Q29va2llPiBjb29raWVzOwogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAgLTExMyw3ICsx
MTMsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldENvb2tpZXMoU2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgVVJMJiB1cmwsIENhbGxiYWNrSQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRHZXRDb29raWVzKGNvb2tpZXMsIGNhbGxi
YWNrSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRDb29raWUoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIENhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5z
ZXRDb29raWUoY29va2llKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFn
ZXI6OnNldENvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUm
IGNvbwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5
OjpEaWRTZXRDb29raWVzKGNhbGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5h
Z2VyOjpzZXRDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3Rv
cjxDb29raWU+JiBjb29raWVzLCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBtYWluRG9jdW1l
bnRVUkwsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0
Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxDb29raWU+JiBj
b29raWVzLCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwsIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHN0
b3JhZ2VTZXNzaW9uLT5zZXRDb29raWVzKGNvb2tpZXMsIHVybCwgbWFpbkRvY3VtZW50VVJMKTsK
QEAgLTEyOSwxMyArMTI5LDEzIEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llcyhX
ZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29vCiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZFNldENvb2tpZXMo
Y2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6Om5vdGlmeUNvb2tp
ZXNEaWRDaGFuZ2UoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6
bm90aWZ5Q29va2llc0RpZENoYW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Q29va2llc0RpZENoYW5nZShzZXNzaW9uSUQpLCAwKTsK
IH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
U2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RhcnRPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoYXV0
byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9u
KHNlc3Npb25JRCkpIHsKICAgICAgICAgV2ViQ29yZTo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKCpzdG9yYWdlU2Vzc2lvbiwgW3RoaXMsIHNlc3Npb25JRF0gewpAQCAtMTQ0LDcgKzE0NCw3
IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFNl
c3Npb25JRCBzZXNzaW9uSUQpCiAgICAgfQogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnN0
b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNv
b2tpZU1hbmFnZXI6OnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIFdlYkNvcmU6OnN0
b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCpzdG9yYWdlU2Vzc2lvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKaW5kZXggODQ0
ZjdhM2I0NmQuLjY4NzQxYWQwZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiT3B0aW9uYWxDYWxsYmFj
a0lELmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPGNocm9ubz4KKyNpbmNsdWRlIDxwYWwvaWRlbnRp
Zmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjQsMzAgKzY0LDMwIEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFN0cmlu
ZyYgc3RvcmFnZVBhdGgsIHVpbnQzMl90IHN0b3JhZ2VUeXBlKTsKICNlbmRpZgogCi0gICAgdm9p
ZCBub3RpZnlDb29raWVzRGlkQ2hhbmdlKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBu
b3RpZnlDb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEKTsKIAogcHJpdmF0ZToKICAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwgQ2FsbGJhY2tJRCk7CisgICAgdm9p
ZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ2FsbGJhY2tJRCk7CiAK
LSAgICB2b2lkIGRlbGV0ZUNvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OkNvb2tpZSYsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
KFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBkZWxldGVBbGxD
b29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBkZWxldGVBbGxDb29raWVzTW9k
aWZpZWRTaW5jZShXZWJDb3JlOjpTZXNzaW9uSUQsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6
OnRpbWVfcG9pbnQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZGVsZXRlQ29va2llKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBkZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRlbGV0
ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50LCBDYWxsYmFja0lEKTsKIAotICAgIHZvaWQgc2V0Q29va2ll
KFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q29va2llJiwgQ2FsbGJhY2tJRCk7
Ci0gICAgdm9pZCBzZXRDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwm
IG1haW5Eb2N1bWVudFVSTCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRBbGxDb29raWVzKFdl
YkNvcmU6OlNlc3Npb25JRCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRDb29raWVzKFdlYkNv
cmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9p
ZCBzZXRDb29raWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIENhbGxi
YWNrSUQpOworICAgIHZvaWQgc2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OkNvb2tpZT4mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpV
UkwmIG1haW5Eb2N1bWVudFVSTCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRBbGxDb29raWVz
KFBBTDo6U2Vzc2lvbklELCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldENvb2tpZXMoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIENhbGxiYWNrSUQpOwogCiAgICAgdm9pZCBw
bGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7
CiAgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KENhbGxiYWNrSUQpOwogICAgIEhU
VFBDb29raWVBY2NlcHRQb2xpY3kgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7
CiAKLSAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9u
SUQpOwotICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6U2Vzc2lv
bklEKTsKKyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25J
RCk7CisgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7
CiAKICAgICBDaGlsZFByb2Nlc3MqIG1fcHJvY2VzczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdl
cy5pbgppbmRleCA1ZmVlZmE3MTJjOC4uNDNmNmE3YjI3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNz
YWdlcy5pbgpAQCAtMjQsMjIgKzI0LDIyIEBACiAgKi8KICAKICBtZXNzYWdlcyAtPiBXZWJDb29r
aWVNYW5hZ2VyIHsKLSAgICB2b2lkIEdldEhvc3RuYW1lc1dpdGhDb29raWVzKFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHZv
aWQgRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFN0cmluZyBob3N0bmFtZSkKLSAgICB2b2lkIERlbGV0ZUFsbENvb2tpZXMoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKKyAgICB2b2lkIEdldEhvc3RuYW1lc1dpdGhDb29raWVzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAg
dm9pZCBEZWxldGVDb29raWVzRm9ySG9zdG5hbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcgaG9zdG5hbWUpCisgICAgdm9pZCBEZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIAotICAgIHZvaWQgU2V0Q29va2llKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDb29raWUgY29va2llLCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKLSAgICB2b2lkIFNldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcywgV2ViQ29yZTo6VVJMIHVybCwg
V2ViQ29yZTo6VVJMIG1haW5Eb2N1bWVudFVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCi0gICAgdm9pZCBHZXRBbGxDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHZvaWQgR2V0Q29va2llcyhXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgdXJsLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKLSAgICB2b2lkIERlbGV0ZUNvb2tpZShXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViQ29yZTo6Q29va2llIGNvb2tpZSwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCi0gICAgdm9pZCBEZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5j
ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2Nr
Ojp0aW1lX3BvaW50IHRpbWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZv
aWQgU2V0Q29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNv
b2tpZSBjb29raWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgU2V0
Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+
IGNvb2tpZXMsIFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBtYWluRG9jdW1lbnRVUkws
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgR2V0QWxsQ29va2llcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQor
ICAgIHZvaWQgR2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVS
TCB1cmwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgRGVsZXRlQ29v
a2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNvb2tpZSBjb29r
aWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgRGVsZXRlQWxsQ29v
a2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6
c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IHRpbWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogCiAgICAgdm9pZCBTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHVpbnQzMl90IHBvbGlj
eSwgV2ViS2l0OjpPcHRpb25hbENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICB2b2lkIEdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAg
Ci0gICAgdm9pZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKLSAgICB2b2lkIFN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgdm9pZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogCiAjaWYgVVNFKFNPVVApCiAgICAg
U2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2UoU3RyaW5nIHN0b3JhZ2VQYXRoLCB1aW50MzJfdCBz
dG9yYWdlVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwCmluZGV4IDRkNzZmYmI0M2UwLi5jMTgzYzU0OTVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC01NSwxMiArNTUsMTIgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyPiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShTZXNzaW9u
SUQgc2Vzc2lvbklEKQorUmVmPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihzZXNzaW9uSUQpKTsK
IH0KIAotV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIo
U2Vzc2lvbklEIHNlc3Npb25JRCkKK1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fc2Vzc2lv
bklEKHNlc3Npb25JRCkKIHsKICAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggYzc5ZTA0MWQ0ZjEu
LjI5NzU1OTU2MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNs
dWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JREJDb25uZWN0aW9u
VG9TZXJ2ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBh
bC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzgs
NyArMzgsNyBAQCBjbGFzcyBXZWJJREJSZXN1bHQ7CiAKIGNsYXNzIFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25U
b1NlcnZlckRlbGVnYXRlLCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgUmVmQ291
bnRlZDxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gY3JlYXRlKFdlYkNvcmU6OlNlc3Npb25JRCk7Cisg
ICAgc3RhdGljIFJlZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Np
b25JRCk7CiAKICAgICB2aXJ0dWFsIH5XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKTsKIApAQCAt
MTA5LDE0ICsxMDksMTQgQEAgcHVibGljOgogICAgIHZvaWQgY29ubmVjdGlvblRvU2VydmVyTG9z
dCgpOwogCiBwcml2YXRlOgotICAgIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihXZWJDb3JlOjpT
ZXNzaW9uSUQpOworICAgIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCk7
CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWw7
CiAKICAgICB1aW50NjRfdCBtX2lkZW50aWZpZXIgeyAwIH07CiAgICAgYm9vbCBtX2lzT3Blbklu
U2VydmVyIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI+IG1fY29ubmVjdGlvblRvU2VydmVyOwotICAgIFdlYkNvcmU6OlNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggMmI4N2JhZjk0
ZTcuLmViMTUxZWRkMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0
YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTI4LDcgKzI4LDcgQEAK
IAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJUb1N0b3JhZ2VQcm9jZXNz
Q29ubmVjdGlvbi5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNjksNyArNjksNyBAQCBXZWJEYXRh
YmFzZVByb3ZpZGVyOjp+V2ViRGF0YWJhc2VQcm92aWRlcigpCiAKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKIAotV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXIm
IFdlYkRhdGFiYXNlUHJvdmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29u
c3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCitXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRv
U2VydmVyRm9yU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQogewogICAg
IGlmIChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgewogICAgICAgICBhdXRvIHJlc3VsdCA9IG1f
aWRiRXBoZW1lcmFsQ29ubmVjdGlvbk1hcC5hZGQoc2Vzc2lvbklELnNlc3Npb25JRCgpLCBudWxs
cHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2Vi
RGF0YWJhc2VQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmgKaW5kZXggYjcyYjIzNGZmMWYuLmY5ZGFhZjExYWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJv
dmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFi
YXNlUHJvdmlkZXIuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2Vi
RGF0YWJhc2VQcm92aWRlcigpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAg
V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25U
b1NlcnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJikgZmluYWw7CisgICAg
V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25U
b1NlcnZlckZvclNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBmaW5hbDsKICNlbmRpZgog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggOWE4YTYwYzE1MDkuLjRlYjAxNTll
MWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTcxLDExICs3MSwxMSBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VXNlclNjcmlwdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKQogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCIKQEAgLTMxOSw5ICszMTks
OSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFdlYlBh
Z2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvbwogewogICAgIGlmIChlbmFibGVkKSB7CiAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nl
c3Npb25Jbk5ldHdvcmtQcm9jZXNzKCk7Ci0gICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKCkpOworICAgICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCkpOwogICAgIH0gZWxzZQotICAgICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Np
b24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgICAgICBTZXNzaW9u
VHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSk7CiAKICAgICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6
OnBhZ2VHcm91cChwYWdlR3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChI
YXNoU2V0PFBhZ2UqPjo6aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFn
ZXMuZW5kKCk7ICsraXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGEyMzkzMDI3
YWQxLi5kZDc4NjBiNTI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC00MSw4ICs0
MSw4IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0NhY2hlZFJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXModWludDY0X3Qg
cmVxdWVzdElkZQogfQogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLXZvaWQgTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlLCBT
ZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENh
Y2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFi
bGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsK
ICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCku
cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAgICAgaWYgKCFyZXNvdXJj
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggZmIzMDE1NmU4NDUuLjU2YWNhOGJmNGMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMzUsMTEgKzM1LDE0IEBAIG5hbWVzcGFjZSBJUEMg
ewogY2xhc3MgRGF0YVJlZmVyZW5jZTsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNz
aW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBj
bGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgU2Vz
c2lvbklEOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTczLDcgKzc2LDcgQEAgcHJpdmF0
ZToKIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgLy8gTWVzc2FnZSBoYW5k
bGVycy4KLSAgICB2b2lkIGRpZENhY2hlUmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYsIFdlYkNvcmU6OlNlc3Np
b25JRCk7CisgICAgdm9pZCBkaWRDYWNoZVJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmLCBQQUw6OlNlc3Npb25J
RCk7CiAjZW5kaWYKIAogICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBwcm9jZXNz
IHRvIHRoZSBuZXR3b3JrIHByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KaW5kZXggYTRmYzQyNmQ4MDQuLjIzYTJlY2EwMTlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxF
KFNIQVJFQUJMRV9SRVNPVVJDRSkKLSAgICBEaWRDYWNoZVJlc291cmNlKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUgcmVz
b3VyY2UsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgRGlkQ2FjaGVSZXNvdXJj
ZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNv
dXJjZTo6SGFuZGxlIHJlc291cmNlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjZW5kaWYK
IAogICAgIERpZFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVu
dGlmaWVyLCBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggOWQ5Nzc1
YjA0OGYuLjRhNzVjZmM3NzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC01OSw5ICs1OSw5IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWZlcnJlclBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TdWJyZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPHBhbC9pZGVu
dGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lm
IFVTRShRVUlDS19MT09LKQpAQCAtMjIyLDcgKzIyMiw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRl
Z3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJl
c291CiAgICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IGlkZW50aWZpZXI7CiAgICAgbG9h
ZFBhcmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogMDsK
ICAgICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJh
bWVJRCgpIDogMDsKLSAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2Vi
UGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBs
b2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkg
OiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJz
LnJlcXVlc3QgPSByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMu
Y29udGVudFNuaWZmaW5nUG9saWN5ID0gY29udGVudFNuaWZmaW5nUG9saWN5OwogICAgIGxvYWRQ
YXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMgPSBhbGxvd1N0b3JlZENyZWRlbnRpYWxz
OwpAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIHVuCiAgICAgbG9hZFBh
cmFtZXRlcnMuaWRlbnRpZmllciA9IHJlc291cmNlTG9hZElkZW50aWZpZXI7CiAgICAgbG9hZFBh
cmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogMDsKICAg
ICBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJ
RCgpIDogMDsKLSAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFn
ZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKKyAgICBsb2Fk
UGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJl
cXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGlj
eSA9IFNuaWZmQ29udGVudDsKICAgICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRp
YWxzID0gc3RvcmVkQ3JlZGVudGlhbHM7CkBAIC00MDEsNyArNDAxLDcgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2lu
Z0NvbnRleHQsIFIKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1l
dGVyczsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFy
YW1ldGVycy5zb3VyY2VPcmlnaW4gPSBXVEZNb3ZlKHNvdXJjZU9yaWdpbik7Ci0gICAgbG9hZFBh
cmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxz
ID0gb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0
ID8gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogQWxsb3dTdG9yZWRDcmVkZW50aWFsczsK
ICAgICBsb2FkUGFyYW1ldGVycy5tb2RlID0gb3B0aW9ucy5tb2RlOwogICAgIGxvYWRQYXJhbWV0
ZXJzLnNob3VsZEZvbGxvd1JlZGlyZWN0cyA9IG9wdGlvbnMucmVkaXJlY3QgPT0gRmV0Y2hPcHRp
b25zOjpSZWRpcmVjdDo6Rm9sbG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuY3BwCmluZGV4IGUzMzNmNjRhMWJkLi45ODc2
MDkyNzRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldFByb3ZpZGVyLmNwcApAQCAtMzcsNyArMzcsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxTb2NrZXRTdHJlYW1IYW5kbGU+
IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiB1
cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pCitSZWY8U29ja2V0U3RyZWFtSGFu
ZGxlPiBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVS
TCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pCiB7CiAgICAgcmV0
dXJuIFdlYlNvY2tldFN0cmVhbTo6Y3JlYXRlKHVybCwgY2xpZW50LCBzZXNzaW9uSUQsIGNyZWRl
bnRpYWxQYXJ0aXRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmgKaW5kZXggYTRhMTgyYzJkZmQuLjAyNDRlNWYyYzg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQ
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dFByb3ZpZGVyLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBX
ZWJTb2NrZXRQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTb2NrZXRQcm92aWRlciB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJTb2NrZXRQcm92aWRlcj4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTb2NrZXRQcm92aWRlcik7IH0KLSAgICBSZWY8V2ViQ29y
ZTo6U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgV2Vi
Q29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgV2ViQ29yZTo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pIGZpbmFsOworICAg
IFJlZjxXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGU+IGNyZWF0ZVNvY2tldFN0cmVhbUhhbmRs
ZShjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQm
LCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKSBmaW5h
bDsKICAgICB2aXJ0dWFsIH5XZWJTb2NrZXRQcm92aWRlcigpIHsgfQogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5jcHAKaW5k
ZXggOGYyNDM1YWYxZGUuLmM5ZjU3OWNjOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5jcHAKQEAgLTMyLDkgKzMyLDkgQEAK
ICNpbmNsdWRlICJOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvY2tldFN0cmVhbUVycm9y
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaD4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02NSwxMiArNjUsMTIgQEAg
dm9pZCBXZWJTb2NrZXRTdHJlYW06Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgpCiAgICAgZ2xvYmFs
V2ViU29ja2V0U3RyZWFtTWFwKCkuY2xlYXIoKTsKIH0KIAotUmVmPFdlYlNvY2tldFN0cmVhbT4g
V2ViU29ja2V0U3RyZWFtOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRs
ZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWxQYXJ0aXRpb24pCitSZWY8V2ViU29ja2V0U3RyZWFtPiBXZWJTb2NrZXRTdHJlYW06OmNy
ZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9u
KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldFN0cmVhbSh1cmwsIGNsaWVu
dCwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uKSk7CiB9CiAKLVdlYlNvY2tldFN0cmVh
bTo6V2ViU29ja2V0U3RyZWFtKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBXZWJDb3JlOjpTb2Nr
ZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbikKK1dlYlNvY2tldFN0cmVhbTo6V2ViU29j
a2V0U3RyZWFtKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1I
YW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGNhY2hlUGFydGl0aW9uKQogICAgIDogU29ja2V0U3RyZWFtSGFuZGxlKHVybCwgY2xpZW50
KQogICAgICwgbV9pZGVudGlmaWVyKG5leHRBdmFpbGFibGVJZGVudGlmaWVyKyspCiAgICAgLCBt
X2NsaWVudChjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJTb2NrZXRTdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldFN0cmVhbS5oCmluZGV4IGVkYTc1NzhiMGQ0Li5lOTY4NGFkNGIwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmgK
QEAgLTI3LDggKzI3LDggQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU29ja2V0U3RyZWFtSGFuZGxlLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50
aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlvbjsK
QEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlNvY2tldFN0
cmVhbSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciwgcHVibGljIFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxXZWJTb2NrZXRTdHJlYW0+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpVUkwmLCBX
ZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBXZWJDb3JlOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbik7CisgICAgc3RhdGljIFJlZjxXZWJTb2Nr
ZXRTdHJlYW0+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFs
UGFydGl0aW9uKTsKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKICAg
ICBzdGF0aWMgV2ViU29ja2V0U3RyZWFtKiBzdHJlYW1XaXRoSWRlbnRpZmllcih1aW50NjRfdCk7
CiAgICAgCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpDb25uZWN0aW9uKiBt
ZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFsOwogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCkgZmluYWw7CiAKLSAgICBXZWJTb2NrZXRTdHJlYW0oY29uc3QgV2Vi
Q29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgV2ViQ29yZTo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24pOworICAgIFdlYlNv
Y2tldFN0cmVhbShjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0
aW9uKTsKICAgICB+V2ViU29ja2V0U3RyZWFtKCk7CiAKICAgICBzaXplX3QgbV9idWZmZXJlZEFt
b3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA2YjI3
ZDc4MWQyZC4uYWJlYTgxZDIzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIEkKIH0KIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotV2ViSURCQ29ubmVjdGlvblRvU2VydmVyJiBXZWJUb1N0
b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihj
b25zdCBTZXNzaW9uSUQmIHNlc3Npb25JRCkKK1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2Vi
VG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Np
b24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkKIHsKICAgICBhdXRvIHJlc3VsdCA9
IG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb24uYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CiAg
ICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24u
aAppbmRleCAyNDI2ZTZjYWZiMi4uYjAzM2I0ZjBlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nv
bm5lY3Rpb24uaApAQCAtMjksMTAgKzI5LDEwIEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9p
ZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLW5h
bWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBQQUwgewogY2xhc3MgU2Vzc2lvbklEOwogfQog
CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQotICAgIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgaWRiQ29ubmVjdGlvblRv
U2VydmVyRm9yU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKKyAgICBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3Qg
UEFMOjpTZXNzaW9uSUQmKTsKICNlbmRpZgogCiBwcml2YXRlOgpAQCAtNjcsNyArNjcsNyBAQCBw
cml2YXRlOgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBS
ZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPj4gbV93ZWJJREJDb25uZWN0aW9uc0J5U2Vz
c2lvbjsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBSZWZQdHI8V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyPj4gbV93ZWJJREJDb25uZWN0aW9uc0J5U2Vzc2lvbjsKICAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPj4gbV93ZWJJREJDb25uZWN0
aW9uc0J5SWRlbnRpZmllcjsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCmluZGV4IDU4NTI5ZGI2MzcxLi45MWVjYTk2NzliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC0xNDQxLDcgKzE0NDEsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdAogICAgIHJldHVybiAhbV9mcmFtZUhhc0N1c3RvbUNv
bnRlbnRQcm92aWRlcjsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1h
aW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyICpkb2N1bWVudExvYWRlciwg
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciAqZG9jdW1l
bnRMb2FkZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBtX2Zy
YW1lLT5jb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoZG9jdW1lbnRMb2FkZXIsIHNl
c3Npb25JRCwgcmVxdWVzdCwgcmVzcG9uc2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCA2NjAwYjlmYzNhNy4uMWE5ZGNlMGEwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
Q2xpZW50Lmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBQQUwgewogY2xhc3Mg
U2Vzc2lvbklEOwogfQogCkBAIC0xOTYsNyArMTk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
c3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgZmluYWw7CiAKICAgICBib29sIGNhbkNhY2hl
UGFnZSgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rv
d25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJikgZmluYWw7CisgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFs
OwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXZWJDb3Jl
OjpVUkwmLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVu
dCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFy
Z2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCmluZGV4IDgyMTQwODI4MmJkLi5hZTY0MDgzM2YxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTU5LDEwICs1OSwxMCBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9ncmVzc1Ry
YWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFnZU5hbWVzcGFjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VSTC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHd0Zi9BdG9taWNzLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMzUsNyArMTM1LDcgQEAg
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoY29uc3QgTmV0d29ya1N0b3JhZ2UKICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoc2Vzc2lvbi5zZXNzaW9uSUQoKSwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVy
bCkKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBVUkwmIHVybCkKIHsKICAgICBTdHJpbmcgcmVzdWx0OwogICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShzZXNzaW9uSUQsIGZpcnN0UGFydHksIHVybCksIE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWU6
OlJlcGx5KHJlc3VsdCksIDApKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDYy
OGQ4NzBkMzYwLi5lMTZiZWE0ODI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApA
QCAtNTEsNyArNTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
ICAgICBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJM
Jikgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNv
bnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7Ci0gICAgU3RyaW5nIGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKKyAg
ICBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRlbGV0
ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJD
b3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNw
cAppbmRleCAwZmY1ZmMyYzc1MC4uNTUxNDg4MDIyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuY3Bw
CkBAIC01Myw3ICs1Myw3IEBAIGJvb2wgV2ViUGx1Z0luQ2xpZW50OjpzaG91bGRBdXRvU3RhcnRG
cm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QKICAgICByZXR1cm4gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9yaWdpbihtX3dl
YlBhZ2UsIHBhZ2VPcmlnaW4sIHBsdWdpbk9yaWdpbiwgbWltZVR5cGUpOwogfQogCi12b2lkIFdl
YlBsdWdJbkNsaWVudDo6ZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdp
biwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlBsdWdJbkNsaWVudDo6ZGlkU3Rh
cnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVn
aW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wbHVnSW5EaWRTdGFydEZyb21Pcmln
aW4ocGFnZU9yaWdpbiwgcGx1Z2luT3JpZ2luLCBtaW1lVHlwZSwgc2Vzc2lvbklEKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVn
SW5DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bHVnSW5DbGllbnQuaAppbmRleCA5M2Y5Njk4YTlmYS4uNjc3OGIzNjg5YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0lu
Q2xpZW50LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2ViUGx1Z0luQ2xpZW50X2gKIAog
I2luY2x1ZGUgPFdlYkNvcmUvUGx1Z0luQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNz
aW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2
b2lkIHBhZ2VEZXN0cm95ZWQoKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZEF1dG9TdGFydEZy
b21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9y
aWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTdGFy
dEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdp
bk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklEKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmln
aW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQ
QUw6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdlJiBtX3dlYlBhZ2U7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBiM2Q5YmM5
NzRiYy4uZTQ2MjljYjQzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNs
dWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIEZJWE1FOiByZW1vdmUg
cGxhdGZvcm0tc3BlY2lmaWMgY29kZSBhbmQgdXNlIFNlc3Npb25UcmFja2VyCi0gICAgc3RhdGlj
IHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwor
ICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9u
SUQpOwogICAgIHN0YXRpYyB2b2lkIGVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYpOwogCiAgICAgc3RhdGljIHZvaWQgc2V0Q29va2llQWNj
ZXB0UG9saWN5Rm9yQWxsQ29udGV4dHMoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggZGQ3ZDViZjVkN2Yu
LjI2Mzk5MjM1ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tCkBAIC00Nyw3ICs0Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKICAgICAKLXZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3Bw
CmluZGV4IDgyOGQyNjgyZDE4Li43YWQ3OTcwMDMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTMzLDE1ICszMywxNSBAQAogI2luY2x1
ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NvdXBOZXR3b3JrU2Vzc2lvbi5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Np
b25JRC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLXZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChzZXNzaW9u
SUQuaXNFcGhlbWVyYWwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgKaW5kZXggODNmNjU5YjIyZDguLmE2NmU4NDc2NTQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIv
U2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Myw3ICs0Myw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dChmcmFtZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgdm9pZCBl
bnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lvbihXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYm
KTsKIAogICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KiB3ZWJGcmFtZUxvYWRlckNsaWVudCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmlu
ZGV4IGJiZThhNTIzNjBjLi4yMmFiYzIwODg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMjY0LDExICsyNjQsMTEgQEAgdm9pZCBXZWJG
cmFtZTo6c3RhcnREb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmkKICAgICBtX3BvbGljeURvd25sb2FkSUQgPSB7IH07CiAKICAgICBhdXRv
JiB3ZWJQcm9jZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7Ci0gICAgU2Vzc2lvbklEIHNl
c3Npb25JRCA9IHBhZ2UoKSA/IHBhZ2UoKS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKTsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBwYWdlKCkgPyBw
YWdlKCktPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsK
ICAgICB3ZWJQcm9jZXNzLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTdGFydERvd25sb2FkKHNlc3Np
b25JRCwgcG9saWN5RG93bmxvYWRJRCwgcmVxdWVzdCwgc3VnZ2VzdGVkTmFtZSksIDApOwogfQog
Ci12b2lkIFdlYkZyYW1lOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1l
bnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQor
dm9pZCBXZWJGcmFtZTo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50
TG9hZGVyKiBkb2N1bWVudExvYWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQogewogICAgIEFTU0VSVChtX3BvbGljeURvd25sb2FkSUQuZG93bmxvYWRJRCgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggZjJiMDYyZmZi
NzEuLmRmZTk1YzYxNThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmgKQEAgLTQyLDEzICs0MiwxNiBAQCBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEFycmF5
OwogfQogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBI
VE1MRnJhbWVPd25lckVsZW1lbnQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7Ci1j
bGFzcyBTZXNzaW9uSUQ7CiBjbGFzcyBVUkw7CiB9CiAKQEAgLTg0LDcgKzg3LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGxpc3RlbmVySUQs
IFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBEb3dubG9hZElE
KTsKIAogICAgIHZvaWQgc3RhcnREb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwotICAgIHZvaWQgY29udmVy
dE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgV2Vi
Q29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNl
TG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBQQUw6OlNlc3Npb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpOwogCiAgICAgU3RyaW5nIHNvdXJjZSgpIGNvbnN0OwogICAgIFN0cmluZyBjb250
ZW50c0FzU3RyaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDMyMzk3NmQyZGEwLi45NmNkZjQ4NzA4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3Nyw3ICsxNzcsNiBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhZG93Um9vdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CkBAIC0xOTMsNiArMTkyLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkdMU3RhdGVUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9tYXJrdXAuaD4K
ICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlm
aWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pT
VmFsdWUuaD4KQEAgLTI3MTQsNyArMjcxNCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0TGF5ZXJIb3N0
aW5nTW9kZShMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUpCiAgICAgICAgIHBsdWdp
blZpZXctPnNldExheWVySG9zdGluZ01vZGUobV9sYXllckhvc3RpbmdNb2RlKTsKIH0KIAotdm9p
ZCBXZWJQYWdlOjpzZXRTZXNzaW9uSUQoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUGFn
ZTo6c2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCkpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKQEAgLTMwNDksOSArMzA0OSw5
IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKHN0YXRpY19jYXN0
PFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZz4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0tleSgpKSkpOwogICAgIHNldHRpbmdzLnNl
dEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6YXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWRLZXkoKSkpOwogICAgIGlm
IChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93
c2luZ0VuYWJsZWRLZXkoKSkgJiYgIXVzZXNFcGhlbWVyYWxTZXNzaW9uKCkpCi0gICAgICAgIHNl
dFNlc3Npb25JRChTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7Ci0gICAgZWxz
ZSBpZiAoIXN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZEtleSgpKSAmJiBzZXNzaW9uSUQoKSA9PSBTZXNzaW9uSUQ6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQoKSkKLSAgICAgICAgc2V0U2Vzc2lvbklEKFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKTsKKyAgICAgICAgc2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgIGVsc2UgaWYgKCFzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSkg
JiYgc2Vzc2lvbklEKCkgPT0gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQo
KSkKKyAgICAgICAgc2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpOwogICAgIHNldHRpbmdzLnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpkZXZlbG9wZXJFeHRyYXNFbmFibGVkS2V5
KCkpKTsKICAgICBzZXR0aW5ncy5zZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzKFJ1bnRpbWVGbGFn
cyhzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YVNjcmlw
dFJ1bnRpbWVGbGFnc0tleSgpKSkpOwogICAgIHNldHRpbmdzLnNldFRleHRBcmVhc0FyZVJlc2l6
YWJsZShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnRleHRBcmVh
c0FyZVJlc2l6YWJsZUtleSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggNmJjMzcxZTIwZmMuLjRhNmJkOWU3ZTlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMzAsMTAgKzIzMCwxMCBAQCBwdWJs
aWM6CiAKICAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZS5nZXQoKTsgfQogICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlE
OyB9Ci0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZS0+c2Vzc2lvbklEKCk7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2UtPnNlc3Npb25JRCgpOyB9CiAgICAgYm9vbCB1c2VzRXBoZW1lcmFs
U2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKTsg
fQogCi0gICAgdm9pZCBzZXRTZXNzaW9uSUQoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lk
IHNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHNldFNpemUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUoKSBj
b25zdCB7IHJldHVybiBtX3ZpZXdTaXplOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggODcwZjNjZGU4NTMuLjU0ZDMxYzUzNDUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgV2ViUHJvY2Vzczo6
V2ViUHJvY2VzcygpCiAgICAgYWRkU3VwcGxlbWVudDxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcj4o
KTsKICNlbmRpZgogCi0gICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuYWRkKFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+KCkpOwor
ICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+KCkpOwogCiAgICAgUmVz
b3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldE5vdGlmaWNhdGlvbkNhbGxiYWNrKFt0aGlz
XSAoVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYgc3RhdGlzdGljcykgewogICAgICAg
ICBBU1NFUlQoIXN0YXRpc3RpY3MuaXNFbXB0eSgpKTsKQEAgLTUwMyw3ICs1MDMsNyBAQCB2b2lk
IFdlYlByb2Nlc3M6OmZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJv
YXJkQWNjZXNzRW5hYmxlZCkKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgPSBmdWxs
S2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
CiAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihzZXNzaW9uSUQpOwogfQpAQCAtNTEzLDcgKzUxMyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6
YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9y
ZVNlc3Npb24oV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGVz
dHJveVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGVzdHJv
eVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFNlc3Npb25UcmFja2Vy
OjpkZXN0cm95U2Vzc2lvbihzZXNzaW9uSUQpOwogfQpAQCAtODAwLDkgKzgwMCw5IEBAIHN0YXRp
YyB1bnNpZ25lZCBoYXNoRm9yUGx1Z0luT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBwbHVnCiAgICAgcmV0dXJuIGhhc2hlci5oYXNoKCk7CiB9CiAKLWJvb2wg
V2ViUHJvY2Vzczo6aXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9y
aWdpbkhhc2gsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitib29sIFdlYlByb2Nlc3M6OmlzUGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhhc2hN
YXA8dW5zaWduZWQsIGRvdWJsZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBt
X3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7CisgICAgSGFzaE1h
cDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj46OmNvbnN0X2l0ZXJh
dG9yIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQo
c2Vzc2lvbklEKTsKICAgICBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Ojpjb25zdF9pdGVyYXRv
ciBpdDsKICAgICBib29sIGNvbnRhaW5zID0gZmFsc2U7CiAKQEAgLTgxMSw3ICs4MTEsNyBAQCBi
b29sIFdlYlByb2Nlc3M6OmlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVn
SW5PcmlnaW5IYXNoLCBTZXNzaW9uSQogICAgICAgICBjb250YWlucyA9IGl0ICE9IHNlc3Npb25J
dGVyYXRvci0+dmFsdWUuZW5kKCk7CiAgICAgfQogICAgIGlmICghY29udGFpbnMpIHsKLSAgICAg
ICAgc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZmluZChT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAgICAgIHNlc3Npb25JdGVyYXRvciA9
IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSk7CiAgICAgICAgIGl0ID0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5maW5k
KHBsdWdJbk9yaWdpbkhhc2gpOwogICAgICAgICBpZiAoaXQgPT0gc2Vzc2lvbkl0ZXJhdG9yLT52
YWx1ZS5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgzNiw3ICs4MzYsNyBA
QCBib29sIFdlYlByb2Nlc3M6OnNob3VsZFBsdWdJbkF1dG9TdGFydEZyb21PcmlnaW4oV2ViUGFn
ZSYgd2ViUGFnZSwgY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBpc1BsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2goaGFzaEZvclBsdWdJbk9yaWdpbihwYWdlT3JpZ2luLCBwbHVnaW5PcmlnaW4sIG1p
bWVUeXBlKSwgd2ViUGFnZS5zZXNzaW9uSUQoKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cGx1
Z0luRGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFNlc3Npb25JRCBzZXNz
aW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBT
dHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKHBhZ2VP
cmlnaW4uaXNFbXB0eSgpKSB7CiAgICAgICAgIExPRyhQbHVnaW5zLCAiTm90IGFkZGluZyBlbXB0
eSBwYWdlIG9yaWdpbiIpOwpAQCAtODU4LDcgKzg1OCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGx1
Z0luRGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3Ry
aW5nCiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Bvb2w6OkFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2gocGFnZU9yaWdpbiwgcGx1Z0lu
T3JpZ2luSGFzaCwgc2Vzc2lvbklEKSwgMCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGlkQWRk
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBkb3Vi
bGUgZXhwaXJhdGlvblRpbWUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6
OmRpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFz
aCwgZG91YmxlIGV4cGlyYXRpb25UaW1lLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAg
ICAgLy8gV2hlbiBjYWxsZWQsIHNvbWUgd2ViIHByb2Nlc3MgKHdoaWNoIGFsc28gbWlnaHQgYmUg
dGhpcyBvbmUpIGFkZGVkIHRoZSBvcmlnaW4gZm9yIGF1dG8tc3RhcnRpbmcsCiAgICAgLy8gb3Ig
cmVjZWl2ZWQgdXNlciBpbnRlcmFjdGlvbi4KQEAgLTg2OSwxNSArODY5LDE1IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6ZGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5P
cmlnaW5IYXNoLCBkb3ViCiB2b2lkIFdlYlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luRGVmYXVsdEhhc2hlcyhjb25zdCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+JiBoYXNoZXMp
CiB7CiAgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuY2xlYXIoKTsKLSAgICBtX3Bs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCksIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnN3YXAoY29u
c3RfY2FzdDxIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Jj4oaGFzaGVzKSk7CisgICAgbV9wbHVn
SW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuYWRkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCksIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnN3YXAo
Y29uc3RfY2FzdDxIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Jj4oaGFzaGVzKSk7CiB9CiAKLXZv
aWQgV2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoY29uc3QgSGFz
aE1hcDxTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+JiBoYXNoZXMpCit2b2lk
IFdlYlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKGNvbnN0IEhhc2hN
YXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+JiBoYXNoZXMpCiB7
Ci0gICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuc3dhcChjb25zdF9jYXN0PEhhc2hN
YXA8U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiY+KGhhc2hlcykpOworICAg
IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLnN3YXAoY29uc3RfY2FzdDxIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiY+KGhhc2hlcykpOwogfQog
Ci12b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3Qg
U3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6cGx1
Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNv
bnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKHBhZ2VPcmlnaW4uaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CkBAIC04ODYsNyArODg2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5E
aWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QK
ICAgICBpZiAoIXBsdWdJbk9yaWdpbkhhc2gpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhhc2hN
YXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Pjo6Y29uc3Rf
aXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMu
ZmluZChzZXNzaW9uSUQpOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5z
aWduZWQsIGRvdWJsZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7CiAgICAgSGFzaE1hcDx1bnNp
Z25lZCwgZG91YmxlPjo6Y29uc3RfaXRlcmF0b3IgaXQ7CiAgICAgYm9vbCBjb250YWlucyA9IGZh
bHNlOwogICAgIGlmIChzZXNzaW9uSXRlcmF0b3IgIT0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXMuZW5kKCkpIHsKQEAgLTg5NCw3ICs4OTQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsdWdJ
bkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25z
dAogICAgICAgICBjb250YWlucyA9IGl0ICE9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCk7
CiAgICAgfQogICAgIGlmICghY29udGFpbnMpIHsKLSAgICAgICAgc2Vzc2lvbkl0ZXJhdG9yID0g
bV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZmluZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSk7CisgICAgICAgIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luSGFzaGVzLmZpbmQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAg
ICAgIGl0ID0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5maW5kKHBsdWdJbk9yaWdpbkhhc2gpOwog
ICAgICAgICBpZiAoaXQgPT0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSkKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTEyMzIsNyArMTIzMiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVsZWFz
ZVBhZ2VDYWNoZSgpCiAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygw
LCBQcnVuaW5nUmVhc29uOjpNZW1vcnlQcmVzc3VyZSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6
ZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBXZWJzaXRlRGF0YSYgd2Vic2l0ZURh
dGEpCit2b2lkIFdlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBXZWJz
aXRlRGF0YSYgd2Vic2l0ZURhdGEpCiB7CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFp
bnMoV2Vic2l0ZURhdGFUeXBlOjpNZW1vcnlDYWNoZSkpIHsKICAgICAgICAgZm9yIChhdXRvJiBv
cmlnaW4gOiBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkub3JpZ2luc1dpdGhDYWNoZShzZXNzaW9u
SUQpKQpAQCAtMTI0NSw3ICsxMjQ1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVE
YXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXQKICAgICB9
CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpj
aHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlKQordm9pZCBXZWJQ
cm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0
ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
bW9kaWZpZWRTaW5jZSk7CiAKQEAgLTEyNjIsNyArMTI2Miw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwCiAgICAgfQogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhPiYgb3JpZ2luRGF0YXMpCit2b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcykKIHsKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5j
b250YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewogICAgICAgICBIYXNoU2V0
PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAppbmRleCAxMjNjNGJiMTk4Yy4uM2I1MzMwZDI0NWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIldlYklu
c3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5
U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0h5c3RlcmVzaXNBY3Rpdml0eS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgorI2lu
Y2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpA
QCAtNTYsMTMgKzU2LDE2IEBAIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgT2JqZWN0OwogfQogCitu
YW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CiBjbGFzcyBDUFVNb25pdG9yOwogY2xh
c3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwotY2xhc3MgU2Vzc2lvbklEOwogY2xhc3MgVXNlckdlc3R1cmVUb2tlbjsKIHN0cnVjdCBQ
bHVnaW5JbmZvOwogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKQEAgLTEyNiw4ICsxMjksOCBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIGJvb2wgc2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9y
aWdpbihXZWJQYWdlJiwgY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBs
dWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7Ci0gICAgdm9pZCBwbHVnSW5EaWRT
dGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBs
dWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklEKTsK
LSAgICB2b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBw
YWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIHBsdWdJbkRpZFN0YXJ0RnJvbU9y
aWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBwbHVn
SW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29u
c3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vz
c2lvbklEKTsKICAgICB2b2lkIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3kodWludDhfdCBwb2xp
Y3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpOwogICAgIHZvaWQgcmVzZXRQbHVnaW5Mb2FkQ2xp
ZW50UG9saWNpZXMoY29uc3QgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFw
PFN0cmluZywgdWludDhfdD4+PiYpOwogICAgIHZvaWQgY2xlYXJQbHVnaW5DbGllbnRQb2xpY2ll
cygpOwpAQCAtMTcwLDEwICsxNzMsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDYWNoZU1v
ZGVsKHVpbnQzMl90KTsKIAotICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihX
ZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBlbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uSW5OZXR3b3JrUHJvY2VzcygpOwogICAgIHZvaWQgYWRkV2Vic2l0ZURhdGFTdG9yZShX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmKTsKLSAgICB2b2lkIGRlc3Ryb3lTZXNzaW9uKFdl
YkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25J
RCk7CiAKICAgICB2b2lkIHBhZ2VEaWRFbnRlcldpbmRvdyh1aW50NjRfdCBwYWdlSUQpOwogICAg
IHZvaWQgcGFnZVdpbGxMZWF2ZVdpbmRvdyh1aW50NjRfdCBwYWdlSUQpOwpAQCAtMjYyLDEwICsy
NjUsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2Vk
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CiAgICAgdm9pZCBmdWxsS2V5Ym9hcmRBY2Nl
c3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpOwogCi0gICAgYm9v
bCBpc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwg
V2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIGRpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdp
bkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lLCBX
ZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIGJvb2wgaXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
KHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRp
ZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwg
ZG91YmxlIGV4cGlyYXRpb25UaW1lLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCByZXNldFBs
dWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoY29uc3QgSGFzaE1hcDx1bnNpZ25lZCwg
ZG91YmxlPiYgaGFzaGVzKTsKLSAgICB2b2lkIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aGVzKGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBk
b3VibGU+PiYgaGFzaGVzKTsKKyAgICB2b2lkIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aGVzKGNvbnN0IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJs
ZT4+JiBoYXNoZXMpOwogCiAgICAgdm9pZCBwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2Rl
bCk7CiAKQEAgLTI5Myw5ICsyOTYsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWxlYXNlUGFn
ZUNhY2hlKCk7CiAKLSAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2Vic2l0ZURhdGEmKTsKLSAgICB2b2lkIGRl
bGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5j
ZSk7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMpOworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQ
QUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdlYnNpdGVEYXRhJik7
CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9k
aWZpZWRTaW5jZSk7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpT
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucyk7CiAKICAgICB2b2lkIHNldE1lbW9yeUNh
Y2hlRGlzYWJsZWQoYm9vbCk7CiAKQEAgLTM1NSw3ICszNTgsNyBAQCBwcml2YXRlOgogI2VuZGlm
CiAgICAgUmVmUHRyPFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXI+IG1fd2ViSW5zcGVj
dG9ySW50ZXJydXB0RGlzcGF0Y2hlcjsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklE
LCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hl
czsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+
PiBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9w
bHVnSW5BdXRvU3RhcnRPcmlnaW5zOwogCiAgICAgYm9vbCBtX2hhc1NldENhY2hlTW9kZWwgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCA4MWY4ODdkMWI0ZS4uMDhmNjk3MTM3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC00NywxNCArNDcsMTQgQEAg
bWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBDbGVhckNhY2hl
ZENyZWRlbnRpYWxzKCkKIAotICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBBZGRXZWJzaXRlRGF0YVN0b3JlKHN0cnVj
dCBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzKTsKLSAgICBEZXN0cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQorICAgIERlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgICMg
UGx1Zy1pbnMuCi0gICAgRGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBo
YXNoLCBkb3VibGUgZXhwaXJhdGlvblRpbWUsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CisgICAgRGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBkb3Vi
bGUgZXhwaXJhdGlvblRpbWUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBSZXNldFBs
dWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoSGFzaE1hcDx1aW50MzJfdCxkb3VibGU+
IGhhc2hlcykKLSAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhIYXNoTWFwPFdl
YkNvcmU6OlNlc3Npb25JRCwgSGFzaE1hcDx1aW50MzJfdCxkb3VibGU+PiBoYXNoZXMpCisgICAg
UmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwg
SGFzaE1hcDx1aW50MzJfdCxkb3VibGU+PiBoYXNoZXMpCiAgICAgU2V0UGx1Z2luTG9hZENsaWVu
dFBvbGljeSh1aW50OF90IHBvbGljeSwgU3RyaW5nIGhvc3QsIFN0cmluZyBidW5kbGVJZGVudGlm
aWVyLCBTdHJpbmcgdmVyc2lvblN0cmluZykKICAgICBSZXNldFBsdWdpbkxvYWRDbGllbnRQb2xp
Y2llcyhIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50
OF90Pj4+IHBsdWdpbkxvYWRDbGllbnRQb2xpY2llcykKICAgICBDbGVhclBsdWdpbkNsaWVudFBv
bGljaWVzKCkKQEAgLTc3LDkgKzc3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAKICAgICBSZWxlYXNlUGFnZUNhY2hlKCkKIAotICAgIEZldGNoV2Vic2l0ZURh
dGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzKSAtPiAoc3RydWN0IFdlYktpdDo6V2Vic2l0ZURh
dGEgd2Vic2l0ZURhdGEpCi0gICAgRGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0
YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2lu
Y2UpIC0+ICgpCi0gICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0
ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykg
LT4gKCkKKyAgICBGZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzKSAtPiAoc3Ry
dWN0IFdlYktpdDo6V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpCisgICAgRGVsZXRlV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVf
cG9pbnQgbW9kaWZpZWRTaW5jZSkgLT4gKCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdp
bnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE+IG9yaWdpbnMpIC0+ICgpCiAKICAgICBTZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5n
SW5jcmVhc2VMaW1pdChpbnQgbWlsbGlzZWNvbmRzKQogICAgIFNldFByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQoYm9vbCBmbGFnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCAwYjY5YjQ0MTgwMy4u
ZjMxNWMxOTkyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTct
MDgtMTYgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBb
UEFMXSBNb3ZlIFNlc3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwOgor
ICAgICAgICAoV2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vz
c2lvbik6CisgICAgICAgICogU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmg6CisKIDIwMTct
MDgtMTYgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255LmNvbT4K
IAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9pb3MgYW5kIHNwaS93aW4gZGlyZWN0b3JpZXMgaW50
byBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFz
ZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVBy
b3ZpZGVyLmNwcAppbmRleCA0ZDk1OTY3MDhkNC4uZDM3MTIzY2ZlYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgIldlYkRhdGFiYXNlUHJvdmlkZXIuaCIKIAotI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lv
bklELmg+CiAKIFdlYkRhdGFiYXNlUHJvdmlkZXImIFdlYkRhdGFiYXNlUHJvdmlkZXI6OnNpbmds
ZXRvbigpCiB7CkBAIC00Myw3ICs0Myw3IEBAIFdlYkRhdGFiYXNlUHJvdmlkZXI6On5XZWJEYXRh
YmFzZVByb3ZpZGVyKCkKIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotV2ViQ29y
ZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYkRhdGFiYXNlUHJvdmlkZXI6
OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklE
JiBzZXNzaW9uSUQpCitXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYg
V2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25z
dCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQogewogICAgIGF1dG8gcmVzdWx0ID0gbV9pZGJT
ZXJ2ZXJNYXAuYWRkKHNlc3Npb25JRC5zZXNzaW9uSUQoKSwgbnVsbHB0cik7CiAgICAgaWYgKHJl
c3VsdC5pc05ld0VudHJ5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3Jh
Z2UvV2ViRGF0YWJhc2VQcm92aWRlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dl
YkRhdGFiYXNlUHJvdmlkZXIuaAppbmRleCAyYTRlYjk0NmVmNi4uM2Y1MDZkNzZjM2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaApA
QCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViRGF0YWJhc2VQcm92aWRl
cigpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgV2ViQ29yZTo6SURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Np
b24oY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SURC
Q2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNl
c3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGVsZXRl
QWxsRGF0YWJhc2VzKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA1
ZDE4YzNkMmY2MS4uMzU0ZDhiNzhjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxNy0wOC0xNiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNv
bnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgU2Vzc2lvbklEIGludG8gUEFMCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQxOTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViQ2FjaGUu
bW06CisgICAgICAgICgrW1dlYkNhY2hlIGltYWdlRm9yVVJMOl0pOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVu
dDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAg
IChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bik6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbiBj
b25zdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAg
ICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZSk6CisgICAgICAgICogV2ViS2l0UHJlZml4Lmg6CisKIDIwMTctMDgtMTYgIFlvc2hpYWtpIEpp
dHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255LmNvbT4KIAogICAgICAgICBbUEFMXSBN
b3ZlIHNwaS9pb3MgYW5kIHNwaS93aW4gZGlyZWN0b3JpZXMgaW50byBQQUwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYkNhY2hlLm1tCmluZGV4IDJmNTA4Mjg3NTBkLi4yNDFiYTJmNzFi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJDYWNoZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNhY2hlLm1tCkBAIC0xOTEsNyAr
MTkxLDcgQEAKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKLSAgICBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSog
Y2FjaGVkUmVzb3VyY2UgPSBXZWJDb3JlOjpNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVzb3Vy
Y2VGb3JSZXF1ZXN0KHJlcXVlc3QsIFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKTsKKyAgICBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBXZWJD
b3JlOjpNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3Qs
IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIGlmICghaXM8V2ViQ29y
ZTo6Q2FjaGVkSW1hZ2U+KGNhY2hlZFJlc291cmNlKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgV2ViQ29yZTo6Q2FjaGVkSW1hZ2UmIGNhY2hlZEltYWdlID0gZG93bmNhc3Q8V2ViQ29y
ZTo6Q2FjaGVkSW1hZ2U+KCpjYWNoZWRSZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCAwZmY3N2MwYmY1YS4uNzdlZmQxMmY1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMzgsNiArMzgsMTAgQEAKIEBjbGFzcyBXZWJIaXN0b3J5SXRlbTsKIEBjbGFzcyBX
ZWJSZXNvdXJjZTsKIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3Mg
Q2FjaGVkRnJhbWU7CkBAIC00NSw3ICs0OSw2IEBAIGNsYXNzIEhpc3RvcnlJdGVtOwogY2xhc3Mg
UHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBSZXNvdXJjZVJl
cXVlc3Q7Ci1jbGFzcyBTZXNzaW9uSUQ7CiB9CiAKIGNsYXNzIFdlYkZyYW1lTG9hZGVyQ2xpZW50
IDogcHVibGljIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50IHsKQEAgLTcxLDcgKzc0LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDIoKSBmaW5hbDsKICAgICB2b2lk
IGRldGFjaGVkRnJvbVBhcmVudDMoKSBmaW5hbDsKIAotICAgIHZvaWQgY29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgV2ViQ29yZTo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CisgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9h
ZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBQQUw6OlNlc3Npb25JRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpIGZpbmFsOwogCiAgICAgdm9pZCBhc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVz
dCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KaW5kZXggMjgyOWZlOTA3NWUuLjc1NzlhZjI0OGZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQpAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRldGFjaGVkRnJvbVBhcmVudDMoKQogICAgIG1fd2ViRnJhbWUtPl9wcml2YXRlLT53ZWJG
cmFtZVZpZXcgPSBuaWw7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRN
YWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIs
IFNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRN
YWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIs
IFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRX
ZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogICAgIFN1YnJlc291cmNlTG9hZGVyKiBtYWluUmVz
b3VyY2VMb2FkZXIgPSBkb2N1bWVudExvYWRlci0+bWFpblJlc291cmNlTG9hZGVyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCAxODY1Y2E5OWZkMi4uYmEyODEx
MjdjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMzIsOCAr
MzIsOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5o
PgorI2ltcG9ydCA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtNDYsMTQgKzQ2LDE0
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIHsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSwgW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSk7Ci0gICAg
cmV0dXJuICpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQoKSwgW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSk7Cisg
ICAgcmV0dXJuICpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogfQogCiB2b2lkIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJv
eVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOworICAgIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQoKSk7CiB9CiAKIGJvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0CkBAIC05NCw3ICs5NCw3IEBA
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFn
ZVNlc3Npb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYg
KGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKSB7
Ci0gICAgICAgIGlmIChhdXRvKiBzZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9y
YWdlU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpCisgICAgICAg
IGlmIChhdXRvKiBzZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lv
bihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSkKICAgICAgICAgICAg
IHJldHVybiAqc2Vzc2lvbjsKICAgICAgICAgLy8gU29tZSByZXF1ZXN0cyBtYXkgc3RpbGwgYmUg
Y29taW5nIHNob3J0bHkgYmVmb3JlIFdlYkNvcmUgdXBkYXRlcyB0aGUgc2Vzc2lvbiBJRCBhbmQg
YWZ0ZXIgV2ViS2l0IGRlc3Ryb3lzIHRoZSBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24uCiAgICAg
ICAgIExPR19FUlJPUigiSW52YWxpZCBzZXNzaW9uIElELiBQbGVhc2UgZmlsZSBhIGJ1ZyB1bmxl
c3MgeW91IGp1c3QgZGlzYWJsZWQgcHJpdmF0ZSBicm93c2luZywgaW4gd2hpY2ggY2FzZSBpdCdz
IGFuIGV4cGVjdGVkIHJhY2UuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IGFi
MjY0YTZkMjFjLi5mOTBmY2YwMmE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAg
LTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYp
IG92ZXJyaWRlOwogICAgIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwotICAgIFN0cmluZyBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CisgICAg
U3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRl
OwogICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVS
TCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZWxldGVD
b29raWUoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbQppbmRleCA5YWFmYTUxZmYxYy4uMWFjMmUxZWMwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW0KQEAgLTkzLDcgKzkzLDcgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2UK
ICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lv
biwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCkKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCkKIHsKICAgICBhdXRv
JiBzZXNzaW9uID0gc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgPyBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkgOiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogICAgIHJldHVybiBXZWJDb3JlOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViS2l0UHJlZml4LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJLaXRQcmVmaXguaAppbmRleCA3NTNkOTc3YmI4Mi4uM2RiZDJh
ODYzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYktpdFByZWZpeC5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYktpdFByZWZpeC5oCkBAIC04Myw3ICs4
Myw3IEBAIHR5cGVkZWYgZmxvYXQgQ0dGbG9hdDsKICNlbmRpZgogI2VuZGlmCiAKLSNpbmNsdWRl
IDx3dGYvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxwYWwvRXhwb3J0TWFjcm9zLmg+CiAjaW5jbHVk
ZSA8d3RmL0V4cG9ydE1hY3Jvcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNFeHBvcnRNYWNyb3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRXhwb3J0TWFjcm9zLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2Y2NjI1ZjliMWYuLmM5MzI3NThmZjZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDgtMTYgIERvbiBPbG1z
dGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBbUEFMXSBNb3ZlIFNlc3Np
b25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2V0Q29va2llQWNjZXB0UG9saWN5Rm9y
QWxsQ29udGV4dHMpOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbiBjb25zdCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDE3LTA4LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ2FjaGUgQVBJXSBBZGRp
bmcgZ2VuZXJpYyBzdXBwb3J0IGZvciBDYWNoZVN0b3JhZ2UgYW5kIENhY2hlIG1ldGhvZHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAzMmFiODJlNjQ0Ny4uZGUyODYxNDcwMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQzKCkKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBTZXNz
aW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBDT01QdHI8SVdlYkRvd25sb2FkRGVsZWdhdGU+
IGRvd25sb2FkRGVsZWdhdGU7CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZmYwZDk0ZTg2ZTIuLmFkM2Q2NmUwOTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZGV0YWNoZWRGcm9tUGFyZW50MigpIG92ZXJyaWRlOwogICAgIHZvaWQgZGV0YWNoZWRGcm9tUGFy
ZW50MygpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93
bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9h
ZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBhc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNl
bmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5jcHAKaW5kZXggMDkwM2I4NjVkNjkuLjg1OTNiMmIwMDBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lk
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2VwdFBvbGljeUZvckFsbENv
bnRleHRzKFdlYktpdENvb2tpZQogICAgIGlmIChSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFn
ZVJlZj4gY29va2llU3RvcmFnZSA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3Jh
Z2VTZXNzaW9uKCkuY29va2llU3RvcmFnZSgpKQogICAgICAgICBDRkhUVFBDb29raWVTdG9yYWdl
U2V0Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2UuZ2V0KCksIHBvbGljeSk7CiAKLSAg
ICBpZiAoYXV0byBwcml2YXRlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFn
ZVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKQorICAgIGlmIChh
dXRvIHByaXZhdGVTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lv
bihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSkKICAgICAgICAgQ0ZI
VFRQQ29va2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBvbGljeShwcml2YXRlU2Vzc2lvbi0+Y29v
a2llU3RvcmFnZSgpLmdldCgpLCBwb2xpY3kpOwogfQogI2VuZGlmCkBAIC03MCw3ICs3MCw3IEBA
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKGF1dG8gcHJpdmF0ZVNlc3Npb24gPSBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCgpKSkKKyAgICBpZiAoYXV0byBwcml2YXRlU2Vzc2lvbiA9IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZh
dGVTZXNzaW9uSUQoKSkpCiAgICAgICAgIHJldHVybiAqcHJpdmF0ZVNlc3Npb247CiAKICAgICBT
dHJpbmcgYmFzZTsKQEAgLTgxLDE3ICs4MSwxNyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQog
ICAgIH0gZWxzZQogICAgICAgICBiYXNlID0gaWRlbnRpZmllckJhc2UoKTsKIAotICAgIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgYmFzZSk7CisgICAgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQ
cml2YXRlU2Vzc2lvbklEKCksIGJhc2UpOwogCiAjZW5kaWYKLSAgICByZXR1cm4gKk5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkpOworICAgIHJldHVybiAqTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vz
c2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKIH0KIAogdm9p
ZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bigpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklE
KCkpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkgY29uc3QKQEAgLTEwNCw3ICsxMDQsNyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+
cGFnZSgpLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpKQotICAgICAgICByZXR1cm4gKk5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCkpOworICAgICAgICByZXR1cm4gKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFn
ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAKICAg
ICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDRjZThjOTk4YTQxLi4xYzM0
NjE4NzUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC05MCw3ICs5MCw3
IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlCiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLVN0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgVVJMJiB1cmwpCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgYXV0byYgc2Vzc2lvbiA9IHNlc3Npb25J
RC5pc0VwaGVtZXJhbCgpID8gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbigpIDogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFn
ZVNlc3Npb24oKTsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKaW5kZXggMmMxMzkyNzA1ZWUuLjE2NDM3ZjU1MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b29raWVzRnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25z
dCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0
cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlVSTCYpOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJik7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lv
bklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYp
OworICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlVSTCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318305</attachid>
            <date>2017-08-16 16:42:42 -0700</date>
            <delta_ts>2017-08-17 08:17:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174192.diff</filename>
            <type>text/plain</type>
            <size>384829</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWJjOTUyMDQ3Y2EuLjM1YjBiNTVmMzczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjE1OCw3ICsyMTU4LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEu
Y3BwCiAgICAgcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKLSAgICBwYWdlL1Nlc3Npb25JRC5jcHAK
ICAgICBwYWdlL1NldHRpbmdzLmNwcAogICAgIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCiAgICAg
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyOGEzYTEwYmJmMy4uNWUw
YjE5Y2I3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTIgQEAKKzIwMTctMDgtMTYgIERvbiBP
bG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBbUEFMXSBNb3ZlIFNl
c3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0
KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXNzaW9u
SUQgY29uc3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVsZW1lbnRXaXRoSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVu
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrc0FyZVJlYWR5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFMb2FkaW5nRmFpbGVkRmF0YWxseSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUxvYWRpbmdGYWlsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphZGRQbGF5ZWRSYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWVrVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpyZWZyZXNoQ2FjaGVkVGltZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjdXJyZW50TWVkaWFUaW1lIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFdlYmtpdFByZXNlcnZlc1BpdGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojp0b2dnbGVQbGF5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6YmVnaW5TY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlbW92ZVRleHRUcmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpjb250cm9sbGVySlNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50Ojpjb25maWd1cmVUZXh0VHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojpzb3VyY2VXYXNBZGRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50Ojpzb3VyY2VXYXNSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cG90ZW50aWFsbHlQbGF5aW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkUGxheWJhY2sgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RvcHBlZER1ZVRvRXJyb3JzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6aXNGdWxsc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnRvZ2dsZVN0YW5kYXJkRnVsbHNjcmVlblN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJlZEZvcklubGluZVRoZW4pOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlVGV4dFRyYWNrRGlzcGxheSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFj
a0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFH
cm91cCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVy
Rm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aXNCbG9j
a2VkT25NZWRpYUNvbnRyb2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cHJlcGFyZU1lZGlhRnJhZ21lbnRVUkkpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpmaWxlU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVNlc3Npb25UaXRsZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpuZWVkc1NlZWtpbmdTdXBwb3J0UXVpcmspOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6c3VwcG9ydHNTZWVraW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmRvZXNIYXZlQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmlzVmlkZW9Ub29TbWFsbEZvcklubGluZVBsYXliYWNr
KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZEZvbnQ6OkNhY2hlZEZvbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250
Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2Vz
c2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0Rv
Y3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFNWR0RvY3VtZW50Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udCk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6Q2Fj
aGVkU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0Lmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFRleHRUcmFjay5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xT
dHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhTTFN0eWxlU2hlZXQ6OkNh
Y2hlZFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHls
ZVNoZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpzZXNzaW9uUmVzb3VyY2VNYXAgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmVuc3VyZVNlc3Npb25SZXNvdXJjZU1hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpmb3JFYWNoU2Vzc2lvblJlc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6b3JpZ2luc1dpdGhDYWNoZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZpY3RSZXNvdXJjZXMpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25p
dG9yQ29jb2EuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6OnNlc3Npb25J
RCBjb25zdCk6CisgICAgICAgICogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkRpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2lu
Z1N0b3JlQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlza0NhY2hlTW9uaXRvcjo6RGlz
a0NhY2hlTW9uaXRvcik6CisgICAgICAgICogcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oOgor
ICAgICAgICAqIHBhZ2UvRGF0YWJhc2VQcm92aWRlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmVuYWJsZUxlZ2FjeVByaXZhdGVCcm93c2luZyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vzc2lvbklE
KToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1BsdWdJbkNsaWVudC5o
OgorICAgICAgICAqIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6CisgICAgICAgICogcGFn
ZS9Tb2NrZXRQcm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL0Nvb2tpZXNTdHJhdGVneS5o
OgorICAgICAgICAqIHBsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHA6CisgICAg
ICAgIChXVEY6OlBBTDo6U2Vzc2lvbklEPjo6Y29weSk6CisgICAgICAgIChXVEY6OldlYkNvcmU6
OlNlc3Npb25JRD46OmNvcHkpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1dlYkNvcmVD
cm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxp
ZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhlYWRlclZhbHVlRm9yVmFyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OnZlcmlmeVZhcnlpbmdSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb246Omdsb2JhbFNlc3Npb25NYXApOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3Jh
Z2VTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVT
ZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
Q0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29j
a2V0U3RyZWFtSGFuZGxlSW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Nv
Y2tldFN0cmVhbUhhbmRsZUltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhh
bmRsZUltcGw6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3
VGVzdGluZ1Nlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVh
bUhhbmRsZUltcGw6OmNyZWF0ZSk6CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRocmVhZDo6
RGVkaWNhdGVkV29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVk
aWNhdGVkV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxT
Y29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkU3RhcnR1cERh
dGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6V29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25QYXJhbWV0ZXJz
Lmg6CisKIDIwMTctMDgtMTYgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGNhcHR1cmUgYXN5bmMgc3RhY2sgdHJhY2Ugd2hlbiB3b3Jr
ZXJzL21haW4gY29udGV4dCBwb3N0cyBhIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBmMTIxZTI1
MWRjYy4uN2I1MWVjMzE0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29uc3QgVVJMJiByZXF1ZXN0ZWRVUkwsIGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wpCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQtPmZy
YW1lKCkpIHsKICAgICAgICAgcmVmKCk7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFn
ZSgpOwotICAgICAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0gcGFnZSA/IHBhZ2UtPnNlc3Npb25J
RCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCA9IHBhZ2UgPyBwYWdlLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgICAgIFN0cmluZyBwYXJ0aXRpb24gPSBtX2RvY3Vt
ZW50LT50b3BEb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkuZG9tYWluRm9yQ2FjaGVQYXJ0aXRp
b24oKTsKICAgICAgICAgbV9oYW5kbGUgPSBtX3NvY2tldFByb3ZpZGVyLT5jcmVhdGVTb2NrZXRT
dHJlYW1IYW5kbGUobV9oYW5kc2hha2UtPnVybCgpLCAqdGhpcywgc2Vzc2lvbklELCBwYXJ0aXRp
b24pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDY2NmZhNjQyZGY5Li40NDA5MTY0NDU3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMDgtMTYgIERvbiBP
bG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBbUEFMXSBNb3ZlIFNl
c3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwv
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogcGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmNwcDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmNwcC4KKyAgICAgICAg
KiBwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2Vzc2lvbklELmguCisgICAgICAgIChXVEY6OlNlc3Npb25JREhhc2g6Omhhc2gpOgor
ICAgICAgICAoV1RGOjpTZXNzaW9uSURIYXNoOjplcXVhbCk6CisgICAgICAgIChXVEY6Okhhc2hU
cmFpdHM8UEFMOjpTZXNzaW9uSUQ+OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRy
YWl0czxQQUw6OlNlc3Npb25JRD46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChX
VEY6Okhhc2hUcmFpdHM8UEFMOjpTZXNzaW9uSUQ+Ojppc0RlbGV0ZWRWYWx1ZSk6CisKIDIwMTct
MDgtMTYgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255LmNvbT4K
IAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9pb3MgYW5kIHNwaS93aW4gZGlyZWN0b3JpZXMgaW50
byBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA4ODZiNzcwOTA2My4uYjViMWE5YmYzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc0LDYgKzc0LDggQEAK
IAkJQTMwRDQxMjExRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzBENDExRTFGMEREMEVBMDBCNzE5NTQg
LyogS2lsbFJpbmcuaCAqLzsgfTsKIAkJQTMwRDQxMjIxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxS
aW5nTm9uZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMzBENDExRjFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNwcCAqLzsgfTsKIAkJ
QTMwRDQxMjUxRjBERDEyRDAwQjcxOTU0IC8qIEtpbGxSaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMjQxRjBERDEyRDAwQjcxOTU0
IC8qIEtpbGxSaW5nTWFjLm1tICovOyB9OworCQlBMzE1ODgyRTFGNDRGODA1MDA2REIxNkQgLyog
U2Vzc2lvbklELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEEzMTU4ODJDMUY0NEY4MDUwMDZEQjE2RCAvKiBTZXNzaW9uSUQuY3BwICovOyB9OworCQlB
MzE1ODgyRjFGNDRGODA1MDA2REIxNkQgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzE1ODgyRDFGNDRGODA1MDA2REIxNkQgLyog
U2Vzc2lvbklELmggKi87IH07CiAJCUEzNzg4RTk4MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTM3ODhFOTcx
RjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggKi87IH07CiAJCUEzNzg4RTlDMUYwNUI3ODIwMDY3
OTQyNSAvKiBTb3VuZE5vbmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTM3ODhFOUIxRjA1Qjc4MjAwNjc5NDI1IC8qIFNvdW5kTm9uZS5jcHAgKi87
IH07CiAJCUEzNzg4RTlFMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzNzg4RTlEMUYwNUI3OEUwMDY3
OTQyNSAvKiBTb3VuZE1hYy5tbSAqLzsgfTsKQEAgLTE1Nyw2ICsxNTksOCBAQAogCQlBMzBENDEx
RTFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gS2lsbFJpbmcuaDsgcGF0aCA9IHRleHQvS2lsbFJpbmcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUYxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nTm9u
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBLaWxsUmluZ05vbmUu
Y3BwOyBwYXRoID0gdGV4dC9LaWxsUmluZ05vbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMzBENDEyNDFGMEREMTJEMDBCNzE5NTQgLyogS2lsbFJpbmdNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBLaWxsUmluZ01hYy5tbTsgcGF0aCA9
IHRleHQvbWFjL0tpbGxSaW5nTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
MzE1ODgyQzFGNDRGODA1MDA2REIxNkQgLyogU2Vzc2lvbklELmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNlc3Npb25JRC5jcHA7IHBhdGggPSBpZGVudGlmaWVyL1Nl
c3Npb25JRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEzMTU4ODJEMUY0NEY4
MDUwMDZEQjE2RCAvKiBTZXNzaW9uSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gU2Vzc2lvbklELmg7IHBhdGggPSBpZGVudGlmaWVyL1Nlc3Npb25JRC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMzc4OEU5NzFGMDVCNkNFMDA2Nzk0MjUgLyogU291bmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU291bmQuaDsgcGF0aCA9IHN5c3RlbS9T
b3VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMzc4OEU5QjFGMDVCNzgyMDA2
Nzk0MjUgLyogU291bmROb25lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFNvdW5kTm9uZS5jcHA7IHBhdGggPSBzeXN0ZW0vU291bmROb25lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTM3ODhFOUQxRjA1Qjc4RTAwNjc5NDI1IC8qIFNvdW5kTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gU291bmRNYWMubW07
IHBhdGggPSBzeXN0ZW0vbWFjL1NvdW5kTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjg5LDYgKzI5Myw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTFDMDlEMDUxMUUzMUM0MTIwMDcyNUYxOCAvKiBjcnlwdG8gKi8sCisJCQkJQTMxNTg4
MkIxRjQ0RjdGMDAwNkRCMTZEIC8qIGlkZW50aWZpZXIgKi8sCiAJCQkJMEMyREEwNjUxRjMzQ0Ez
MzAwREJDMzE3IC8qIHNwaSAqLywKIAkJCQlBMzc4OEU5RjFGMDVCN0NFMDA2Nzk0MjUgLyogc3lz
dGVtICovLAogCQkJCUEzMEQ0MTFEMUYwREQwQUMwMEI3MTk1NCAvKiB0ZXh0ICovLApAQCAtMzQ1
LDYgKzM1MCwxNSBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCUEzMTU4ODJCMUY0NEY3RjAwMDZEQjE2RCAvKiBpZGVudGlmaWVyICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlBMzE1ODgyQzFGNDRGODA1
MDA2REIxNkQgLyogU2Vzc2lvbklELmNwcCAqLywKKwkJCQlBMzE1ODgyRDFGNDRGODA1MDA2REIx
NkQgLyogU2Vzc2lvbklELmggKi8sCisJCQkpOworCQkJbmFtZSA9IGlkZW50aWZpZXI7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBMzc4OEU5RjFGMDVCN0NFMDA2Nzk0MjUg
Lyogc3lzdGVtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTQzMyw2ICs0NDcsNyBAQAogCQkJCTBDMkRBMTU3MUYzQkVCNDkwMERCQzMxNyAvKiBRdWFydHpD
b3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkyMDFGNDNBNEM3MDAyRUFDMDIgLyog
UXVpY2tMb29rU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE1ODFGM0JFQjQ5MDBEQkMz
MTcgLyogU2VydmVyc1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTMxNTg4MkYxRjQ0RjgwNTAw
NkRCMTZEIC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTNBQjZFNTYxRjNEMURE
QjAwOUMxNEIxIC8qIFNsZWVwRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUEzQUI2RTYx
MUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyQ29jb2EuaCBpbiBIZWFkZXJzICovLAog
CQkJCUEzNzg4RTk4MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5oIGluIEhlYWRlcnMgKi8sCkBA
IC01MzIsNiArNTQ3LDcgQEAKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRv
RGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0MTI1MUYwREQx
MkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEzMEQ0MTIy
MUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QTMxNTg4MkUxRjQ0RjgwNTAwNkRCMTZEIC8qIFNlc3Npb25JRC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBM0FCNkU1MjFGM0QxREM1MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBM0FCNkU2MDFGM0QxRTM5MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlckNv
Y29hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzNzg4RTlFMUYwNUI3OEUwMDY3OTQyNSAvKiBT
b3VuZE1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvQ01ha2VMaXN0cy50
eHQKaW5kZXggNjE0M2U5NGY1OTEuLmU5YjA1YzJjM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Q01ha2VMaXN0cy50eHQKQEAgLTEsNCArMSw1IEBACiBzZXQoUEFMX1NPVVJDRVMKKyAgICBpZGVu
dGlmaWVyL1Nlc3Npb25JRC5jcHAKICAgICBzeXN0ZW0vU2xlZXBEaXNhYmxlci5jcHAKICAgICBz
eXN0ZW0vU3lzdGVtU2xlZXBMaXN0ZW5lci5jcHAKICkKQEAgLTEwLDYgKzExLDcgQEAgc2V0KFBB
TF9JTkNMVURFX0RJUkVDVE9SSUVTCiBzZXQoUEFMX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1BBTF9ESVJ9L3BhbCIKICAgICAiJHtQQUxfRElSfS9wYWwvY3J5cHRvIgorICAg
ICIke1BBTF9ESVJ9L3BhbC9pZGVudGlmaWVyIgogICAgICIke1BBTF9ESVJ9L3BhbC9zeXN0ZW0i
CiAgICAgIiR7UEFMX0RJUn0vcGFsL3RleHQiCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Nlc3Npb25JRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lkZW50aWZpZXIv
U2Vzc2lvbklELmNwcApzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1Nlc3Npb25JRC5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
aWRlbnRpZmllci9TZXNzaW9uSUQuY3BwCmluZGV4IDJlMTU5NTA4YzcyLi5jNDIzNWU0ZDk3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuY3BwCkBAIC0yOCw3ICsyOCw3
IEBACiAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7
CituYW1lc3BhY2UgUEFMIHsKIAogc3RhdGljIHVpbnQ2NF90IGN1cnJlbnRQZXJzaXN0ZW50SUQg
PSBTZXNzaW9uSUQ6OkRlZmF1bHRTZXNzaW9uSUQ7CiBzdGF0aWMgdWludDY0X3QgY3VycmVudEVw
aGVtZXJhbElEID0gU2Vzc2lvbklEOjpMZWdhY3lQcml2YXRlU2Vzc2lvbklEOwpAQCAtNjAsNCAr
NjAsNCBAQCBTZXNzaW9uSUQgU2Vzc2lvbklEOjppc29sYXRlZENvcHkoKSBjb25zdAogICAgIHJl
dHVybiBTZXNzaW9uSUQgeyBtX3Nlc3Npb25JRCB9OwogfQogCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCit9IC8vIG5hbWVzcGFjZSBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2Vzc2lvbklELmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lkZW50aWZpZXIvU2Vzc2lvbklE
LmgKc2ltaWxhcml0eSBpbmRleCA4MCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXNzaW9uSUQuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvUEFML3BhbC9pZGVudGlmaWVyL1Nl
c3Npb25JRC5oCmluZGV4IDM3OGY2ODlkMTc0Li5kZWY0OTdlOTRjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2lkZW50aWZpZXIvU2Vzc2lvbklELmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDx3dGYv
SGFzaEZ1bmN0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAKLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBQQUwgewogCiBjbGFzcyBTZXNzaW9uSUQgewogcHVibGlj
OgpAQCAtNTMsOSArNTMsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXNzaW9uSUQgIT0gSGFzaFRhYmxlRW1wdHlWYWx1ZUlEICYmIG1fc2Vzc2lvbklE
ICE9IEhhc2hUYWJsZURlbGV0ZWRWYWx1ZUlEOyB9CiAgICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEICYgRXBoZW1lcmFsU2Vzc2lvbk1hc2sgJiYgbV9zZXNz
aW9uSUQgIT0gSGFzaFRhYmxlRGVsZXRlZFZhbHVlSUQ7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTZXNzaW9uSUQgZ2VuZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQoKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgU2Vzc2lvbklEIGdlbmVyYXRlUGVyc2lzdGVudFNlc3Npb25JRCgp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZUdlbmVyYXRpb25Qcm90ZWN0
aW9uKCk7CisgICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vzc2lvbklEIGdlbmVyYXRlRXBoZW1lcmFs
U2Vzc2lvbklEKCk7CisgICAgUEFMX0VYUE9SVCBzdGF0aWMgU2Vzc2lvbklEIGdlbmVyYXRlUGVy
c2lzdGVudFNlc3Npb25JRCgpOworICAgIFBBTF9FWFBPUlQgc3RhdGljIHZvaWQgZW5hYmxlR2Vu
ZXJhdGlvblByb3RlY3Rpb24oKTsKIAogICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgYm9vbCBvcGVyYXRvcj09KFNlc3Npb25JRCBzZXNz
aW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEID09IHNlc3Npb25JRC5tX3Nlc3Npb25J
RDsgfQpAQCAtOTMsMjIgKzkzLDIyIEBAIGJvb2wgU2Vzc2lvbklEOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNlIFBBTAogCiBuYW1lc3BhY2UgV1RG
IHsKIAogc3RydWN0IFNlc3Npb25JREhhc2ggewotICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNv
bnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgcCkgeyByZXR1cm4gaW50SGFzaChwLnNlc3Npb25JRCgp
KTsgfQotICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgYSwg
Y29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0
aWMgdW5zaWduZWQgaGFzaChjb25zdCBQQUw6OlNlc3Npb25JRCYgcCkgeyByZXR1cm4gaW50SGFz
aChwLnNlc3Npb25JRCgpKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiBhLCBjb25zdCBQQUw6OlNlc3Npb25JRCYgYikgeyByZXR1cm4gYSA9PSBiOyB9CiAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVl
OwogfTsKLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6U2Vzc2lvbklEPiA6
IEdlbmVyaWNIYXNoVHJhaXRzPFdlYkNvcmU6OlNlc3Npb25JRD4gewotICAgIHN0YXRpYyBXZWJD
b3JlOjpTZXNzaW9uSUQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFdlYkNvcmU6OlNlc3Npb25JRDo6
ZW1wdHlTZXNzaW9uSUQoKTsgfQordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxQQUw6OlNl
c3Npb25JRD4gOiBHZW5lcmljSGFzaFRyYWl0czxQQUw6OlNlc3Npb25JRD4geworICAgIHN0YXRp
YyBQQUw6OlNlc3Npb25JRCBlbXB0eVZhbHVlKCkgeyByZXR1cm4gUEFMOjpTZXNzaW9uSUQ6OmVt
cHR5U2Vzc2lvbklEKCk7IH0KIAotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1
ZShXZWJDb3JlOjpTZXNzaW9uSUQmIHNsb3QpIHsgc2xvdCA9IFdlYkNvcmU6OlNlc3Npb25JRDo6
aGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1
ZShjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3QgPT0gV2ViQ29y
ZTo6U2Vzc2lvbklEOjpoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorICAgIHN0YXRpYyB2b2lk
IGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShQQUw6OlNlc3Npb25JRCYgc2xvdCkgeyBzbG90ID0gUEFM
OjpTZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisgICAgc3RhdGljIGJvb2wg
aXNEZWxldGVkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNsb3QpIHsgcmV0dXJuIHNsb3Qg
PT0gUEFMOjpTZXNzaW9uSUQ6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CiB9OwotdGVtcGxh
dGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6U2Vzc2lvbklEPiB7Cit0ZW1wbGF0ZTw+
IHN0cnVjdCBEZWZhdWx0SGFzaDxQQUw6OlNlc3Npb25JRD4gewogICAgIHR5cGVkZWYgU2Vzc2lv
bklESGFzaCBIYXNoOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZjMmRkYmVjYzM4Li41MzdjODNiYmNhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjE5Myw3ICsyMTkzLDYgQEAKIAkJNTExRUYyQ0ExN0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCVHJh
bnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExRUYyQjQxN0YwRkM0ODAwRTRGQTE2IC8qIEpTSURCVHJhbnNhY3Rpb24uY3BwICovOyB9
OwogCQk1MTFFRjJDQjE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY5MjM5
OTExNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCAqLzsgfTsK
IAkJNTExRUYyRDExN0YwRkRGMTAwRTRGQTE2IC8qIEpTSURCT2JqZWN0U3RvcmVDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUYyQ0Ux
N0YwRkRGMTAwRTRGQTE2IC8qIEpTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwICovOyB9OwotCQk1
MTFGN0Q0NDFFQjFDMzkxMDBFNDdCODMgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3RDQzMUVCMUMzODkwMEU0N0I4MyAv
KiBTZXNzaW9uSUQuY3BwICovOyB9OwogCQk1MTIwQkJBRTFGMUNFOENFMDBFRkVCRjEgLyogQ29v
a2llU3RvcmFnZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEyMEJCQUMxRjFDRTc3MDAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNl
cnZlci5tbSAqLzsgfTsKIAkJNTEyMEJCQUYxRjFDRUNFNzAwRUZFQkYxIC8qIENvb2tpZVN0b3Jh
Z2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTEyMEJCQUQxRjFDRTc3MDAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMkJEQjRB
MUM0NTZGRjUwMDY0OTRERiAvKiBTUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyQkRCNDgxQzQ1NkZBQjAwNjQ5
NERGIC8qIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgKi87IH07CkBAIC0yOTk5LDcgKzI5OTgs
NiBAQAogCQk3NTQxMzNBQTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQx
MzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgKi87IH07
CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4
RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU1M0NG
RTkxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEwOEY0NzNGMDBF
QTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLzsgfTsKLQkJNzU2QjJDRTExOEI3
MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU2QjJDRTAxOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1Nzkz
RTgzMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODAwRDBDRTBCMzAwN0ZDMEFDIC8q
IE1lc3NhZ2VFdmVudC5jcHAgKi87IH07CiAJCTc1NzkzRTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBN
ZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJ
NzU3OTNFQzgwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUM2MEQwQ0U3MkQwMDdG
QzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgKi87IH07CkBAIC05OTI3LDcgKzk5MjUsNiBAQAog
CQk1MTFFRjJCMzE3RjBGQzQ4MDBFNEZBMTYgLyogSlNJREJSZXF1ZXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTSURCUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMUVGMkI0MTdGMEZDNDgwMEU0RkExNiAvKiBKU0lEQlRyYW5zYWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTSURCVHJhbnNhY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTFFRjJDRTE3RjBGREYxMDBFNEZBMTYgLyogSlNJREJPYmplY3RTdG9yZUN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQk9iamVjdFN0
b3JlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExRjdENDMxRUIx
QzM4OTAwRTQ3QjgzIC8qIFNlc3Npb25JRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTZXNzaW9uSUQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTFGQUVBOTFCREM5ODlBMDBCNEFGRTQgLyogVGhyZWFkU2FmZURhdGFCdWZmZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkU2FmZURhdGFCdWZmZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyMEJCQUMxRjFDRTc3MDAwRUZFQkYxIC8qIENvb2tp
ZVN0b3JhZ2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENvb2tpZVN0b3JhZ2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyMEJCQUQxRjFDRTc3MDAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNlcnZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMDE5LDcgKzExMDE2LDYgQEAKIAkJNzU0
MTMzQTkxMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgx
RSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzU2QjJDRTAxOEI3MTAxNjAw
RkVDRkFBIC8qIFNlc3Npb25JRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZXNzaW9uSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OTNFODAwRDBDRTBC
MzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVzc2FnZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc1NzkzRTgyMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZXNzYWdlRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTk0MjksOCArMTk0MjUsNiBAQAogCQkJCUJDRDBFMEY5MEU5NzJD
MzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLywKIAkJCQk5NzREMkRBMjE0NkE1
MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuY3BwICovLAogCQkJCTk3NEQyREEzMTQ2QTUz
NUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5oICovLAotCQkJCTUxMUY3RDQzMUVCMUMzODkw
MEU0N0I4MyAvKiBTZXNzaW9uSUQuY3BwICovLAotCQkJCTc1NkIyQ0UwMThCNzEwMTYwMEZFQ0ZB
QSAvKiBTZXNzaW9uSUQuaCAqLywKIAkJCQkxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0
dGluZ3MuY3BwICovLAogCQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5o
ICovLAogCQkJCUJDNTlERUY4MTY5REVEQzMwMDE2QUMzNCAvKiBTZXR0aW5ncy5pbiAqLywKQEAg
LTI5NDQ4LDcgKzI5NDQyLDYgQEAKIAkJCQk1MUYxNzU2OTFGM0VCQzgzMDBDNzQ5NTAgLyogU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3
NTZCMUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVy
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NkMxRjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZp
Y2VXb3JrZXJVcGRhdGVWaWFDYWNoZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzU2QjJDRTExOEI3
MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTAw
OTlFNjQ5MjAwNTZFNTgxIC8qIFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCOERCREI0QzEzMEIwRjhBMDBGNUNEQjEgLyogU2V0U2VsZWN0aW9uQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NEYwODI0NUU1OTAwMUU5QUJDIC8qIFNldHRpbmdz
LmggaW4gSGVhZGVycyAqLywKQEAgLTMzMzAxLDcgKzMzMjk0LDYgQEAKIAkJCQk1MUYxNzU2NTFG
M0VCQzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxRjE3NTY3MUYzRUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjE3NTZBMUYzRUJDODMwMEM3NDk1MCAvKiBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk1MTFGN0Q0NDFFQjFDMzkxMDBFNDdCODMgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzMzA5RTBGMDk5RTY0OTIwMDU2RTU4MSAvKiBTZXROb2RlQXR0cmlidXRlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCOERCREI0QjEzMEIwRjhBMDBGNUNEQjEgLyogU2V0
U2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEM5QTVFQTBCM0QxMDVG
MDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCBmYTcwOGNlZTg2NS4uZjcyZmVlN2U0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtNDY3MSw3ICs0NjcxLDcgQEAgVVJMIERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25z
dCBTdHJpbmcmIHVybCkgY29uc3QKICAgICByZXR1cm4gY29tcGxldGVVUkwodXJsLCBtX2Jhc2VV
UkwpOwogfQogCi1TZXNzaW9uSUQgRG9jdW1lbnQ6OnNlc3Npb25JRCgpIGNvbnN0CitQQUw6OlNl
c3Npb25JRCBEb2N1bWVudDo6c2Vzc2lvbklEKCkgY29uc3QKIHsKICAgICBpZiAobV9zZXNzaW9u
SUQuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IGNmYjcyMDUwMTZiLi5mMzYyMDY5ZWVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJQ
dHIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiU2Vz
c2lvbklELmgiCiAjaW5jbHVkZSAiU3RyaW5nV2l0aERpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlN1
cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgpAQCAtNTQs
NiArNTMsNyBAQAogI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVkZSAi
Vmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTY0Miw3
ICs2NDIsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgY29tcGxldGVVUkwo
Y29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFVSTCYgYmFzZVVSTE92ZXJyaWRlKSBjb25zdDsKLSAgICBTZXNzaW9uSUQg
c2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkg
Y29uc3QgZmluYWw7CiAKICAgICBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0IGZp
bmFsOwogCkBAIC0xODEwLDcgKzE4MTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBPcmll
bnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllcjsKLSAgICBtdXRhYmxlIFNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKKyAgICBtdXRhYmxlIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklE
OwogCiAgICAgc3RhdGljIGJvb2wgaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggZjA3MTMz
NzM0N2EuLjMyZjE5YzMwM2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKQEAgLTUwLDYgKzUwLDEwIEBAIGNsYXNzIENvbnNvbGVNZXNzYWdlOwogY2xh
c3MgU2NyaXB0Q2FsbFN0YWNrOwogfQogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25J
RDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRTY3JpcHQ7CkBAIC02
MSw3ICs2NSw2IEBAIGNsYXNzIFB1YmxpY1VSTE1hbmFnZXI7CiBjbGFzcyBSZWplY3RlZFByb21p
c2VUcmFja2VyOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47
Ci1jbGFzcyBTZXNzaW9uSUQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFVSTDsKIApA
QCAtODIsNyArODUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IFVSTCYgdXJsKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJs
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgPSAwOwogCiAg
ICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0ID0gMDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZGFmMjFmNzQzNmEuLjdk
NmMyZWI4MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTgyLDEzICs4MiwxMyBAQAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgotI2lu
Y2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNsdWRlICJVc2VyQ29udGVu
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1
ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDxwYWwvc3lzdGVtL1NsZWVwRGlzYWJsZXIuaD4KICNpbmNsdWRlIDxydW50aW1lL1VpbnQ4
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgpAQCAtMTgwLDcgKzE4MCw3IEBA
IHN0YXRpYyB2b2lkIGNsZWFyRmxhZ3ModW5zaWduZWQmIHZhbHVlLCB1bnNpZ25lZCBmbGFncykK
IHsKICAgICB2YWx1ZSAmPSB+ZmxhZ3M7CiB9Ci0gICAgCisKICNpZiAhTE9HX0RJU0FCTEVECiBz
dGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmdNZWRpYShjb25zdCBVUkwmIHVybCkKIHsKQEAgLTIy
Miw3ICsyMjIsNyBAQCBzdGF0aWMgU3RyaW5nIGFjdGlvbk5hbWUoSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpEZWxheWVkQWN0aW9uVHlwZSBhY3Rpb24pCiAjZW5kaWYKIAogI2lmbmRlZiBMT0dfTUVE
SUFfRVZFTlRTCi0vLyBEZWZhdWx0IHRvIG5vdCBsb2dnaW5nIGV2ZW50cyBiZWNhdXNlIHNvIG1h
bnkgYXJlIGdlbmVyYXRlZCB0aGV5IGNhbiBvdmVyd2hlbG0gdGhlIHJlc3Qgb2YgCisvLyBEZWZh
dWx0IHRvIG5vdCBsb2dnaW5nIGV2ZW50cyBiZWNhdXNlIHNvIG1hbnkgYXJlIGdlbmVyYXRlZCB0
aGV5IGNhbiBvdmVyd2hlbG0gdGhlIHJlc3Qgb2YKIC8vIHRoZSBsb2dnaW5nLgogI2RlZmluZSBM
T0dfTUVESUFfRVZFTlRTIDAKICNlbmRpZgpAQCAtMjgyLDcgKzI4Miw3IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIG1fZWxlbWVudC5lbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVl
c3RzKCk7CiAgICAgfQotICAgIAorCiBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1f
ZWxlbWVudDsKIH07CkBAIC0zMjMsNyArMzIzLDcgQEAgSFRNTE1lZGlhRWxlbWVudCogSFRNTE1l
ZGlhRWxlbWVudDo6ZWxlbWVudFdpdGhJRCh1aW50NjRfdCBpZCkKIHsKICAgICBpZiAoaWQgPT0g
SFRNTE1lZGlhRWxlbWVudEludmFsaWRJRCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
CisKICAgICByZXR1cm4gZWxlbWVudElEc1RvRWxlbWVudHMoKS5nZXQoaWQpOwogfQogCkBAIC04
MDMsNyArODAzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRy
ZW4oKQogewogICAgIEhUTUxFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKICAgICBt
X3BhcnNpbmdJblByb2dyZXNzID0gZmFsc2U7Ci0gICAgCisKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgaWYgKGRlc2NlbmRhbnRzT2ZUeXBlPEhUTUxUcmFja0VsZW1lbnQ+KCp0aGlzKS5m
aXJzdCgpKQogICAgICAgICBzY2hlZHVsZURlbGF5ZWRBY3Rpb24oQ29uZmlndXJlVGV4dFRyYWNr
cyk7CkBAIC05OTIsNyArOTkyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQogICAgIExPRyhNZWRpYSwgIkhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQoJXApIC0gc2NoZWR1bGluZyAnJXMnIiwgdGhpcywg
ZXZlbnROYW1lLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKICNlbmRpZgogICAgIFJlZlB0cjxF
dmVudD4gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIHRydWUpOwotICAg
IAorCiAgICAgLy8gRG9uJ3Qgc2V0IHRoZSBldmVudCB0YXJnZXQsIHRoZSBldmVudCBxdWV1ZSB3
aWxsIHNldCBpdCBpbiBHZW5lcmljRXZlbnRRdWV1ZTo6dGltZXJGaXJlZCBhbmQgc2V0dGluZyBp
dCBoZXJlCiAgICAgLy8gd2lsbCB0cmlnZ2VyIGFuIEFTU0VSVCBpZiB0aGlzIGVsZW1lbnQgaGFz
IGJlZW4gbWFya2VkIGZvciBkZWxldGlvbi4KIApAQCAtMTEzMCw3ICsxMTMwLDcgQEAgU3RyaW5n
IEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNv
bnN0CiAgICAgICAgICAgICBjYW5QbGF5ID0gQVNDSUlMaXRlcmFsKCJwcm9iYWJseSIpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAorCiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlh
RWxlbWVudDo6Y2FuUGxheVR5cGUoJXApIC0gWyVzXSAtPiAlcyIsIHRoaXMsIG1pbWVUeXBlLnV0
ZjgoKS5kYXRhKCksIGNhblBsYXkudXRmOCgpLmRhdGEoKSk7CiAKICAgICByZXR1cm4gY2FuUGxh
eTsKQEAgLTExNDYsOSArMTE0Niw5IEBAIGRvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjpnZXRTdGFy
dERhdGUoKSBjb25zdAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKCkKIHsKICAgICBSZWY8
SFRNTE1lZGlhRWxlbWVudD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7IC8vIHByZXBhcmVGb3JMb2Fk
IG1heSByZXN1bHQgaW4gYSAnYmVmb3JlbG9hZCcgZXZlbnQsIHdoaWNoIGNhbiBtYWtlIGFyYml0
cmFyeSBET00gbXV0YXRpb25zLgotICAgIAorCiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxl
bWVudDo6bG9hZCglcCkiLCB0aGlzKTsKLSAgICAKKwogICAgIGlmICghbV9tZWRpYVNlc3Npb24t
PmRhdGFMb2FkaW5nUGVybWl0dGVkKCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChw
cm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQpAQCAtMTQ4Niw3ICsxNDg2LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgVVJMJiBpbml0aWFsVVJMLCBD
b250ZW50VHlwZSYgY29udGVudFQKICAgICB9CiAjZW5kaWYKIAotICAgIC8vIFRoZSByZXNvdXJj
ZSBmZXRjaCBhbGdvcml0aG0gCisgICAgLy8gVGhlIHJlc291cmNlIGZldGNoIGFsZ29yaXRobQog
ICAgIG1fbmV0d29ya1N0YXRlID0gTkVUV09SS19MT0FESU5HOwogCiAgICAgLy8gSWYgdGhlIFVS
TCBzaG91bGQgYmUgbG9hZGVkIGZyb20gdGhlIGFwcGxpY2F0aW9uIGNhY2hlLCBwYXNzIHRoZSBV
Ukwgb2YgdGhlIGNhY2hlZCBmaWxlIHRvIHRoZSBtZWRpYSBlbmdpbmUuCkBAIC0xODQxLDcgKzE4
NDEsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja3NBcmVSZWFkeSgpIGNvbnN0
CiB7CiAgICAgLy8gNC44LjEwLjEyLjEgVGV4dCB0cmFjayBtb2RlbAogICAgIC8vIC4uLgotICAg
IC8vIFRoZSB0ZXh0IHRyYWNrcyBvZiBhIG1lZGlhIGVsZW1lbnQgYXJlIHJlYWR5IGlmIGFsbCB0
aGUgdGV4dCB0cmFja3Mgd2hvc2UgbW9kZSB3YXMgbm90IAorICAgIC8vIFRoZSB0ZXh0IHRyYWNr
cyBvZiBhIG1lZGlhIGVsZW1lbnQgYXJlIHJlYWR5IGlmIGFsbCB0aGUgdGV4dCB0cmFja3Mgd2hv
c2UgbW9kZSB3YXMgbm90CiAgICAgLy8gaW4gdGhlIGRpc2FibGVkIHN0YXRlIHdoZW4gdGhlIGVs
ZW1lbnQncyByZXNvdXJjZSBzZWxlY3Rpb24gYWxnb3JpdGhtIGxhc3Qgc3RhcnRlZCBub3cKICAg
ICAvLyBoYXZlIGEgdGV4dCB0cmFjayByZWFkaW5lc3Mgc3RhdGUgb2YgbG9hZGVkIG9yIGZhaWxl
ZCB0byBsb2FkLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3RleHRUcmFja3NXaGVu
UmVzb3VyY2VTZWxlY3Rpb25CZWdhbi5zaXplKCk7ICsraSkgewpAQCAtMTkwMSwxMCArMTkwMSwx
MCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFj
ayYgdHJhY2spCiAgICAgLy8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgYWRkZWQgdHJhY2ssIGNyZWF0
ZSB0aGUgbGlzdCBvZiB0ZXh0IHRyYWNrcy4KICAgICBpZiAoIW1fdGV4dFRyYWNrcykKICAgICAg
ICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKHRoaXMsIEFjdGl2ZURPTU9i
amVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAKKwogICAgIC8vIE1hcmsgdGhp
cyB0cmFjayBhcyAiY29uZmlndXJlZCIgc28gY29uZmlndXJlVGV4dFRyYWNrcyB3b24ndCBjaGFu
Z2UgdGhlIG1vZGUgYWdhaW4uCiAgICAgdHJhY2suc2V0SGFzQmVlbkNvbmZpZ3VyZWQodHJ1ZSk7
Ci0gICAgCisKICAgICBpZiAodHJhY2subW9kZSgpICE9IFRleHRUcmFjazo6TW9kZTo6RGlzYWJs
ZWQgJiYgdHJhY2tJc0xvYWRlZCkKICAgICAgICAgdGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgKnRy
YWNrLmN1ZXMoKSk7CiAKQEAgLTIwNzcsOCArMjA3Nyw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bm9uZVN1cHBvcnRlZCgpCiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwog
ICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogCi0gICAgLy8gNC44LjEwLjUgCi0g
ICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3RlcCBpbmRpY2F0ZXMgdGhhdCB0aGUgbWVkaWEgcmVz
b3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhhdCB0aGUgZ2l2ZW4gCisgICAgLy8gNC44LjEwLjUK
KyAgICAvLyA2IC0gUmVhY2hpbmcgdGhpcyBzdGVwIGluZGljYXRlcyB0aGF0IHRoZSBtZWRpYSBy
ZXNvdXJjZSBmYWlsZWQgdG8gbG9hZCBvciB0aGF0IHRoZSBnaXZlbgogICAgIC8vIFVSTCBjb3Vs
ZCBub3QgYmUgcmVzb2x2ZWQuIEluIG9uZSBhdG9taWMgb3BlcmF0aW9uLCBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKIAogICAgIC8vIDYuMSAtIFNldCB0aGUgZXJyb3IgYXR0cmlidXRlIHRvIGEg
bmV3IE1lZGlhRXJyb3Igb2JqZWN0IHdob3NlIGNvZGUgYXR0cmlidXRlIGlzIHNldCB0bwpAQCAt
MjEwMyw3ICsyMTAzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpub25lU3VwcG9ydGVkKCkK
ICAgICAvLyA4IC0gU2V0IHRoZSBlbGVtZW50J3MgZGVsYXlpbmctdGhlLWxvYWQtZXZlbnQgZmxh
ZyB0byBmYWxzZS4gVGhpcyBzdG9wcyBkZWxheWluZyB0aGUgbG9hZCBldmVudC4KICAgICBzZXRT
aG91bGREZWxheUxvYWRFdmVudChmYWxzZSk7CiAKLSAgICAvLyA5IC0gQWJvcnQgdGhlc2Ugc3Rl
cHMuIFVudGlsIHRoZSBsb2FkKCkgbWV0aG9kIGlzIGludm9rZWQgb3IgdGhlIHNyYyBhdHRyaWJ1
dGUgaXMgY2hhbmdlZCwgCisgICAgLy8gOSAtIEFib3J0IHRoZXNlIHN0ZXBzLiBVbnRpbCB0aGUg
bG9hZCgpIG1ldGhvZCBpcyBpbnZva2VkIG9yIHRoZSBzcmMgYXR0cmlidXRlIGlzIGNoYW5nZWQs
CiAgICAgLy8gdGhlIGVsZW1lbnQgd29uJ3QgYXR0ZW1wdCB0byBsb2FkIGFub3RoZXIgcmVzb3Vy
Y2UuCiAKICAgICB1cGRhdGVEaXNwbGF5U3RhdGUoKTsKQEAgLTIxMTgsNyArMjExOCw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFMb2FkaW5nRmFpbGVkRmF0YWxseShNZWRpYVBsYXll
cjo6TmV0d29ya1N0YXRlIGVycm9yCiAgICAgc3RvcFBlcmlvZGljVGltZXJzKCk7CiAgICAgbV9s
b2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwogCi0gICAgLy8gMiAtIFNldCB0aGUgZXJyb3Ig
YXR0cmlidXRlIHRvIGEgbmV3IE1lZGlhRXJyb3Igb2JqZWN0IHdob3NlIGNvZGUgYXR0cmlidXRl
IGlzIAorICAgIC8vIDIgLSBTZXQgdGhlIGVycm9yIGF0dHJpYnV0ZSB0byBhIG5ldyBNZWRpYUVy
cm9yIG9iamVjdCB3aG9zZSBjb2RlIGF0dHJpYnV0ZSBpcwogICAgIC8vIHNldCB0byBNRURJQV9F
UlJfTkVUV09SSy9NRURJQV9FUlJfREVDT0RFLgogICAgIGlmIChlcnJvciA9PSBNZWRpYVBsYXll
cjo6TmV0d29ya0Vycm9yKQogICAgICAgICBtX2Vycm9yID0gTWVkaWFFcnJvcjo6Y3JlYXRlKE1l
ZGlhRXJyb3I6Ok1FRElBX0VSUl9ORVRXT1JLKTsKQEAgLTIyMDgsMjAgKzIyMDgsMjAgQEAgc3Rh
dGljIFN0cmluZyBzdHJpbmdGb3JOZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0
ZSBzdGF0ZSkKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGUgZXJyb3IpCiB7CiAgICAgc3RvcFBlcmlvZGljVGltZXJzKCk7
Ci0gICAgCisKICAgICAvLyBJZiB3ZSBmYWlsZWQgd2hpbGUgdHJ5aW5nIHRvIGxvYWQgYSA8c291
cmNlPiBlbGVtZW50LCB0aGUgbW92aWUgd2FzIG5ldmVyIHBhcnNlZCwgYW5kIHRoZXJlIGFyZSBt
b3JlCiAgICAgLy8gPHNvdXJjZT4gY2hpbGRyZW4sIHNjaGVkdWxlIHRoZSBuZXh0IG9uZQogICAg
IGlmIChtX3JlYWR5U3RhdGUgPCBIQVZFX01FVEFEQVRBICYmIG1fbG9hZFN0YXRlID09IExvYWRp
bmdGcm9tU291cmNlRWxlbWVudCkgewotICAgICAgICAKKwogICAgICAgICAvLyByZXNvdXJjZSBz
ZWxlY3Rpb24gYWxnb3JpdGhtCiAgICAgICAgIC8vIFN0ZXAgOS5PdGhlcndpc2UuOSAtIEZhaWxl
ZCB3aXRoIGVsZW1lbnRzOiBRdWV1ZSBhIHRhc2ssIHVzaW5nIHRoZSBET00gbWFuaXB1bGF0aW9u
IHRhc2sgc291cmNlLCB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGVycm9yIGF0IHRoZSBj
YW5kaWRhdGUgZWxlbWVudC4KICAgICAgICAgaWYgKG1fY3VycmVudFNvdXJjZU5vZGUpCiAgICAg
ICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlLT5zY2hlZHVsZUVycm9yRXZlbnQoKTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c2V0TmV0
d29ya1N0YXRlKCVwKSAtIGVycm9yIGV2ZW50IG5vdCBzZW50LCA8c291cmNlPiB3YXMgcmVtb3Zl
ZCIsIHRoaXMpOwotICAgICAgICAKKwogICAgICAgICAvLyA5Lk90aGVyd2lzZS4xMCAtIEFzeW5j
aHJvbm91c2x5IGF3YWl0IGEgc3RhYmxlIHN0YXRlLiBUaGUgc3luY2hyb25vdXMgc2VjdGlvbiBj
b25zaXN0cyBvZiBhbGwgdGhlIHJlbWFpbmluZyBzdGVwcyBvZiB0aGlzIGFsZ29yaXRobSB1bnRp
bCB0aGUgYWxnb3JpdGhtIHNheXMgdGhlIHN5bmNocm9ub3VzIHNlY3Rpb24gaGFzIGVuZGVkLgot
ICAgICAgICAKKwogICAgICAgICAvLyA5Lk90aGVyd2lzZS4xMSAtIEZvcmdldCB0aGUgbWVkaWEg
ZWxlbWVudCdzIG1lZGlhLXJlc291cmNlLXNwZWNpZmljIHRyYWNrcy4KICAgICAgICAgZm9yZ2V0
UmVzb3VyY2VTcGVjaWZpY1RyYWNrcygpOwogCkBAIC0yMjMyLDE1ICsyMjMyLDE1IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3Jr
U3RhdGUgZXJyb3IpCiAgICAgICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojpz
ZXROZXR3b3JrU3RhdGUoJXApIC0gbm8gbW9yZSA8c291cmNlPiBlbGVtZW50cywgd2FpdGluZyIs
IHRoaXMpOwogICAgICAgICAgICAgd2FpdEZvclNvdXJjZUNoYW5nZSgpOwogICAgICAgICB9Ci0g
ICAgICAgIAorCiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBpZiAoKGVycm9y
ID09IE1lZGlhUGxheWVyOjpOZXR3b3JrRXJyb3IgJiYgbV9yZWFkeVN0YXRlID49IEhBVkVfTUVU
QURBVEEpIHx8IGVycm9yID09IE1lZGlhUGxheWVyOjpEZWNvZGVFcnJvcikKICAgICAgICAgbWVk
aWFMb2FkaW5nRmFpbGVkRmF0YWxseShlcnJvcik7CiAgICAgZWxzZSBpZiAoKGVycm9yID09IE1l
ZGlhUGxheWVyOjpGb3JtYXRFcnJvciB8fCBlcnJvciA9PSBNZWRpYVBsYXllcjo6TmV0d29ya0Vy
cm9yKSAmJiBtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nRnJvbVNyY0F0dHIpCiAgICAgICAgIG5vbmVT
dXBwb3J0ZWQoKTsKLSAgICAKKwogICAgIHVwZGF0ZURpc3BsYXlTdGF0ZSgpOwogICAgIGlmICho
YXNNZWRpYUNvbnRyb2xzKCkpIHsKICAgICAgICAgbWVkaWFDb250cm9scygpLT5yZXNldCgpOwpA
QCAtMjM2MCw3ICsyMzYwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRl
KE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHN0YXRlKQogICAgICAgICByZXR1cm47CiAgICAgYm9v
bCB0cmFja3NBcmVSZWFkeSA9IHRydWU7CiAjZW5kaWYKLSAgICAKKwogICAgIGlmICh0cmFja3NB
cmVSZWFkeSkKICAgICAgICAgbV9yZWFkeVN0YXRlID0gbmV3U3RhdGU7CiAgICAgZWxzZSB7CkBA
IC0yMzcxLDcgKzIzNzEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUo
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgc3RhdGUpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IG1fcmVhZHlTdGF0ZSA9IEhBVkVfQ1VSUkVOVF9EQVRBOwogICAgIH0KLSAgICAKKwogICAgIGlm
IChvbGRTdGF0ZSA+IG1fcmVhZHlTdGF0ZU1heGltdW0pCiAgICAgICAgIG1fcmVhZHlTdGF0ZU1h
eGltdW0gPSBvbGRTdGF0ZTsKIApAQCAtMjYwOCw3ICsyNjA4LDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjphZGRQbGF5ZWRSYW5nZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRp
YVRpbWUmIGUKICAgICBpZiAoIW1fcGxheWVkVGltZVJhbmdlcykKICAgICAgICAgbV9wbGF5ZWRU
aW1lUmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7CiAgICAgbV9wbGF5ZWRUaW1lUmFuZ2Vz
LT5yYW5nZXMoKS5hZGQoc3RhcnQsIGVuZCk7Ci19ICAKK30KIAogYm9vbCBIVE1MTWVkaWFFbGVt
ZW50OjpzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3QKIHsKQEAgLTI3MzAsOCArMjczMCw4IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1Rhc2soKQogICAgIG1fcGVuZGluZ1NlZWsgPSBudWxs
cHRyOwogCiAgICAgQVNTRVJUKG5lZ2F0aXZlVG9sZXJhbmNlID49IE1lZGlhVGltZTo6emVyb1Rp
bWUoKSk7Ci0gICAgCi0gICAgLy8gNiAtIElmIHRoZSBuZXcgcGxheWJhY2sgcG9zaXRpb24gaXMg
bGF0ZXIgdGhhbiB0aGUgZW5kIG9mIHRoZSBtZWRpYSByZXNvdXJjZSwgdGhlbiBsZXQgaXQgYmUg
dGhlIGVuZCAKKworICAgIC8vIDYgLSBJZiB0aGUgbmV3IHBsYXliYWNrIHBvc2l0aW9uIGlzIGxh
dGVyIHRoYW4gdGhlIGVuZCBvZiB0aGUgbWVkaWEgcmVzb3VyY2UsIHRoZW4gbGV0IGl0IGJlIHRo
ZSBlbmQKICAgICAvLyBvZiB0aGUgbWVkaWEgcmVzb3VyY2UgaW5zdGVhZC4KICAgICB0aW1lID0g
c3RkOjptaW4odGltZSwgZHVyYXRpb25NZWRpYVRpbWUoKSk7CiAKQEAgLTI3NDIsNyArMjc0Miw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1Rhc2soKQogICAgIC8vIEFzayB0aGUgbWVk
aWEgZW5naW5lIGZvciB0aGUgdGltZSB2YWx1ZSBpbiB0aGUgbW92aWUncyB0aW1lIHNjYWxlIGJl
Zm9yZSBjb21wYXJpbmcgd2l0aCBjdXJyZW50IHRpbWUuIFRoaXMKICAgICAvLyBpcyBuZWNlc3Nh
cnkgYmVjYXVzZSBpZiB0aGUgc2VlayB0aW1lIGlzIG5vdCBlcXVhbCB0byBjdXJyZW50VGltZSBi
dXQgdGhlIGRlbHRhIGlzIGxlc3MgdGhhbiB0aGUgbW92aWUncwogICAgIC8vIHRpbWUgc2NhbGUs
IHdlIHdpbGwgYXNrIHRoZSBtZWRpYSBlbmdpbmUgdG8gInNlZWsiIHRvIHRoZSBjdXJyZW50IG1v
dmllIHRpbWUsIHdoaWNoIG1heSBiZSBhIG5vb3AgYW5kCi0gICAgLy8gbm90IGdlbmVyYXRlIGEg
dGltZWNoYW5nZWQgY2FsbGJhY2suIFRoaXMgbWVhbnMgbV9zZWVraW5nIHdpbGwgbmV2ZXIgYmUg
Y2xlYXJlZCBhbmQgd2Ugd2lsbCBuZXZlciAKKyAgICAvLyBub3QgZ2VuZXJhdGUgYSB0aW1lY2hh
bmdlZCBjYWxsYmFjay4gVGhpcyBtZWFucyBtX3NlZWtpbmcgd2lsbCBuZXZlciBiZSBjbGVhcmVk
IGFuZCB3ZSB3aWxsIG5ldmVyCiAgICAgLy8gZmlyZSBhICdzZWVrZWQnIGV2ZW50LgogI2lmICFM
T0dfRElTQUJMRUQKICAgICBNZWRpYVRpbWUgbWVkaWFUaW1lID0gbV9wbGF5ZXItPm1lZGlhVGlt
ZUZvclRpbWVWYWx1ZSh0aW1lKTsKQEAgLTI3NTIsNyArMjc1Miw3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c2Vla1Rhc2soKQogICAgIHRpbWUgPSBtX3BsYXllci0+bWVkaWFUaW1lRm9yVGlt
ZVZhbHVlKHRpbWUpOwogCiAgICAgLy8gOCAtIElmIHRoZSAocG9zc2libHkgbm93IGNoYW5nZWQp
IG5ldyBwbGF5YmFjayBwb3NpdGlvbiBpcyBub3QgaW4gb25lIG9mIHRoZSByYW5nZXMgZ2l2ZW4g
aW4gdGhlCi0gICAgLy8gc2Vla2FibGUgYXR0cmlidXRlLCB0aGVuIGxldCBpdCBiZSB0aGUgcG9z
aXRpb24gaW4gb25lIG9mIHRoZSByYW5nZXMgZ2l2ZW4gaW4gdGhlIHNlZWthYmxlIGF0dHJpYnV0
ZSAKKyAgICAvLyBzZWVrYWJsZSBhdHRyaWJ1dGUsIHRoZW4gbGV0IGl0IGJlIHRoZSBwb3NpdGlv
biBpbiBvbmUgb2YgdGhlIHJhbmdlcyBnaXZlbiBpbiB0aGUgc2Vla2FibGUgYXR0cmlidXRlCiAg
ICAgLy8gdGhhdCBpcyB0aGUgbmVhcmVzdCB0byB0aGUgbmV3IHBsYXliYWNrIHBvc2l0aW9uLiAu
Li4gSWYgdGhlcmUgYXJlIG5vIHJhbmdlcyBnaXZlbiBpbiB0aGUgc2Vla2FibGUKICAgICAvLyBh
dHRyaWJ1dGUgdGhlbiBzZXQgdGhlIHNlZWtpbmcgSURMIGF0dHJpYnV0ZSB0byBmYWxzZSBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IHNlZWthYmxlUmFuZ2Vz
ID0gc2Vla2FibGUoKTsKQEAgLTI4NTksMTEgKzI4NTksMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpyZWZyZXNoQ2FjaGVkVGltZSgpIGNvbnN0CiAKICAgICBtX2NhY2hlZFRpbWUgPSBtX3Bs
YXllci0+Y3VycmVudFRpbWUoKTsKICAgICBpZiAoIW1fY2FjaGVkVGltZSkgewotICAgICAgICAv
LyBEbyBub3QgdXNlIG1fY2FjaGVkVGltZSB1bnRpbCB0aGUgbWVkaWEgZW5naW5lIHJldHVybnMg
YSBub24temVybyB2YWx1ZSBiZWNhdXNlIHdlIGNhbid0IAotICAgICAgICAvLyBlc3RpbWF0ZSBj
dXJyZW50IHRpbWUgdW50aWwgcGxheWJhY2sgYWN0dWFsbHkgYmVnaW5zLiAKLSAgICAgICAgaW52
YWxpZGF0ZUNhY2hlZFRpbWUoKTsgCi0gICAgICAgIHJldHVybjsgCi0gICAgfSAKKyAgICAgICAg
Ly8gRG8gbm90IHVzZSBtX2NhY2hlZFRpbWUgdW50aWwgdGhlIG1lZGlhIGVuZ2luZSByZXR1cm5z
IGEgbm9uLXplcm8gdmFsdWUgYmVjYXVzZSB3ZSBjYW4ndAorICAgICAgICAvLyBlc3RpbWF0ZSBj
dXJyZW50IHRpbWUgdW50aWwgcGxheWJhY2sgYWN0dWFsbHkgYmVnaW5zLgorICAgICAgICBpbnZh
bGlkYXRlQ2FjaGVkVGltZSgpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgbV9jbG9j
a1RpbWVBdExhc3RDYWNoZWRUaW1lVXBkYXRlID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCk7CiB9CkBAIC0yOTQ4LDcgKzI5NDgsNyBAQCBNZWRpYVRpbWUgSFRNTE1lZGlhRWxlbWVudDo6
Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiAKICAgICBpZiAobV9jYWNoZWRUaW1lLmlzSW52YWxp
ZCgpKQogICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotICAgIAorCiAgICAg
cmV0dXJuIG1fY2FjaGVkVGltZTsKIH0KIApAQCAtMzA5Niw3ICszMDk2LDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXRXZWJraXRQcmVzZXJ2ZXNQaXRjaChib29sIHByZXNlcnZlc1BpdGNo
KQogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldFdlYmtpdFByZXNlcnZlc1Bp
dGNoKCVwKSAtICVzIiwgdGhpcywgYm9vbFN0cmluZyhwcmVzZXJ2ZXNQaXRjaCkpOwogCiAgICAg
bV93ZWJraXRQcmVzZXJ2ZXNQaXRjaCA9IHByZXNlcnZlc1BpdGNoOwotICAgIAorCiAgICAgaWYg
KCFtX3BsYXllcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0zMTE0LDcgKzMxMTQsNyBAQCBib29s
IEhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkKCkgY29uc3QKICNlbmRpZgogCiAgICAgLy8gNC44LjEw
LjggUGxheWluZyB0aGUgbWVkaWEgcmVzb3VyY2UKLSAgICAvLyBUaGUgZW5kZWQgYXR0cmlidXRl
IG11c3QgcmV0dXJuIHRydWUgaWYgdGhlIG1lZGlhIGVsZW1lbnQgaGFzIGVuZGVkIAorICAgIC8v
IFRoZSBlbmRlZCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4gdHJ1ZSBpZiB0aGUgbWVkaWEgZWxlbWVu
dCBoYXMgZW5kZWQKICAgICAvLyBwbGF5YmFjayBhbmQgdGhlIGRpcmVjdGlvbiBvZiBwbGF5YmFj
ayBpcyBmb3J3YXJkcywgYW5kIGZhbHNlIG90aGVyd2lzZS4KICAgICByZXR1cm4gZW5kZWRQbGF5
YmFjaygpICYmIHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpID4gMDsKIH0KQEAgLTMyMDYsNyArMzIw
Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheSgpCiBib29sIEhUTUxNZWRpYUVsZW1l
bnQ6OnBsYXlJbnRlcm5hbCgpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6
cGxheUludGVybmFsKCVwKSIsIHRoaXMpOwotICAgIAorCiAgICAgaWYgKCFtX21lZGlhU2Vzc2lv
bi0+Y2xpZW50V2lsbEJlZ2luUGxheWJhY2soKSkgewogICAgICAgICBMT0coTWVkaWEsICIgIHJl
dHVybmluZyBiZWNhdXNlIG9mIGludGVycnVwdGlvbiIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsg
Ly8gVHJlYXQgYXMgc3VjY2VzcyBiZWNhdXNlIHdlIHdpbGwgYmVnaW4gcGxheWJhY2sgb24gY2Vz
c2F0aW9uIG9mIHRoZSBpbnRlcnJ1cHRpb24uCkBAIC0zMjc4LDkgKzMyNzgsOSBAQCBib29sIEhU
TUxNZWRpYUVsZW1lbnQ6OnBsYXlJbnRlcm5hbCgpCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBh
dXNlKCkKIHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSglcCkiLCB0
aGlzKTsKLSAgICAKKwogICAgIG1fdGVtcG9yYXJpbHlBbGxvd2luZ0lubGluZVBsYXliYWNrQWZ0
ZXJGdWxsc2NyZWVuID0gZmFsc2U7Ci0gICAgCisKICAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5w
bGF5YmFja1Blcm1pdHRlZCgqdGhpcykpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzQ3MCw3ICsz
NDcwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0b2dnbGVQbGF5U3RhdGUoKQogICAgIGlm
IChjYW5QbGF5KCkpIHsKICAgICAgICAgdXBkYXRlUGxheWJhY2tSYXRlKCk7CiAgICAgICAgIHBs
YXlJbnRlcm5hbCgpOwotICAgIH0gZWxzZSAKKyAgICB9IGVsc2UKICAgICAgICAgcGF1c2VJbnRl
cm5hbCgpOwogfQogCkBAIC0zNDgwLDEzICszNDgwLDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6YmVnaW5TY3J1YmJpbmcoKQogCiAgICAgaWYgKCFwYXVzZWQoKSkgewogICAgICAgICBpZiAo
ZW5kZWQoKSkgewotICAgICAgICAgICAgLy8gQmVjYXVzZSBhIG1lZGlhIGVsZW1lbnQgc3RheXMg
aW4gbm9uLXBhdXNlZCBzdGF0ZSB3aGVuIGl0IHJlYWNoZXMgZW5kLCBwbGF5YmFjayByZXN1bWVz
IAotICAgICAgICAgICAgLy8gd2hlbiB0aGUgc2xpZGVyIGlzIGRyYWdnZWQgZnJvbSB0aGUgZW5k
IHRvIGFub3RoZXIgcG9zaXRpb24gdW5sZXNzIHdlIHBhdXNlIGZpcnN0LiBEbyAKKyAgICAgICAg
ICAgIC8vIEJlY2F1c2UgYSBtZWRpYSBlbGVtZW50IHN0YXlzIGluIG5vbi1wYXVzZWQgc3RhdGUg
d2hlbiBpdCByZWFjaGVzIGVuZCwgcGxheWJhY2sgcmVzdW1lcworICAgICAgICAgICAgLy8gd2hl
biB0aGUgc2xpZGVyIGlzIGRyYWdnZWQgZnJvbSB0aGUgZW5kIHRvIGFub3RoZXIgcG9zaXRpb24g
dW5sZXNzIHdlIHBhdXNlIGZpcnN0LiBEbwogICAgICAgICAgICAgLy8gYSAiaGFyZCBwYXVzZSIg
c28gYW4gZXZlbnQgaXMgZ2VuZXJhdGVkLCBzaW5jZSB3ZSB3YW50IHRvIHN0YXkgcGF1c2VkIGFm
dGVyIHNjcnViYmluZyBmaW5pc2hlcy4KICAgICAgICAgICAgIHBhdXNlKCk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAvLyBOb3QgYXQgdGhlIGVuZCBidXQgd2Ugc3RpbGwgd2FudCB0
byBwYXVzZSBwbGF5YmFjayBzbyB0aGUgbWVkaWEgZW5naW5lIGRvZXNuJ3QgdHJ5IHRvCi0gICAg
ICAgICAgICAvLyBjb250aW51ZSBwbGF5aW5nIGR1cmluZyBzY3J1YmJpbmcuIFBhdXNlIHdpdGhv
dXQgZ2VuZXJhdGluZyBhbiBldmVudCBhcyB3ZSB3aWxsIAorICAgICAgICAgICAgLy8gY29udGlu
dWUgcGxheWluZyBkdXJpbmcgc2NydWJiaW5nLiBQYXVzZSB3aXRob3V0IGdlbmVyYXRpbmcgYW4g
ZXZlbnQgYXMgd2Ugd2lsbAogICAgICAgICAgICAgLy8gdW5wYXVzZSBhZnRlciBzY3J1YmJpbmcg
ZmluaXNoZXMuCiAgICAgICAgICAgICBzZXRQYXVzZWRJbnRlcm5hbCh0cnVlKTsKICAgICAgICAg
fQpAQCAtMzU4MCw3ICszNTgwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1By
b2dyZXNzVGltZXJGaXJlZCgpCiAgICAgICAgICAgICBwYXVzZUludGVybmFsKCk7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgCisKICAgICBzY2hlZHVsZVRpbWV1cGRhdGVFdmVudCh0cnVlKTsKIAog
ICAgIGlmICghcmVxdWVzdGVkUGxheWJhY2tSYXRlKCkpCkBAIC0zNjY2LDcgKzM2NjYsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUmIHRyYWNrKQogICAgIC8vIDEuIEFzc29jaWF0ZSB0aGUgcmVsZXZhbnQg
ZGF0YSB3aXRoIGEgbmV3IHRleHQgdHJhY2sgYW5kIGl0cyBjb3JyZXNwb25kaW5nIG5ldyBUZXh0
VHJhY2sgb2JqZWN0LgogICAgIGF1dG8gdGV4dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVh
dGUoKkFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgdHJh
Y2spOwogICAgIHRleHRUcmFjay0+c2V0TWVkaWFFbGVtZW50KHRoaXMpOwotICAgIAorCiAgICAg
Ly8gMi4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydzIGtpbmQsIGxhYmVsLCBhbmQgbGFuZ3VhZ2Ug
YmFzZWQgb24gdGhlIHNlbWFudGljcyBvZiB0aGUgcmVsZXZhbnQgZGF0YSwKICAgICAvLyBhcyBk
ZWZpbmVkIGJ5IHRoZSByZWxldmFudCBzcGVjaWZpY2F0aW9uLiBJZiB0aGVyZSBpcyBubyBsYWJl
bCBpbiB0aGF0IGRhdGEsIHRoZW4gdGhlIGxhYmVsIG11c3QKICAgICAvLyBiZSBzZXQgdG8gdGhl
IGVtcHR5IHN0cmluZy4KQEAgLTM2NzcsMTUgKzM2NzcsMTUgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0
cmFjaykKICAgICAvLyA1LiBQb3B1bGF0ZSB0aGUgbmV3IHRleHQgdHJhY2sncyBsaXN0IG9mIGN1
ZXMgd2l0aCB0aGUgY3VlcyBwYXJzZWQgc28gZmFyLCBmb2xsbG93aW5nIHRoZSBndWlkZWxpbmVz
IGZvciBleHBvc2luZwogICAgIC8vIGN1ZXMsIGFuZCBiZWdpbiB1cGRhdGluZyBpdCBkeW5hbWlj
YWxseSBhcyBuZWNlc3NhcnkuCiAgICAgLy8gICAtIFRoZXNzIGFyZSBhbGwgZG9uZSBieSB0aGUg
bWVkaWEgZW5naW5lLgotICAgIAorCiAgICAgLy8gNi4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydz
IHJlYWRpbmVzcyBzdGF0ZSB0byBsb2FkZWQuCiAgICAgdGV4dFRyYWNrLT5zZXRSZWFkaW5lc3NT
dGF0ZShUZXh0VHJhY2s6OkxvYWRlZCk7Ci0gICAgCisKICAgICAvLyA3LiBTZXQgdGhlIG5ldyB0
ZXh0IHRyYWNrJ3MgbW9kZSB0byB0aGUgbW9kZSBjb25zaXN0ZW50IHdpdGggdGhlIHVzZXIncyBw
cmVmZXJlbmNlcyBhbmQgdGhlIHJlcXVpcmVtZW50cyBvZgogICAgIC8vIHRoZSByZWxldmFudCBz
cGVjaWZpY2F0aW9uIGZvciB0aGUgZGF0YS4KICAgICAvLyAgLSBUaGlzIHdpbGwgaGFwcGVuIGlu
IGNvbmZpZ3VyZVRleHRUcmFja3MoKQogICAgIHNjaGVkdWxlRGVsYXllZEFjdGlvbihDb25maWd1
cmVUZXh0VHJhY2tzKTsKLSAgICAKKwogICAgIC8vIDguIEFkZCB0aGUgbmV3IHRleHQgdHJhY2sg
dG8gdGhlIG1lZGlhIGVsZW1lbnQncyBsaXN0IG9mIHRleHQgdHJhY2tzLgogICAgIC8vIDkuIEZp
cmUgYW4gZXZlbnQgd2l0aCB0aGUgbmFtZSBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUg
YW5kIGlzIG5vdCBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50CiAgICAg
Ly8gaW50ZXJmYWNlLCB3aXRoIHRoZSB0cmFjayBhdHRyaWJ1dGUgaW5pdGlhbGl6ZWQgdG8gdGhl
IHRleHQgdHJhY2sncyBUZXh0VHJhY2sgb2JqZWN0LCBhdCB0aGUgbWVkaWEgZWxlbWVudCdzCkBA
IC0zNzk5LDcgKzM3OTksNyBAQCBFeGNlcHRpb25PcjxUZXh0VHJhY2smPiBIVE1MTWVkaWFFbGVt
ZW50OjphZGRUZXh0VHJhY2soY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdAogICAgIC8vIDMuIElm
IHRoZSBsYW5ndWFnZSBhcmd1bWVudCB3YXMgb21pdHRlZCwgbGV0IGxhbmd1YWdlIGJlIHRoZSBl
bXB0eSBzdHJpbmcuCiAgICAgLy8gNC4gQ3JlYXRlIGEgbmV3IFRleHRUcmFjayBvYmplY3QuCiAK
LSAgICAvLyA1LiBDcmVhdGUgYSBuZXcgdGV4dCB0cmFjayBjb3JyZXNwb25kaW5nIHRvIHRoZSBu
ZXcgb2JqZWN0LCBhbmQgc2V0IGl0cyB0ZXh0IHRyYWNrIGtpbmQgdG8ga2luZCwgaXRzIHRleHQg
CisgICAgLy8gNS4gQ3JlYXRlIGEgbmV3IHRleHQgdHJhY2sgY29ycmVzcG9uZGluZyB0byB0aGUg
bmV3IG9iamVjdCwgYW5kIHNldCBpdHMgdGV4dCB0cmFjayBraW5kIHRvIGtpbmQsIGl0cyB0ZXh0
CiAgICAgLy8gdHJhY2sgbGFiZWwgdG8gbGFiZWwsIGl0cyB0ZXh0IHRyYWNrIGxhbmd1YWdlIHRv
IGxhbmd1YWdlLi4uCiAgICAgYXV0byB0cmFjayA9IFRleHRUcmFjazo6Y3JlYXRlKEFjdGl2ZURP
TU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzLCBraW5kLCBlbXB0eVN0cmlu
ZygpLCBsYWJlbCwgbGFuZ3VhZ2UpOwogICAgIGF1dG8mIHRyYWNrUmVmZXJlbmNlID0gdHJhY2su
Z2V0KCk7CkBAIC0zODQ4LDggKzM4NDgsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFk
ZFRleHRUcmFjayhIVE1MVHJhY2tFbGVtZW50JiB0cmFja0VsZW1lbnQpCiAgICAgQVNTRVJUKHRy
YWNrRWxlbWVudC5oYXNUYWdOYW1lKHRyYWNrVGFnKSk7CiAKICAgICAvLyA0LjguMTAuMTIuMyBT
b3VyY2luZyBvdXQtb2YtYmFuZCB0ZXh0IHRyYWNrcwotICAgIC8vIFdoZW4gYSB0cmFjayBlbGVt
ZW50J3MgcGFyZW50IGVsZW1lbnQgY2hhbmdlcyBhbmQgdGhlIG5ldyBwYXJlbnQgaXMgYSBtZWRp
YSBlbGVtZW50LCAKLSAgICAvLyB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgYWRkIHRoZSB0cmFj
ayBlbGVtZW50J3MgY29ycmVzcG9uZGluZyB0ZXh0IHRyYWNrIHRvIHRoZSAKKyAgICAvLyBXaGVu
IGEgdHJhY2sgZWxlbWVudCdzIHBhcmVudCBlbGVtZW50IGNoYW5nZXMgYW5kIHRoZSBuZXcgcGFy
ZW50IGlzIGEgbWVkaWEgZWxlbWVudCwKKyAgICAvLyB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3Qg
YWRkIHRoZSB0cmFjayBlbGVtZW50J3MgY29ycmVzcG9uZGluZyB0ZXh0IHRyYWNrIHRvIHRoZQog
ICAgIC8vIG1lZGlhIGVsZW1lbnQncyBsaXN0IG9mIHRleHQgdHJhY2tzIC4uLiBbY29udGludWVz
IGluIFRleHRUcmFja0xpc3Q6OmFwcGVuZF0KICAgICBhZGRUZXh0VHJhY2sodHJhY2tFbGVtZW50
LnRyYWNrKCkpOwogCkBAIC0zODc5LDEwICszODc5LDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6ZGlkUmVtb3ZlVGV4dFRyYWNrKEhUTUxUcmFja0VsZW1lbnQmIHRyYWNrRWxlbWVudCkKIAog
ICAgIGlmICghbV90ZXh0VHJhY2tzKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyA0
LjguMTAuMTIuMyBTb3VyY2luZyBvdXQtb2YtYmFuZCB0ZXh0IHRyYWNrcwotICAgIC8vIFdoZW4g
YSB0cmFjayBlbGVtZW50J3MgcGFyZW50IGVsZW1lbnQgY2hhbmdlcyBhbmQgdGhlIG9sZCBwYXJl
bnQgd2FzIGEgbWVkaWEgZWxlbWVudCwgCi0gICAgLy8gdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0
IHJlbW92ZSB0aGUgdHJhY2sgZWxlbWVudCdzIGNvcnJlc3BvbmRpbmcgdGV4dCB0cmFjayBmcm9t
IHRoZSAKKyAgICAvLyBXaGVuIGEgdHJhY2sgZWxlbWVudCdzIHBhcmVudCBlbGVtZW50IGNoYW5n
ZXMgYW5kIHRoZSBvbGQgcGFyZW50IHdhcyBhIG1lZGlhIGVsZW1lbnQsCisgICAgLy8gdGhlbiB0
aGUgdXNlciBhZ2VudCBtdXN0IHJlbW92ZSB0aGUgdHJhY2sgZWxlbWVudCdzIGNvcnJlc3BvbmRp
bmcgdGV4dCB0cmFjayBmcm9tIHRoZQogICAgIC8vIG1lZGlhIGVsZW1lbnQncyBsaXN0IG9mIHRl
eHQgdHJhY2tzLgogICAgIHJlbW92ZVRleHRUcmFjayh0ZXh0VHJhY2spOwogCkBAIC00MDA5LDEy
ICs0MDA5LDEyIEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udHJvbGxlckpTVmFsdWUoSlNDOjpF
eGVjU3RhdGUmIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0JiBnCiAgICAgSlNDOjpWTSYgdm0gPSBn
bG9iYWxPYmplY3Qudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgYXV0byBtZWRpYUpTV3JhcHBlciA9IHRvSlMoJmV4ZWMsICZnbG9iYWxPYmplY3Qs
IG1lZGlhKTsKLSAgICAKKwogICAgIC8vIFJldHJpZXZlIHRoZSBjb250cm9sbGVyIHRocm91Z2gg
dGhlIEpTIG9iamVjdCBncmFwaAogICAgIEpTQzo6SlNPYmplY3QqIG1lZGlhSlNXcmFwcGVyT2Jq
ZWN0ID0ganNEeW5hbWljRG93bmNhc3Q8SlNDOjpKU09iamVjdCo+KHZtLCBtZWRpYUpTV3JhcHBl
cik7CiAgICAgaWYgKCFtZWRpYUpTV3JhcHBlck9iamVjdCkKICAgICAgICAgcmV0dXJuIEpTQzo6
anNOdWxsKCk7Ci0gICAgCisKICAgICBKU0M6OklkZW50aWZpZXIgY29udHJvbHNIb3N0ID0gSlND
OjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNvbnRyb2xzSG9zdCIpOwogICAgIEpTQzo6
SlNWYWx1ZSBjb250cm9sc0hvc3RKU1dyYXBwZXIgPSBtZWRpYUpTV3JhcHBlck9iamVjdC0+Z2V0
KCZleGVjLCBjb250cm9sc0hvc3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpT
Qzo6anNOdWxsKCkpOwpAQCAtNDIwNCwxOSArNDIwNCwxOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmNvbmZpZ3VyZVRleHRUcmFja3MoKQogICAgICAgICAgICAgY3VycmVudEdyb3VwLT5kZWZh
dWx0VHJhY2sgPSB0ZXh0VHJhY2s7CiAKICAgICAgICAgLy8gRG8gbm90IGFkZCB0aGlzIHRyYWNr
IHRvIHRoZSBncm91cCBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIGF1dG9tYXRpY2FsbHkgY29uZmln
dXJlZAotICAgICAgICAvLyBhcyB3ZSBvbmx5IHdhbnQgdG8gY2FsbCBjb25maWd1cmVUZXh0VHJh
Y2sgb25jZSBwZXIgdHJhY2sgc28gdGhhdCBhZGRpbmcgYW5vdGhlciAKLSAgICAgICAgLy8gdHJh
Y2sgYWZ0ZXIgdGhlIGluaXRpYWwgY29uZmlndXJhdGlvbiBkb2Vzbid0IHJlY29uZmlndXJlIGV2
ZXJ5IHRyYWNrIC0gb25seSB0aG9zZSAKLSAgICAgICAgLy8gdGhhdCBzaG91bGQgYmUgY2hhbmdl
ZCBieSB0aGUgbmV3IGFkZGl0aW9uLiBGb3IgZXhhbXBsZSBhbGwgbWV0YWRhdGEgdHJhY2tzIGFy
ZSAKLSAgICAgICAgLy8gZGlzYWJsZWQgYnkgZGVmYXVsdCwgYW5kIHdlIGRvbid0IHdhbnQgYSB0
cmFjayB0aGF0IGhhcyBiZWVuIGVuYWJsZWQgYnkgc2NyaXB0IAorICAgICAgICAvLyBhcyB3ZSBv
bmx5IHdhbnQgdG8gY2FsbCBjb25maWd1cmVUZXh0VHJhY2sgb25jZSBwZXIgdHJhY2sgc28gdGhh
dCBhZGRpbmcgYW5vdGhlcgorICAgICAgICAvLyB0cmFjayBhZnRlciB0aGUgaW5pdGlhbCBjb25m
aWd1cmF0aW9uIGRvZXNuJ3QgcmVjb25maWd1cmUgZXZlcnkgdHJhY2sgLSBvbmx5IHRob3NlCisg
ICAgICAgIC8vIHRoYXQgc2hvdWxkIGJlIGNoYW5nZWQgYnkgdGhlIG5ldyBhZGRpdGlvbi4gRm9y
IGV4YW1wbGUgYWxsIG1ldGFkYXRhIHRyYWNrcyBhcmUKKyAgICAgICAgLy8gZGlzYWJsZWQgYnkg
ZGVmYXVsdCwgYW5kIHdlIGRvbid0IHdhbnQgYSB0cmFjayB0aGF0IGhhcyBiZWVuIGVuYWJsZWQg
Ynkgc2NyaXB0CiAgICAgICAgIC8vIHRvIGJlIGRpc2FibGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBh
IG5ldyBtZXRhZGF0YSB0cmFjayBpcyBhZGRlZCBsYXRlci4KICAgICAgICAgaWYgKHRleHRUcmFj
ay0+aGFzQmVlbkNvbmZpZ3VyZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAK
KwogICAgICAgICBpZiAodGV4dFRyYWNrLT5sYW5ndWFnZSgpLmxlbmd0aCgpKQogICAgICAgICAg
ICAgY3VycmVudEdyb3VwLT5oYXNTcmNMYW5nID0gdHJ1ZTsKICAgICAgICAgY3VycmVudEdyb3Vw
LT50cmFja3MuYXBwZW5kKHRleHRUcmFjayk7CiAgICAgfQotICAgIAorCiAgICAgaWYgKGNhcHRp
b25BbmRTdWJ0aXRsZVRyYWNrcy50cmFja3Muc2l6ZSgpKQogICAgICAgICBjb25maWd1cmVUZXh0
VHJhY2tHcm91cChjYXB0aW9uQW5kU3VidGl0bGVUcmFja3MpOwogICAgIGlmIChkZXNjcmlwdGlv
blRyYWNrcy50cmFja3Muc2l6ZSgpKQpAQCAtNDI4OSw3ICs0Mjg5LDcgQEAgVVJMIEhUTUxNZWRp
YUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZChDb250ZW50VHlwZSogY29udGVudFR5cGUs
IFN0cmluZyoga2UKICNlbmRpZgogICAgICAgICBpZiAobWVkaWFVUkwuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgZ290byBDaGVja0FnYWluOwotICAgICAgICAKKwogICAgICAgICBpZiAoYXV0byog
bWVkaWEgPSBzb3VyY2UtPnBhcnNlZE1lZGlhQXR0cmlidXRlKCkpIHsKICNpZiAhTE9HX0RJU0FC
TEVECiAgICAgICAgICAgICBpZiAoc2hvdWxkTG9nKQpAQCAtNDM3MywxMyArNDM3MywxMyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc0FkZGVkKEhUTUxTb3VyY2VFbGVtZW50JiBz
b3VyY2UpCiAgICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc0Fk
ZGVkKCVwKSAtICdzcmMnIGlzICVzIiwgdGhpcywgdXJsRm9yTG9nZ2luZ01lZGlhKHVybCkudXRm
OCgpLmRhdGEoKSk7CiAgICAgfQogI2VuZGlmCi0gICAgCisKICAgICAvLyBXZSBzaG91bGQgb25s
eSBjb25zaWRlciBhIDxzb3VyY2U+IGVsZW1lbnQgd2hlbiB0aGVyZSBpcyBub3Qgc3JjIGF0dHJp
YnV0ZSBhdCBhbGwuCiAgICAgaWYgKGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
c3JjQXR0cikpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIDQuOC44IC0gSWYgYSBzb3VyY2Ug
ZWxlbWVudCBpcyBpbnNlcnRlZCBhcyBhIGNoaWxkIG9mIGEgbWVkaWEgZWxlbWVudCB0aGF0IGhh
cyBubyBzcmMgCi0gICAgLy8gYXR0cmlidXRlIGFuZCB3aG9zZSBuZXR3b3JrU3RhdGUgaGFzIHRo
ZSB2YWx1ZSBORVRXT1JLX0VNUFRZLCB0aGUgdXNlciBhZ2VudCBtdXN0IGludm9rZSAKKyAgICAv
LyA0LjguOCAtIElmIGEgc291cmNlIGVsZW1lbnQgaXMgaW5zZXJ0ZWQgYXMgYSBjaGlsZCBvZiBh
IG1lZGlhIGVsZW1lbnQgdGhhdCBoYXMgbm8gc3JjCisgICAgLy8gYXR0cmlidXRlIGFuZCB3aG9z
ZSBuZXR3b3JrU3RhdGUgaGFzIHRoZSB2YWx1ZSBORVRXT1JLX0VNUFRZLCB0aGUgdXNlciBhZ2Vu
dCBtdXN0IGludm9rZQogICAgIC8vIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVzb3VyY2Ugc2VsZWN0
aW9uIGFsZ29yaXRobS4KICAgICBpZiAobV9uZXR3b3JrU3RhdGUgPT0gTkVUV09SS19FTVBUWSkg
ewogICAgICAgICBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVyID0gJnNvdXJjZTsKQEAgLTQzOTgs
MTcgKzQzOTgsMTcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VXYXNBZGRlZChIVE1M
U291cmNlRWxlbWVudCYgc291cmNlKQogCiAgICAgaWYgKG1fbmV4dENoaWxkTm9kZVRvQ29uc2lk
ZXIpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIDQuOC45LjUsIHJlc291cmNlIHNl
bGVjdGlvbiBhbGdvcml0aG0sIHNvdXJjZSBlbGVtZW50cyBzZWN0aW9uOgogICAgIC8vIDIxLiBX
YWl0IHVudGlsIHRoZSBub2RlIGFmdGVyIHBvaW50ZXIgaXMgYSBub2RlIG90aGVyIHRoYW4gdGhl
IGVuZCBvZiB0aGUgbGlzdC4gKFRoaXMgc3RlcCBtaWdodCB3YWl0IGZvcmV2ZXIuKQogICAgIC8v
IDIyLiBBc3luY2hyb25vdXNseSBhd2FpdCBhIHN0YWJsZSBzdGF0ZS4uLgotICAgIC8vIDIzLiBT
ZXQgdGhlIGVsZW1lbnQncyBkZWxheWluZy10aGUtbG9hZC1ldmVudCBmbGFnIGJhY2sgdG8gdHJ1
ZSAodGhpcyBkZWxheXMgdGhlIGxvYWQgZXZlbnQgYWdhaW4sIGluIGNhc2UgCisgICAgLy8gMjMu
IFNldCB0aGUgZWxlbWVudCdzIGRlbGF5aW5nLXRoZS1sb2FkLWV2ZW50IGZsYWcgYmFjayB0byB0
cnVlICh0aGlzIGRlbGF5cyB0aGUgbG9hZCBldmVudCBhZ2FpbiwgaW4gY2FzZQogICAgIC8vIGl0
IGhhc24ndCBiZWVuIGZpcmVkIHlldCkuCiAgICAgc2V0U2hvdWxkRGVsYXlMb2FkRXZlbnQodHJ1
ZSk7CiAKICAgICAvLyAyNC4gU2V0IHRoZSBuZXR3b3JrU3RhdGUgYmFjayB0byBORVRXT1JLX0xP
QURJTkcuCiAgICAgbV9uZXR3b3JrU3RhdGUgPSBORVRXT1JLX0xPQURJTkc7Ci0gICAgCisKICAg
ICAvLyAyNS4gSnVtcCBiYWNrIHRvIHRoZSBmaW5kIG5leHQgY2FuZGlkYXRlIHN0ZXAgYWJvdmUu
CiAgICAgbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlciA9ICZzb3VyY2U7CiAgICAgc2NoZWR1bGVO
ZXh0U291cmNlQ2hpbGQoKTsKQEAgLTQ0MzMsNyArNDQzMyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c291cmNlV2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCYgc291cmNlKQogICAgICAg
ICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VSZW1vdmVkKCVwKSAtIG1fbmV4
dENoaWxkTm9kZVRvQ29uc2lkZXIgc2V0IHRvICVwIiwgdGhpcywgbV9uZXh0Q2hpbGROb2RlVG9D
b25zaWRlci5nZXQoKSk7CiAgICAgfSBlbHNlIGlmICgmc291cmNlID09IG1fY3VycmVudFNvdXJj
ZU5vZGUpIHsKICAgICAgICAgLy8gQ2xlYXIgdGhlIGN1cnJlbnQgc291cmNlIG5vZGUgcG9pbnRl
ciwgYnV0IGRvbid0IGNoYW5nZSB0aGUgbW92aWUgYXMgdGhlIHNwZWMgc2F5czoKLSAgICAgICAg
Ly8gNC44LjggLSBEeW5hbWljYWxseSBtb2RpZnlpbmcgYSBzb3VyY2UgZWxlbWVudCBhbmQgaXRz
IGF0dHJpYnV0ZSB3aGVuIHRoZSBlbGVtZW50IGlzIGFscmVhZHkgCisgICAgICAgIC8vIDQuOC44
IC0gRHluYW1pY2FsbHkgbW9kaWZ5aW5nIGEgc291cmNlIGVsZW1lbnQgYW5kIGl0cyBhdHRyaWJ1
dGUgd2hlbiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5CiAgICAgICAgIC8vIGluc2VydGVkIGluIGEg
dmlkZW8gb3IgYXVkaW8gZWxlbWVudCB3aWxsIGhhdmUgbm8gZWZmZWN0LgogICAgICAgICBtX2N1
cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlh
RWxlbWVudDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX2N1cnJlbnRTb3VyY2VOb2RlIHNldCB0byAw
IiwgdGhpcyk7CkBAIC00NDU2LDggKzQ0NTYsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyVGltZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogICAgIC8vIDQuOC4xMC45IHN0ZXAg
MTQgJiAxNS4gIE5lZWRlZCBpZiBubyBSZWFkeVN0YXRlIGNoYW5nZSBpcyBhc3NvY2lhdGVkIHdp
dGggdGhlIHNlZWsuCiAgICAgaWYgKG1fc2Vla1JlcXVlc3RlZCAmJiBtX3JlYWR5U3RhdGUgPj0g
SEFWRV9DVVJSRU5UX0RBVEEgJiYgIW1fcGxheWVyLT5zZWVraW5nKCkpCiAgICAgICAgIGZpbmlz
aFNlZWsoKTsKLSAgICAKLSAgICAvLyBBbHdheXMgY2FsbCBzY2hlZHVsZVRpbWV1cGRhdGVFdmVu
dCB3aGVuIHRoZSBtZWRpYSBlbmdpbmUgcmVwb3J0cyBhIHRpbWUgZGlzY29udGludWl0eSwgCisK
KyAgICAvLyBBbHdheXMgY2FsbCBzY2hlZHVsZVRpbWV1cGRhdGVFdmVudCB3aGVuIHRoZSBtZWRp
YSBlbmdpbmUgcmVwb3J0cyBhIHRpbWUgZGlzY29udGludWl0eSwKICAgICAvLyBpdCB3aWxsIG9u
bHkgcXVldWUgYSAndGltZXVwZGF0ZScgZXZlbnQgaWYgd2UgaGF2ZW4ndCBhbHJlYWR5IHBvc3Rl
ZCBvbmUgYXQgdGhlIGN1cnJlbnQKICAgICAvLyBtb3ZpZSB0aW1lLgogICAgIGVsc2UKQEAgLTQ3
NzcsNyArNDc3Nyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJGaXJzdFZp
ZGVvRnJhbWVBdmFpbGFibGUoTWVkaWFQbGF5ZXIqKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVBsYXllckNoYXJhY3RlcmlzdGljQ2hhbmdlZChNZWRpYVBsYXllciopCiB7CiAgICAgTE9H
KE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5n
ZWQoJXApIiwgdGhpcyk7Ci0gICAgCisKICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNh
bGxiYWNrKCk7CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC00ODc2LDcgKzQ4NzYsNyBA
QCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnBvdGVudGlhbGx5UGxheWluZygpIGNvbnN0CiB7CiAg
ICAgaWYgKGlzQmxvY2tlZE9uTWVkaWFDb250cm9sbGVyKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAKKwogICAgIGlmICghY291bGRQbGF5SWZFbm91Z2hEYXRhKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApAQCAtNDkxMSw4ICs0OTExLDggQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50
OjplbmRlZFBsYXliYWNrKCkgY29uc3QKIAogICAgIC8vIDQuOC4xMC44IFBsYXlpbmcgdGhlIG1l
ZGlhIHJlc291cmNlCiAKLSAgICAvLyBBIG1lZGlhIGVsZW1lbnQgaXMgc2FpZCB0byBoYXZlIGVu
ZGVkIHBsYXliYWNrIHdoZW4gdGhlIGVsZW1lbnQncyAKLSAgICAvLyByZWFkeVN0YXRlIGF0dHJp
YnV0ZSBpcyBIQVZFX01FVEFEQVRBIG9yIGdyZWF0ZXIsIAorICAgIC8vIEEgbWVkaWEgZWxlbWVu
dCBpcyBzYWlkIHRvIGhhdmUgZW5kZWQgcGxheWJhY2sgd2hlbiB0aGUgZWxlbWVudCdzCisgICAg
Ly8gcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgSEFWRV9NRVRBREFUQSBvciBncmVhdGVyLAogICAg
IGlmIChtX3JlYWR5U3RhdGUgPCBIQVZFX01FVEFEQVRBKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKQEAgLTQ5MjMsNyArNDkyMyw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZW5kZWRQbGF5
YmFjaygpIGNvbnN0CiAgICAgaWYgKHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpID4gMCkKICAgICAg
ICAgcmV0dXJuIGR1ciA+IE1lZGlhVGltZTo6emVyb1RpbWUoKSAmJiBub3cgPj0gZHVyICYmICgh
bG9vcCgpIHx8IG1fbWVkaWFDb250cm9sbGVyKTsKIAotICAgIC8vIG9yIHRoZSBjdXJyZW50IHBs
YXliYWNrIHBvc2l0aW9uIGlzIHRoZSBlYXJsaWVzdCBwb3NzaWJsZSBwb3NpdGlvbiBhbmQgdGhl
IGRpcmVjdGlvbiAKKyAgICAvLyBvciB0aGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBpcyB0
aGUgZWFybGllc3QgcG9zc2libGUgcG9zaXRpb24gYW5kIHRoZSBkaXJlY3Rpb24KICAgICAvLyBv
ZiBwbGF5YmFjayBpcyBiYWNrd2FyZHMKICAgICBpZiAocmVxdWVzdGVkUGxheWJhY2tSYXRlKCkg
PCAwKQogICAgICAgICByZXR1cm4gbm93IDw9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKQEAgLTQ5
MzgsNyArNDkzOCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c3RvcHBlZER1ZVRvRXJyb3Jz
KCkgY29uc3QKICAgICAgICAgaWYgKCFzZWVrYWJsZVJhbmdlcy0+Y29udGFpbihjdXJyZW50VGlt
ZSgpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICAKKwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApAQCAtNDk1OSw3ICs0OTU5LDcgQEAgTWVkaWFUaW1lIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGxheWVyID8g
bV9wbGF5ZXItPm1heFRpbWVTZWVrYWJsZSgpIDogTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogfQot
ICAgIAorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVZvbHVtZSgpCiB7CiAgICAgaWYg
KCFtX3BsYXllcikKQEAgLTUwMjIsNyArNTAyMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dXBkYXRlUGxheVN0YXRlKFVwZGF0ZVN0YXRlIHVwZGF0ZVN0YXRlKQogICAgICAgICAgICAgbWVk
aWFDb250cm9scygpLT5wbGF5YmFja1N0b3BwZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICAKKwogICAgIGJvb2wgc2hvdWxkQmVQbGF5aW5nID0gcG90ZW50aWFsbHlQbGF5aW5nKCk7
CiAgICAgYm9vbCBwbGF5ZXJQYXVzZWQgPSBtX3BsYXllci0+cGF1c2VkKCk7CiAKQEAgLTUwNzks
NyArNTA3OSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheVN0YXRlKFVwZGF0
ZVN0YXRlIHVwZGF0ZVN0YXRlKQogICAgICAgICBpZiAoaGFzTWVkaWFDb250cm9scygpKQogICAg
ICAgICAgICAgbWVkaWFDb250cm9scygpLT5wbGF5YmFja1N0b3BwZWQoKTsKICAgICB9Ci0gICAg
CisKICAgICB1cGRhdGVNZWRpYUNvbnRyb2xsZXIoKTsKICAgICB1cGRhdGVSZW5kZXJlcigpOwog
CkBAIC01MTQ4LDkgKzUxNDgsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVzZXJDYW5jZWxs
ZWRMb2FkKCkKICAgICBkZXRhY2hNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKLSAgICAvLyA0IC0g
SWYgdGhlIG1lZGlhIGVsZW1lbnQncyByZWFkeVN0YXRlIGF0dHJpYnV0ZSBoYXMgYSB2YWx1ZSBl
cXVhbCB0byBIQVZFX05PVEhJTkcsIHNldCB0aGUgCi0gICAgLy8gZWxlbWVudCdzIG5ldHdvcmtT
dGF0ZSBhdHRyaWJ1dGUgdG8gdGhlIE5FVFdPUktfRU1QVFkgdmFsdWUgYW5kIHF1ZXVlIGEgdGFz
ayB0byBmaXJlIGEgCi0gICAgLy8gc2ltcGxlIGV2ZW50IG5hbWVkIGVtcHRpZWQgYXQgdGhlIGVs
ZW1lbnQuIE90aGVyd2lzZSwgc2V0IHRoZSBlbGVtZW50J3MgbmV0d29ya1N0YXRlIAorICAgIC8v
IDQgLSBJZiB0aGUgbWVkaWEgZWxlbWVudCdzIHJlYWR5U3RhdGUgYXR0cmlidXRlIGhhcyBhIHZh
bHVlIGVxdWFsIHRvIEhBVkVfTk9USElORywgc2V0IHRoZQorICAgIC8vIGVsZW1lbnQncyBuZXR3
b3JrU3RhdGUgYXR0cmlidXRlIHRvIHRoZSBORVRXT1JLX0VNUFRZIHZhbHVlIGFuZCBxdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhCisgICAgLy8gc2ltcGxlIGV2ZW50IG5hbWVkIGVtcHRpZWQgYXQgdGhl
IGVsZW1lbnQuIE90aGVyd2lzZSwgc2V0IHRoZSBlbGVtZW50J3MgbmV0d29ya1N0YXRlCiAgICAg
Ly8gYXR0cmlidXRlIHRvIHRoZSBORVRXT1JLX0lETEUgdmFsdWUuCiAgICAgaWYgKG1fcmVhZHlT
dGF0ZSA9PSBIQVZFX05PVEhJTkcpIHsKICAgICAgICAgbV9uZXR3b3JrU3RhdGUgPSBORVRXT1JL
X0VNUFRZOwpAQCAtNTI0MCw3ICs1MjQwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVh
ck1lZGlhUGxheWVyKERlbGF5ZWRBY3Rpb25UeXBlIGZsYWdzKQogCiBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogewotICAgIHJl
dHVybiB0cnVlOyAKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogY29uc3QgY2hhciogSFRNTE1lZGlh
RWxlbWVudDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CkBAIC01NDY3LDcgKzU0NjcsNyBA
QCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIFJlZjxFdmVudAogICAgIH0KIAogICAgIExPRyhNZWRpYSwgIkhUTUxN
ZWRpYUVsZW1lbnQ6OmFkZEV2ZW50TGlzdGVuZXIoJXApIC0gJ3dlYmtpdHBsYXliYWNrdGFyZ2V0
YXZhaWxhYmlsaXR5Y2hhbmdlZCciLCB0aGlzKTsKLSAgICAKKwogICAgIGVucXVldWVQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUNoYW5nZWRFdmVudCgpOyAvLyBFbnN1cmUgdGhlIGV2ZW50IGxp
c3RlbmVyIGdldHMgYXQgbGVhc3Qgb25lIGV2ZW50LgogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
NTU0NywxNyArNTU0NywxNyBAQCBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6bWF4RmFzdEZvcndh
cmRSYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+bWF4RmFz
dEZvcndhcmRSYXRlKCkgOiAwOwogfQotICAgIAorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omlz
RnVsbHNjcmVlbigpIGNvbnN0CiB7CiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBW
aWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCisKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKGRvY3VtZW50KCkud2Via2l0SXNGdWxs
U2NyZWVuKCkgJiYgZG9jdW1lbnQoKS53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSA9
PSB0aGlzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIAorCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCkBAIC01NTc0LDcgKzU1NzQsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6
OmlzU3RhbmRhcmRGdWxsc2NyZWVuKCkgY29uc3QKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dG9n
Z2xlU3RhbmRhcmRGdWxsc2NyZWVuU3RhdGUoKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRp
YUVsZW1lbnQ6OnRvZ2dsZVN0YW5kYXJkRnVsbHNjcmVlblN0YXRlKCVwKSAtIGlzU3RhbmRhcmRG
dWxsc2NyZWVuKCkgaXMgJXMiLCB0aGlzLCBib29sU3RyaW5nKGlzU3RhbmRhcmRGdWxsc2NyZWVu
KCkpKTsKLSAgICAKKwogICAgIGlmIChpc1N0YW5kYXJkRnVsbHNjcmVlbigpKQogICAgICAgICBl
eGl0RnVsbHNjcmVlbigpOwogICAgIGVsc2UKQEAgLTU3MzgsNyArNTczOCw3IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6d2FpdEZvclByZXBhcmVkRm9ySW5saW5lVGhlbihXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJiBjb21wCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgCisKICAgICBtX3ByZXBhcmVkRm9ySW5saW5lQ29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKIH0KIApAQCAtNTc0OCw3ICs1NzQ4
LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1ZpZGVvTGF5ZXJJbmxpbmUoKQogewogICAg
IHJldHVybiAhbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKIH07Ci0gICAgCisKIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZv
cm1MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllciA9IHBsYXRmb3JtTGF5ZXI7CkBAIC01NzU2LDE0ICs1
NzU2LDE0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllciwgV1RGCiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBtX3BsYXllci0+c2V0
VmlkZW9GdWxsc2NyZWVuTGF5ZXIocGxhdGZvcm1MYXllciwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCiAgICAgdXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpOwogI2VuZGlm
CiB9Ci0gICAgCisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJh
bWUoRmxvYXRSZWN0IGZyYW1lKQogewogICAgIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUgPSBmcmFt
ZTsKQEAgLTU3NzcsOSArNTc3Nyw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9G
dWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IGdyYXZpCiAgICAgaWYg
KG1fcGxheWVyKQogICAgICAgICBtX3BsYXllci0+c2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShn
cmF2aXR5KTsKIH0KLSAgICAKKwogI2Vsc2UKLSAgICAKKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50
Ojppc1ZpZGVvTGF5ZXJJbmxpbmUoKQogewogICAgIHJldHVybiB0cnVlOwpAQCAtNTgyNCw3ICs1
ODI0LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCkK
ICNlbHNlCiAgICAgaWYgKCFoYXNNZWRpYUNvbnRyb2xzKCkgJiYgIWNyZWF0ZU1lZGlhQ29udHJv
bHMoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgbWVkaWFDb250cm9scygpLT51cGRh
dGVUZXh0VHJhY2tEaXNwbGF5KCk7CiAjZW5kaWYKIH0KQEAgLTU5NzMsNyArNTk3Myw3IEBAIE1l
ZGlhQ29udHJvbHMqIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29udHJvbHMoKSBjb25zdAogICAg
IFNoYWRvd1Jvb3QqIHJvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCk7CiAgICAgaWYgKCFyb290
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAKKwogICAgIHJldHVybiBjaGlsZHJlbk9m
VHlwZTxNZWRpYUNvbnRyb2xzPigqcm9vdCkuZmlyc3QoKTsKICNlbmRpZgogfQpAQCAtNjEwNSw3
ICs2MTA1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhY2tEaXNw
bGF5KFRleHRUcmFja1Zpc2liaWxpdHlDaGVja1R5cGUgY2gKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgbWVkaWFDb250cm9scygpLT5jaGFuZ2VkQ2xvc2VkQ2FwdGlvbnNWaXNpYmlsaXR5KCk7Ci0g
ICAgCisKICAgICB1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCk7CiAgICAgdXBkYXRlQWN0aXZlVGV4
dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFUaW1lKCkpOwogI2VuZGlmCkBAIC02MjM2LDcgKzYyMzYs
NyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhR3JvdXAoY29uc3QgU3RyaW5nJiBn
cm91cCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fbWVkaWFHcm91cCA9IGdyb3VwOwogCi0gICAg
Ly8gV2hlbiBhIG1lZGlhIGVsZW1lbnQgaXMgY3JlYXRlZCB3aXRoIGEgbWVkaWFncm91cCBhdHRy
aWJ1dGUsIGFuZCB3aGVuIGEgbWVkaWEgZWxlbWVudCdzIG1lZGlhZ3JvdXAgCisgICAgLy8gV2hl
biBhIG1lZGlhIGVsZW1lbnQgaXMgY3JlYXRlZCB3aXRoIGEgbWVkaWFncm91cCBhdHRyaWJ1dGUs
IGFuZCB3aGVuIGEgbWVkaWEgZWxlbWVudCdzIG1lZGlhZ3JvdXAKICAgICAvLyBhdHRyaWJ1dGUg
aXMgc2V0LCBjaGFuZ2VkLCBvciByZW1vdmVkLCB0aGUgdXNlciBhZ2VudCBtdXN0IHJ1biB0aGUg
Zm9sbG93aW5nIHN0ZXBzOgogICAgIC8vIDEuIExldCBtIFt0aGlzXSBiZSB0aGUgbWVkaWEgZWxl
bWVudCBpbiBxdWVzdGlvbi4KICAgICAvLyAyLiBMZXQgbSBoYXZlIG5vIGN1cnJlbnQgbWVkaWEg
Y29udHJvbGxlciwgaWYgaXQgY3VycmVudGx5IGhhcyBvbmUuCkBAIC02MjQ3LDE0ICs2MjQ3LDE0
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFHcm91cChjb25zdCBTdHJpbmcmIGdy
b3VwKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyA0LiBJZiB0aGVyZSBpcyBhbm90aGVyIG1l
ZGlhIGVsZW1lbnQgd2hvc2UgRG9jdW1lbnQgaXMgdGhlIHNhbWUgYXMgbSdzIERvY3VtZW50IChl
dmVuIGlmIG9uZSBvciBib3RoCi0gICAgLy8gb2YgdGhlc2UgZWxlbWVudHMgYXJlIG5vdCBhY3R1
YWxseSBpbiB0aGUgRG9jdW1lbnQpLCAKKyAgICAvLyBvZiB0aGVzZSBlbGVtZW50cyBhcmUgbm90
IGFjdHVhbGx5IGluIHRoZSBEb2N1bWVudCksCiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50
Kj4gZWxlbWVudHMgPSBkb2N1bWVudFRvRWxlbWVudFNldE1hcCgpLmdldCgmZG9jdW1lbnQoKSk7
CiAgICAgZm9yIChhdXRvJiBlbGVtZW50IDogZWxlbWVudHMpIHsKICAgICAgICAgaWYgKGVsZW1l
bnQgPT0gdGhpcykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIC8vIGFuZCB3aGlj
aCBhbHNvIGhhcyBhIG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBhbmQgd2hvc2UgbWVkaWFncm91cCBh
dHRyaWJ1dGUgaGFzIHRoZSBzYW1lIHZhbHVlIGFzCi0gICAgICAgIC8vIHRoZSBuZXcgdmFsdWUg
b2YgbSdzIG1lZGlhZ3JvdXAgYXR0cmlidXRlLCAgICAgICAgCisgICAgICAgIC8vIHRoZSBuZXcg
dmFsdWUgb2YgbSdzIG1lZGlhZ3JvdXAgYXR0cmlidXRlLAogICAgICAgICBpZiAoZWxlbWVudC0+
bWVkaWFHcm91cCgpID09IGdyb3VwKSB7CiAgICAgICAgICAgICAvLyAgdGhlbiBsZXQgY29udHJv
bGxlciBiZSB0aGF0IG1lZGlhIGVsZW1lbnQncyBjdXJyZW50IG1lZGlhIGNvbnRyb2xsZXIuCiAg
ICAgICAgICAgICBzZXRDb250cm9sbGVyKGVsZW1lbnQtPmNvbnRyb2xsZXIoKSk7CkBAIC02Mjg4
LDcgKzYyODgsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIoUmVmUHRy
PE1lZGlhQ29udHJvbGxlcj4mJiBjb250cm9sbGVyKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZXRDb250cm9sbGVyRm9yQmluZGluZ3MoTWVkaWFDb250cm9sbGVyKiBjb250cm9sbGVyKQogewog
ICAgIC8vIDQuOC4xMC4xMS4yIE1lZGlhIGNvbnRyb2xsZXJzOiBjb250cm9sbGVyIGF0dHJpYnV0
ZS4KLSAgICAvLyBPbiBzZXR0aW5nLCBpdCBtdXN0IGZpcnN0IHJlbW92ZSB0aGUgZWxlbWVudCdz
IG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBpZiBhbnksIAorICAgIC8vIE9uIHNldHRpbmcsIGl0IG11
c3QgZmlyc3QgcmVtb3ZlIHRoZSBlbGVtZW50J3MgbWVkaWFncm91cCBhdHRyaWJ1dGUsIGlmIGFu
eSwKICAgICBzZXRNZWRpYUdyb3VwKHsgfSk7CiAgICAgLy8gYW5kIHRoZW4gc2V0IHRoZSBjdXJy
ZW50IG1lZGlhIGNvbnRyb2xsZXIgdG8gdGhlIGdpdmVuIHZhbHVlLgogICAgIHNldENvbnRyb2xs
ZXIoY29udHJvbGxlcik7CkBAIC02MzE2LDEzICs2MzE2LDEzIEBAIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6aXNCbG9ja2VkT25NZWRpYUNvbnRyb2xsZXIoKSBjb25zdAogICAgIGlmICghbV9tZWRp
YUNvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIEEgbWVkaWEgZWxl
bWVudCBpcyBibG9ja2VkIG9uIGl0cyBtZWRpYSBjb250cm9sbGVyIGlmIHRoZSBNZWRpYUNvbnRy
b2xsZXIgaXMgYSBibG9ja2VkIAorICAgIC8vIEEgbWVkaWEgZWxlbWVudCBpcyBibG9ja2VkIG9u
IGl0cyBtZWRpYSBjb250cm9sbGVyIGlmIHRoZSBNZWRpYUNvbnRyb2xsZXIgaXMgYSBibG9ja2Vk
CiAgICAgLy8gbWVkaWEgY29udHJvbGxlciwKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXItPmlz
QmxvY2tlZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIC8vIG9yIGlmIGl0cyBtZWRp
YSBjb250cm9sbGVyIHBvc2l0aW9uIGlzIGVpdGhlciBiZWZvcmUgdGhlIG1lZGlhIHJlc291cmNl
J3MgZWFybGllc3QgcG9zc2libGUgCi0gICAgLy8gcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIE1l
ZGlhQ29udHJvbGxlcidzIHRpbWVsaW5lIG9yIGFmdGVyIHRoZSBlbmQgb2YgdGhlIG1lZGlhIHJl
c291cmNlIAorICAgIC8vIG9yIGlmIGl0cyBtZWRpYSBjb250cm9sbGVyIHBvc2l0aW9uIGlzIGVp
dGhlciBiZWZvcmUgdGhlIG1lZGlhIHJlc291cmNlJ3MgZWFybGllc3QgcG9zc2libGUKKyAgICAv
LyBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgTWVkaWFDb250cm9sbGVyJ3MgdGltZWxpbmUgb3Ig
YWZ0ZXIgdGhlIGVuZCBvZiB0aGUgbWVkaWEgcmVzb3VyY2UKICAgICAvLyByZWxhdGl2ZSB0byB0
aGUgTWVkaWFDb250cm9sbGVyJ3MgdGltZWxpbmUuCiAgICAgZG91YmxlIG1lZGlhQ29udHJvbGxl
clBvc2l0aW9uID0gbV9tZWRpYUNvbnRyb2xsZXItPmN1cnJlbnRUaW1lKCk7CiAgICAgaWYgKG1l
ZGlhQ29udHJvbGxlclBvc2l0aW9uIDwgMCB8fCBtZWRpYUNvbnRyb2xsZXJQb3NpdGlvbiA+IGR1
cmF0aW9uKCkpCkBAIC02MzM1LDcgKzYzMzUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBy
ZXBhcmVNZWRpYUZyYWdtZW50VVJJKCkKIHsKICAgICBNZWRpYUZyYWdtZW50VVJJUGFyc2VyIGZy
YWdtZW50UGFyc2VyKG1fY3VycmVudFNyYyk7CiAgICAgTWVkaWFUaW1lIGR1ciA9IGR1cmF0aW9u
TWVkaWFUaW1lKCk7Ci0gICAgCisKICAgICBNZWRpYVRpbWUgc3RhcnQgPSBmcmFnbWVudFBhcnNl
ci5zdGFydFRpbWUoKTsKICAgICBpZiAoc3RhcnQuaXNWYWxpZCgpICYmIHN0YXJ0ID4gTWVkaWFU
aW1lOjp6ZXJvVGltZSgpKSB7CiAgICAgICAgIG1fZnJhZ21lbnRTdGFydFRpbWUgPSBzdGFydDsK
QEAgLTYzNDMsNyArNjM0Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZU1lZGlh
RnJhZ21lbnRVUkkoKQogICAgICAgICAgICAgbV9mcmFnbWVudFN0YXJ0VGltZSA9IGR1cjsKICAg
ICB9IGVsc2UKICAgICAgICAgbV9mcmFnbWVudFN0YXJ0VGltZSA9IE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKTsKLSAgICAKKwogICAgIE1lZGlhVGltZSBlbmQgPSBmcmFnbWVudFBhcnNlci5lbmRU
aW1lKCk7CiAgICAgaWYgKGVuZC5pc1ZhbGlkKCkgJiYgZW5kID4gTWVkaWFUaW1lOjp6ZXJvVGlt
ZSgpICYmICghbV9mcmFnbWVudFN0YXJ0VGltZS5pc1ZhbGlkKCkgfHwgZW5kID4gbV9mcmFnbWVu
dFN0YXJ0VGltZSkpIHsKICAgICAgICAgbV9mcmFnbWVudEVuZFRpbWUgPSBlbmQ7CkBAIC02MzUx
LDcgKzYzNTEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVNZWRpYUZyYWdtZW50
VVJJKCkKICAgICAgICAgICAgIG1fZnJhZ21lbnRFbmRUaW1lID0gZHVyOwogICAgIH0gZWxzZQog
ICAgICAgICBtX2ZyYWdtZW50RW5kVGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKLSAg
ICAKKwogICAgIGlmIChtX2ZyYWdtZW50U3RhcnRUaW1lLmlzVmFsaWQoKSAmJiBtX3JlYWR5U3Rh
dGUgPCBIQVZFX0ZVVFVSRV9EQVRBKQogICAgICAgICBwcmVwYXJlVG9QbGF5KCk7CiB9CkBAIC02
ODg3LDcgKzY4ODcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNo
YWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIAogICAgIGF1dG8gbWVkaWFKU1dyYXBwZXIgPSB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgKnRoaXMpOwogICAgIGF1dG8gbWVkaWFDb250cm9sc0hv
c3RKU1dyYXBwZXIgPSB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgKm1fbWVkaWFDb250cm9sc0hv
c3QpOwotICAgIAorCiAgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdMaXN0OwogICAg
IGFyZ0xpc3QuYXBwZW5kKHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCByb290KSk7CiAgICAgYXJn
TGlzdC5hcHBlbmQobWVkaWFKU1dyYXBwZXIpOwpAQCAtNjkxMCw3ICs2OTEwLDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJv
b3QpCiAgICAgSlNDOjpKU09iamVjdCogbWVkaWFKU1dyYXBwZXJPYmplY3QgPSBtZWRpYUpTV3Jh
cHBlci50b09iamVjdChleGVjKTsKICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAg
IEpTQzo6SWRlbnRpZmllciBjb250cm9sc0hvc3QgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcoJmV4ZWMtPnZtKCksICJjb250cm9sc0hvc3QiKTsKLSAgICAKKwogICAgIEFTU0VSVCghbWVk
aWFKU1dyYXBwZXJPYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIGNvbnRyb2xzSG9zdCkpOwogCiAg
ICAgbWVkaWFKU1dyYXBwZXJPYmplY3QtPnB1dERpcmVjdChleGVjLT52bSgpLCBjb250cm9sc0hv
c3QsIG1lZGlhQ29udHJvbHNIb3N0SlNXcmFwcGVyLCBKU0M6OkRvbnREZWxldGUgfCBKU0M6OkRv
bnRFbnVtIHwgSlNDOjpSZWFkT25seSk7CkBAIC02OTE4LDcgKzY5MTgsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkK
ICAgICBKU0M6OkpTT2JqZWN0KiBtZWRpYUNvbnRyb2xzSG9zdEpTV3JhcHBlck9iamVjdCA9IGpz
RHluYW1pY0Rvd25jYXN0PEpTQzo6SlNPYmplY3QqPih2bSwgbWVkaWFDb250cm9sc0hvc3RKU1dy
YXBwZXIpOwogICAgIGlmICghbWVkaWFDb250cm9sc0hvc3RKU1dyYXBwZXJPYmplY3QpCiAgICAg
ICAgIHJldHVybjsKLSAgICAKKwogICAgIEpTQzo6SWRlbnRpZmllciBjb250cm9sbGVyID0gSlND
OjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZleGVjLT52bSgpLCAiY29udHJvbGxlciIpOwogCiAg
ICAgQVNTRVJUKCFjb250cm9sbGVyT2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCBjb250cm9sbGVy
KSk7CkBAIC03MDM5LDcgKzcwMzksNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgSFRNTE1lZGlhRWxl
bWVudDo6ZmlsZVNpemUoKSBjb25zdAogewogICAgIGlmIChtX3BsYXllcikKICAgICAgICAgcmV0
dXJuIG1fcGxheWVyLT5maWxlU2l6ZSgpOwotICAgIAorCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAg
LTcxMzgsMTIgKzcxMzgsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptYXlSZXN1bWVQbGF5
YmFjayhib29sIHNob3VsZFJlc3VtZSkKICAgICBpZiAocGF1c2VkKCkgJiYgc2hvdWxkUmVzdW1l
KQogICAgICAgICBwbGF5KCk7CiB9Ci0gICAgCisKIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVNlc3Npb25UaXRsZSgpIGNvbnN0CiB7CiAgICAgaWYgKGhhc0F0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24odGl0bGVBdHRyKSkKICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24odGl0bGVBdHRyKTsKLSAgICAKKwogICAgIHJldHVybiBtX2N1cnJl
bnRTcmM7CiB9CiAKQEAgLTcxODcsMTIgKzcxODcsMTIgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWVr
aW5nU3VwcG9ydFF1aXJrKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRvY3VtZW50
LnNldHRpbmdzKCkubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgCisKICAgICBTdHJpbmcgaG9zdCA9IGRvY3VtZW50LnRvcERvY3Vt
ZW50KCkudXJsKCkuaG9zdCgpOwogICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShob3N0LCAibmV0ZmxpeC5jb20iKSB8fCBob3N0LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNh
c2UoIi5uZXRmbGl4LmNvbSIpOwogfQogCi1ib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnN1cHBvcnRz
U2Vla2luZygpIGNvbnN0IAorYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzdXBwb3J0c1NlZWtpbmco
KSBjb25zdAogewogICAgIHJldHVybiAhbmVlZHNTZWVraW5nU3VwcG9ydFF1aXJrKGRvY3VtZW50
KCkpICYmICFpc0xpdmVTdHJlYW0oKTsKIH0KQEAgLTczNTMsMTMgKzczNTMsMTMgQEAgYm9vbCBI
VE1MTWVkaWFFbGVtZW50Ojpkb2VzSGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9taWNTdHJpbmcmIGF0
dHJpYnV0ZSwgQXRvbWljU3QKICAgICBhdXRvJiBlbGVtZW50VmFsdWUgPSBhdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChlbGVtZW50VmFsdWUu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIGlmIChhdHRyaWJ1
dGVOYW1lID09IEhUTUxOYW1lczo6eF9pdHVuZXNfaW5oZXJpdF91cmlfcXVlcnlfY29tcG9uZW50
QXR0ciAmJiAhZG9jdW1lbnQoKS5zZXR0aW5ncygpLmVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBv
bmVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAodmFsdWUpCiAgICAgICAg
ICp2YWx1ZSA9IGVsZW1lbnRWYWx1ZTsKLSAgICAKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBA
IC03NDY0LDE0ICs3NDY0LDE0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YWxsb3dzTWVkaWFE
b2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZCgpCiAgICAgaWYgKHBvdGVudGlhbGx5UGxheWlu
ZygpICYmIG1fbWVkaWFTZXNzaW9uLT5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNr
KCp0aGlzKSAmJiAhaXNGdWxsc2NyZWVuKCkpCiAgICAgICAgIGVudGVyRnVsbHNjcmVlbigpOwog
fQotICAgIAorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzVmlkZW9Ub29TbWFsbEZvcklubGlu
ZVBsYXliYWNrKCkKIHsKICAgICBhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7Ci0g
ICAgCisKICAgICBpZiAoIXJlbmRlcmVyIHx8ICFpczxSZW5kZXJWaWRlbz4oKnJlbmRlcmVyKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCisKICAgICBJbnRSZWN0IHZpZGVvQm94ID0gZG93
bmNhc3Q8UmVuZGVyVmlkZW8+KCpyZW5kZXJlcikudmlkZW9Cb3goKTsKICAgICByZXR1cm4gKHZp
ZGVvQm94LndpZHRoKCkgPD0gMSB8fCB2aWRlb0JveC5oZWlnaHQoKSA8PSAxKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGYzYzNkNjhkYjNjLi43NDEy
NzgwMWViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC03
NjksNyArNzY5LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQ
b2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICAgICAgLy8gRG93bmxvYWQgbWF5IHVzZSB0
aGlzIGtub3dsZWRnZSBmb3IgcHVycG9zZXMgdW5yZWxhdGVkIHRvIGNvb2tpZXMsIG5vdGFibHkg
Zm9yIHNldHRpbmcgZmlsZSBxdWFyYW50aW5lIGRhdGEuCiAgICAgICAgIGZyYW1lTG9hZGVyKCkt
PnNldE9yaWdpbmFsVVJMRm9yRG93bmxvYWRSZXF1ZXN0KG1fcmVxdWVzdCk7CiAKLSAgICAgICAg
U2Vzc2lvbklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAg
ICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpOwogICAgICAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkpCiAgICAg
ICAgICAgICBzZXNzaW9uSUQgPSBmcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGNjZGMwNTVkY2U0Li42MzY2YzE1
YzM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTExMCw3ICsx
MTAsNyBAQCBjbGFzcyBFbXB0eUNvbnRleHRNZW51Q2xpZW50IGZpbmFsIDogcHVibGljIENvbnRl
eHRNZW51Q2xpZW50IHsKIAogY2xhc3MgRW1wdHlEYXRhYmFzZVByb3ZpZGVyIGZpbmFsIDogcHVi
bGljIERhdGFiYXNlUHJvdmlkZXIgewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAg
IElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJG
b3JTZXNzaW9uKGNvbnN0IFNlc3Npb25JRCYpIGZpbmFsCisgICAgSURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgUEFM
OjpTZXNzaW9uSUQmKSBmaW5hbAogICAgIHsKICAgICAgICAgc3RhdGljIGF1dG8mIHNoYXJlZENv
bm5lY3Rpb24gPSBJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKICAgICAg
ICAgcmV0dXJuIHNoYXJlZENvbm5lY3Rpb24uY29ubmVjdGlvblRvU2VydmVyKCk7CkBAIC0yOTMs
NyArMjkzLDcgQEAgY2xhc3MgRW1wdHlGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBG
cmFtZUxvYWRlckNsaWVudCB7CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQyKCkgZmluYWwg
eyB9CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQzKCkgZmluYWwgeyB9CiAKLSAgICB2b2lk
IGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciosIFNlc3Np
b25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZp
bmFsIHsgfQorICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3Vt
ZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgYXNzaWduSWRlbnRpZmll
clRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKSBmaW5hbCB7IH0KICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZykgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMDQ4
NzI2NTllZTUuLmNmYTQ0ZTRiMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtNTcsNiArNTcsMTAgQEAgT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CiBP
QkpDX0NMQVNTIE5TVmlldzsKICNlbmRpZgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Np
b25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTsKQEAgLTkwLDcgKzk0LDYgQEAgY2xhc3MgUmVzb3VyY2VIYW5kbGU7CiBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2VjdXJpdHlP
cmlnaW47Ci1jbGFzcyBTZXNzaW9uSUQ7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBTdWJz
dGl0dXRlRGF0YTsKIGNsYXNzIFVSTDsKQEAgLTI3Myw3ICsyNzYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgPSAwOyAvLyBDYW4g
Y2hhbmdlIGR1ZSB0byBuYXZpZ2F0aW9uIG9yIERPTSBtb2RpZmljYXRpb24uCiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb252
ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqLCBTZXNzaW9uSUQs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVu
dExvYWRlciosIFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJikgPSAwOwogCiAgICAgdmlydHVhbCBSZWZQdHI8RnJhbWU+IGNyZWF0
ZUZyYW1lKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVt
ZW50JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBt
YXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPFdp
ZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBj
b25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDc1OTJiMjM5
NTQzLi45ZWQyYjMxZmQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMzgsNyArMzgsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhY2hlZENTU1N0eWxlU2hlZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hl
ZENTU1N0eWxlU2hlZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3Vy
Y2UoV1RGTW92ZShyZXF1ZXN0KSwgQ1NTU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9k
ZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC9jc3MiLCByZXF1ZXN0LmNo
YXJzZXQoKSkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENT
U1N0eWxlU2hlZXQuaAppbmRleCA4M2M2N2RiOWM1My4uZmIzNGQxY2IwMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzQs
NyArMzQsNyBAQCBzdHJ1Y3QgQ1NTUGFyc2VyQ29udGV4dDsKIAogY2xhc3MgQ2FjaGVkQ1NTU3R5
bGVTaGVldCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2Fj
aGVkQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAg
ICBDYWNoZWRDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQQUw6OlNlc3Np
b25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkQ1NTU3R5bGVTaGVldCgpOwogCiAgICAgZW51bSBj
bGFzcyBNSU1FVHlwZUNoZWNrSGludCB7IFN0cmljdCwgTGF4IH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKaW5kZXggZDkwNTY3Y2M3YzguLjg4YzUwODNjNmZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCkBAIC00NSw3
ICs0NSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkRm9udDo6Q2FjaGVkRm9u
dChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBU
eXBlIHR5cGUpCitDYWNoZWRGb250OjpDYWNoZWRGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVHlwZSB0eXBlKQogICAgIDogQ2Fj
aGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgdHlwZSwgc2Vzc2lvbklEKQogICAgICwgbV9s
b2FkSW5pdGlhdGVkKGZhbHNlKQogICAgICwgbV9oYXNDcmVhdGVkRm9udERhdGFXcmFwcGluZ1Jl
c291cmNlKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKaW5k
ZXggN2U5ZWE4YmQxMDMuLjAxNWM2NTBkMjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRGb250LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBGb250VGFnZ2VkU2V0dGlu
Z3M8aW50PiBGb250RmVhdHVyZVNldHRpbmdzOwogCiBjbGFzcyBDYWNoZWRGb250IDogcHVibGlj
IENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKLSAgICBDYWNoZWRGb250KENhY2hlZFJlc291cmNl
UmVxdWVzdCYmLCBTZXNzaW9uSUQsIFR5cGUgPSBGb250UmVzb3VyY2UpOworICAgIENhY2hlZEZv
bnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lvbklELCBUeXBlID0gRm9udFJl
c291cmNlKTsKICAgICB2aXJ0dWFsIH5DYWNoZWRGb250KCk7CiAKICAgICB2b2lkIGJlZ2luTG9h
ZElmTmVlZGVkKENhY2hlZFJlc291cmNlTG9hZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRleCAxN2Q2ZmZiMWU4NS4uOGNhZTcyNDNhMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNTUsMTkg
KzU1LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZElt
YWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQp
CitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92
ZShyZXF1ZXN0KSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogewogICAgIHNldFN0YXR1cyhV
bmtub3duKTsKIH0KIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKEltYWdlKiBpbWFnZSwgU2Vz
c2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2Us
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFVSTCgpLCBJ
bWFnZVJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogewogfQogCi1D
YWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgU2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkb21haW5Gb3JDYWNoZVBhcnRpdGlvbikK
K0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1hZ2UqIGltYWdlLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0
aXRpb24pCiAgICAgOiBDYWNoZWRSZXNvdXJjZSh1cmwsIEltYWdlUmVzb3VyY2UsIHNlc3Npb25J
RCkKICAgICAsIG1faW1hZ2UoaW1hZ2UpCiAgICAgLCBtX2lzTWFudWFsbHlDYWNoZWQodHJ1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggNTJjNDc2Y2Zl
MWMuLmE3ZTg5ODZhNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuaApAQCAtNDcsMTAgKzQ3LDEwIEBAIGNsYXNzIENhY2hlZEltYWdlIGZpbmFsIDogcHVibGlj
IENhY2hlZFJlc291cmNlIHsKICAgICBmcmllbmQgY2xhc3MgTWVtb3J5Q2FjaGU7CiAKIHB1Ymxp
YzoKLSAgICBDYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsK
LSAgICBDYWNoZWRJbWFnZShJbWFnZSosIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICBDYWNoZWRJbWFnZShJ
bWFnZSosIFBBTDo6U2Vzc2lvbklEKTsKICAgICAvLyBDb25zdHJ1Y3RvciB0byB1c2UgZm9yIG1h
bnVhbGx5IGNhY2hlZCBpbWFnZXMuCi0gICAgQ2FjaGVkSW1hZ2UoY29uc3QgVVJMJiwgSW1hZ2Uq
LCBTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pOworICAg
IENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pOwogICAgIHZpcnR1YWwgfkNhY2hlZEltYWdl
KCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZSogaW1hZ2UoKTsgLy8gUmV0dXJucyB0aGUg
bnVsbEltYWdlKCkgaWYgdGhlIGltYWdlIGlzIG5vdCBhdmFpbGFibGUgeWV0LgpAQCAtOTAsNyAr
OTAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgY2xlYXIoKTsKIAotICAgIENhY2hl
ZEltYWdlKENhY2hlZEltYWdlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsK
KyAgICBDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBB
TDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgc2V0Qm9keURhdGFGcm9tKGNvbnN0IENhY2hlZFJl
c291cmNlJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IGQyZDMxNmQ4NGFhLi5kODM1MDliM2MxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBA
IC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkUmF3UmVzb3Vy
Y2U6OkNhY2hlZFJhd1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5
cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRS
YXdSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVx
dWVzdCksIHR5cGUsIHNlc3Npb25JRCkKICAgICAsIG1faWRlbnRpZmllcigwKQogICAgICwgbV9h
bGxvd0VuY29kZWREYXRhUmVwbGFjZW1lbnQodHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKaW5kZXggYmI1YTViOGRlZTMuLjE1YThhODY2
MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3Vy
Y2UuaApAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIAogY2xhc3Mg
Q2FjaGVkUmF3UmVzb3VyY2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGlj
OgotICAgIENhY2hlZFJhd1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBUeXBlLCBT
ZXNzaW9uSUQpOworICAgIENhY2hlZFJhd1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYm
LCBUeXBlLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExv
YWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9y
ZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2FjaGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlz
LCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0byBkZWZlciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggZTVlZWMyNWZlZWUu
LmU4NjJhYTBmNDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgU2Vjb25kcyBkZWFkRGVjb2Rl
ZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeQog
CiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoUmVmQ291bnRlZExlYWtDb3VudGVyLCBjYWNoZWRS
ZXNvdXJjZUxlYWtDb3VudGVyLCAoIkNhY2hlZFJlc291cmNlIikpOwogCi1DYWNoZWRSZXNvdXJj
ZTo6Q2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgVHlwZSB0
eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdC5yZWxlYXNlUmVz
b3VyY2VSZXF1ZXN0KCkpCiAgICAgLCBtX29wdGlvbnMocmVxdWVzdC5vcHRpb25zKCkpCiAgICAg
LCBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcigqdGhpcywgJkNhY2hlZFJlc291cmNlOjpkZXN0
cm95RGVjb2RlZERhdGEsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JSZXNvdXJj
ZVR5cGUodHlwZSkpCkBAIC0xNDUsNyArMTQ1LDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJl
c291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2kK
IH0KIAogLy8gRklYTUU6IEZvciB0aGlzIGNvbnN0cnVjdG9yLCB3ZSBzaG91bGQgcHJvYmFibHkg
bWFuZGF0ZSB0aGF0IHRoZSBVUkwgaGFzIG5vIGZyYWdtZW50IGlkZW50aWZpZXIuCi1DYWNoZWRS
ZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UoY29uc3QgVVJMJiB1cmwsIFR5cGUgdHlwZSwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKK0NhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShjb25zdCBVUkwm
IHVybCwgVHlwZSB0eXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Jlc291
cmNlUmVxdWVzdCh1cmwpCiAgICAgLCBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcigqdGhpcywg
JkNhY2hlZFJlc291cmNlOjpkZXN0cm95RGVjb2RlZERhdGEsIGRlYWREZWNvZGVkRGF0YURlbGV0
aW9uSW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUodHlwZSkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmlu
ZGV4IDY5OTZiYmEyNzUyLi5lMTAxODhlODI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTMwLDggKzMwLDggQEAKICNpbmNsdWRlICJSZXNv
dXJjZUxvYWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVk
ZSAiVGltZXIuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx0aW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgogICAgICAgICBEZWNvZGVF
cnJvcgogICAgIH07CiAKLSAgICBDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiwgVHlwZSwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmJiwgVHlwZSwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFJlc291
cmNlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwpA
QCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAgICAg
Y29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC51cmwoKTt9
CiAgICAgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b3VyY2VSZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCk7IH0KLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklE
KCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIFR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbG9hZFBy
aW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJpb3JpdHk7IH0KQEAgLTI4MSw3ICsyODEs
NyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICAvLyBDYWNoZWRSZXNvdXJjZSBjb25zdHJ1
Y3RvciB0aGF0IG1heSBiZSB1c2VkIHdoZW4gdGhlIENhY2hlZFJlc291cmNlIGNhbiBhbHJlYWR5
IGJlIGZpbGxlZCB3aXRoIHJlc3BvbnNlIGRhdGEuCi0gICAgQ2FjaGVkUmVzb3VyY2UoY29uc3Qg
VVJMJiwgVHlwZSwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZShjb25zdCBVUkwmLCBU
eXBlLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIHNldEVuY29kZWRTaXplKHVuc2lnbmVk
KTsKICAgICB2b2lkIHNldERlY29kZWRTaXplKHVuc2lnbmVkKTsKQEAgLTMxNyw3ICszMTcsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CiAKICAgICBIYXNoTWFw
PENhY2hlZFJlc291cmNlQ2xpZW50Kiwgc3RkOjp1bmlxdWVfcHRyPENhbGxiYWNrPj4gbV9jbGll
bnRzQXdhaXRpbmdDYWxsYmFjazsKLSAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFM
OjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9sb2Fk
UHJpb3JpdHk7CiAgICAgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtX3Jl
c3BvbnNlVGltZXN0YW1wOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCAzYzRjODkxYTIzNy4uYTFjMzM0NWZlZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcApAQCAtNjYsMTIgKzY2LDEyIEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xp
Y3kuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVy
LmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlclN0
eWxlU2hlZXQuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIGlubGluZSBSZXNvdXJjZUVycm9yT3I8Q2FjaGVk
UmVzb3VyY2VIYW5kbGU8VD4+IGNhc3RDYWNoZWRSZXNvdXJjZVRvKFJlc28KICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoY2FjaGVkUmVzb3VyY2UuZXJyb3IoKSk7CiB9CiAKLXN0YXRpYyBDYWNo
ZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3N0YXRp
YyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Oklt
YWdlUmVzb3VyY2U6CkBAIC0xNzksOSArMTc5LDkgQEAgRnJhbWUqIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpmcmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIgPyBtX2RvY3Vt
ZW50TG9hZGVyLT5mcmFtZSgpIDogbnVsbHB0cjsKIH0KIAotU2Vzc2lvbklEIENhY2hlZFJlc291
cmNlTG9hZGVyOjpzZXNzaW9uSUQoKSBjb25zdAorUEFMOjpTZXNzaW9uSUQgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnNlc3Npb25JRCgpIGNvbnN0CiB7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9
IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAKICAgICBpZiAoRnJh
bWUqIGYgPSBmcmFtZSgpKQogICAgICAgICBzZXNzaW9uSUQgPSBmLT5wYWdlKCktPnNlc3Npb25J
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaAppbmRleCA0OTZiMTYxMWM3Zi4uNGNjYzg4NjQ3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0xMjEsNyAr
MTIxLDcgQEAgcHVibGljOgogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fZG9jdW1lbnQ7IH0gLy8gQ2FuIGJlIG51bGwKICAgICB2b2lkIHNldERvY3VtZW50KERvY3Vt
ZW50KiBkb2N1bWVudCkgeyBtX2RvY3VtZW50ID0gZG9jdW1lbnQ7IH0KICAgICB2b2lkIGNsZWFy
RG9jdW1lbnRMb2FkZXIoKSB7IG1fZG9jdW1lbnRMb2FkZXIgPSBudWxscHRyOyB9Ci0gICAgU2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgp
IGNvbnN0OwogCiAgICAgdm9pZCByZW1vdmVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50
LmNwcAppbmRleCAwOGI0MDE2OWQzMy4uNmI2NjMwNDMwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMjcsNyArMjcsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdE
b2N1bWVudChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lv
bklEKQorQ2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENhY2hl
ZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIFNWR0RvY3VtZW50UmVzb3VyY2UsIHNlc3Npb25J
RCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoImFwcGxpY2F0
aW9uL3htbCIpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNWR0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
RG9jdW1lbnQuaAppbmRleCBiMzU2NmZlMzg3ZS4uNzJlNWQ3MzhkMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCkBAIC0zMCw3ICszMCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQgZmluYWwg
OiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIGV4cGxpY2l0IENhY2hlZFNW
R0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIGV4cGxp
Y2l0IENhY2hlZFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBQQUw6OlNlc3Np
b25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkU1ZHRG9jdW1lbnQoKTsKIAogICAgIFNWR0RvY3Vt
ZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcAppbmRleCBhNTQ3NjFm
NmI5NC4uYTBjYTg2ZWI4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdGb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU1ZHRm9udC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1DYWNoZWRTVkdGb250OjpDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRTVkdGb250OjpDYWNoZWRTVkdGb250
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICA6IENhY2hlZEZvbnQoV1RGTW92ZShyZXF1ZXN0KSwgc2Vzc2lvbklELCBTVkdGb250
UmVzb3VyY2UpCiAgICAgLCBtX2V4dGVybmFsU1ZHRm9udEVsZW1lbnQobnVsbHB0cikKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oCmluZGV4IGU4ODA4YzZi
ZGY1Li5iMWIwZDU1OGQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNWR0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U1ZHRm9udC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFNWR0ZvbnRGYWNlRWxlbWVudDsKIAog
Y2xhc3MgQ2FjaGVkU1ZHRm9udCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRGb250IHsKIHB1YmxpYzoK
LSAgICBDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOwor
ICAgIENhY2hlZFNWR0ZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFBBTDo6U2Vzc2lvbklE
KTsKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRvbWljU3RyaW5nJiBy
ZW1vdGVVUkkpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwCmluZGV4IGIyYmZjYzExZTc4Li41MWQ2MGZmMWY2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdChDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVk
U2NyaXB0OjpDYWNoZWRTY3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1
ZXN0KSwgU2NyaXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVj
b2Rlcjo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCByZXF1
ZXN0LmNoYXJzZXQoKSkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0LmgKaW5kZXggNmJiMGYzMTJmM2MuLmMwODE2YWVjZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFRleHRS
ZXNvdXJjZURlY29kZXI7CiAKIGNsYXNzIENhY2hlZFNjcmlwdCBmaW5hbCA6IHB1YmxpYyBDYWNo
ZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkU2NyaXB0KENhY2hlZFJlc291cmNlUmVx
dWVzdCYmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNjcmlwdCgpOwogCiAg
ICAgU3RyaW5nVmlldyBzY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFRleHRUcmFjay5jcHAKaW5kZXggMWQ4MmJkNzFiNDIuLmZkM2QwYjhkN2I0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcApAQCAt
MzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFRleHRUcmFjazo6
Q2FjaGVkVGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCitDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayhDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBD
YWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBUZXh0VHJhY2tSZXNvdXJjZSwgc2Vzc2lv
bklEKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFj
ay5oCmluZGV4IDhkNGEwZTFmYWY3Li4yMWViYzNmNjNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFRleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBDYWNo
ZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkVGV4dFRyYWNrKENhY2hlZFJlc291cmNl
UmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZFRleHRUcmFjayhDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmJiwgUEFMOjpTZXNzaW9uSUQpOwogCiBwcml2YXRlOgogICAgIGJvb2wgbWF5VHJ5
UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3Bw
CmluZGV4IGM5ZjBkYzg3YWZjLi45NGYxZDEwNmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcApAQCAtMzYsNyArMzYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoWFNMVCkKIAotQ2FjaGVkWFNMU3R5
bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNM
U3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBYU0xT
dHlsZVNoZWV0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rl
cjo6Y3JlYXRlKCJ0ZXh0L3hzbCIpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgKaW5kZXggM2VmMGY2MDBlNDQuLjJkMTdhMDI0Zjkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVT
aGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNo
ZWV0LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIAogY2xh
c3MgQ2FjaGVkWFNMU3R5bGVTaGVldCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBw
dWJsaWM6Ci0gICAgQ2FjaGVkWFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwg
U2Vzc2lvbklEKTsKKyAgICBDYWNoZWRYU0xTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVz
dCYmLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkWFNMU3R5bGVTaGVldCgp
OwogCiAgICAgY29uc3QgU3RyaW5nJiBzaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hlZXQ7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IDUxODZh
MWJiZWQyLi4yYTA5YjYwZTA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuY3BwCkBAIC03MiwxMyArNzIsMTMgQEAgTWVtb3J5Q2FjaGU6Ok1lbW9yeUNhY2hl
KCkKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihsb25nIGxvbmcpID4gc2l6ZW9mKHVuc2lnbmVk
KSwgIk51bWVyaWNhbCBvdmVyZmxvdyBjYW4gaGFwcGVuIHdoZW4gYWRqdXN0aW5nIHRoZSBzaXpl
IG9mIHRoZSBjYWNoZWQgbWVtb3J5LiIpOwogfQogCi1hdXRvIE1lbW9yeUNhY2hlOjpzZXNzaW9u
UmVzb3VyY2VNYXAoU2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QgLT4gQ2FjaGVkUmVzb3VyY2VN
YXAqCithdXRvIE1lbW9yeUNhY2hlOjpzZXNzaW9uUmVzb3VyY2VNYXAoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKSBjb25zdCAtPiBDYWNoZWRSZXNvdXJjZU1hcCoKIHsKICAgICBBU1NFUlQoc2Vz
c2lvbklELmlzVmFsaWQoKSk7CiAgICAgcmV0dXJuIG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vz
c2lvbklEKTsKIH0KIAotYXV0byBNZW1vcnlDYWNoZTo6ZW5zdXJlU2Vzc2lvblJlc291cmNlTWFw
KFNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IENhY2hlZFJlc291cmNlTWFwJgorYXV0byBNZW1vcnlD
YWNoZTo6ZW5zdXJlU2Vzc2lvblJlc291cmNlTWFwKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gQ2FjaGVkUmVzb3VyY2VNYXAmCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkp
OwogICAgIGF1dG8mIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5hZGQoc2Vzc2lvbklELCBudWxs
cHRyKS5pdGVyYXRvci0+dmFsdWU7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBNZW1vcnlDYWNo
ZTo6cmV2YWxpZGF0aW9uRmFpbGVkKENhY2hlZFJlc291cmNlJiByZXZhbGlkYXRpbmdSZXNvdXJj
ZSkKICAgICByZXZhbGlkYXRpbmdSZXNvdXJjZS5jbGVhclJlc291cmNlVG9SZXZhbGlkYXRlKCk7
CiB9CiAKLUNhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hl
ZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIEZJ
WE1FOiBDaGFuZ2UgYWxsIGNsaWVudHMgdG8gbWFrZSBzdXJlIEhUVFAocykgVVJMcyBoYXZlIG5v
IGZyYWdtZW50IGlkZW50aWZpZXJzIGJlZm9yZSBjYWxsaW5nIGhlcmUuCiAgICAgLy8gQ2FjaGVk
UmVzb3VyY2VMb2FkZXIgaXMgbm93IGRvaW5nIHRoaXMuIEFkZCBhbiBhc3NlcnRpb24gb25jZSBh
bGwgb3RoZXIgY2xpZW50cyBhcmUgZG9pbmcgaXQgdG9vLgpAQCAtMjEwLDcgKzIxMCw3IEBAIHN0
YXRpYyBDYWNoZWRJbWFnZUNsaWVudCYgZHVtbXlDYWNoZWRJbWFnZUNsaWVudCgpCiBib29sIE1l
bW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHImJiBpbWFnZSwgY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24pCiB7CiAgICAg
QVNTRVJUKGltYWdlKTsKLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0gU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCk7CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICByZW1vdmVJbWFnZUZyb21DYWNoZSh1cmws
IGRvbWFpbkZvckNhY2hlUGFydGl0aW9uKTsgLy8gUmVtb3ZlIGNhY2hlIGVudHJ5IGlmIGl0IGFs
cmVhZHkgZXhpc3RzLgogCiAgICAgUmVmUHRyPEJpdG1hcEltYWdlPiBiaXRtYXBJbWFnZSA9IEJp
dG1hcEltYWdlOjpjcmVhdGUoV1RGTW92ZShpbWFnZSksIG51bGxwdHIpOwpAQCAtMjI3LDcgKzIy
Nyw3IEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZShOYXRpdmVJbWFnZVB0ciYm
IGltYWdlLCBjb25zdCBVUkwmIHVybCwgY29uc3QKIAogdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3Zl
SW1hZ2VGcm9tQ2FjaGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2Fj
aGVQYXJ0aXRpb24pCiB7Ci0gICAgYXV0byogcmVzb3VyY2VzID0gc2Vzc2lvblJlc291cmNlTWFw
KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICBhdXRvKiByZXNvdXJjZXMgPSBz
ZXNzaW9uUmVzb3VyY2VNYXAoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAg
ICAgaWYgKCFyZXNvdXJjZXMpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjcyLDcgKzI3Miw3IEBA
IHZvaWQgTWVtb3J5Q2FjaGU6OmZvckVhY2hSZXNvdXJjZShjb25zdCBXVEY6OkZ1bmN0aW9uPHZv
aWQoQ2FjaGVkUmVzb3VyY2UmKT4mIGZ1CiAgICAgfQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpm
b3JFYWNoU2Vzc2lvblJlc291cmNlKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdURjo6RnVu
Y3Rpb248dm9pZCAoQ2FjaGVkUmVzb3VyY2UmKT4mIGZ1bmN0aW9uKQordm9pZCBNZW1vcnlDYWNo
ZTo6Zm9yRWFjaFNlc3Npb25SZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFdURjo6RnVuY3Rpb248dm9pZCAoQ2FjaGVkUmVzb3VyY2UmKT4mIGZ1bmN0aW9uKQogewogICAg
IGF1dG8gaXQgPSBtX3Nlc3Npb25SZXNvdXJjZXMuZmluZChzZXNzaW9uSUQpOwogICAgIGlmIChp
dCA9PSBtX3Nlc3Npb25SZXNvdXJjZXMuZW5kKCkpCkBAIC01MzEsNyArNTMxLDcgQEAgdm9pZCBN
ZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdpbiYgb3Jp
Z2luKQogICAgICAgICByZW1vdmUoKnJlc291cmNlKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6
cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgSGFz
aFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKK3ZvaWQgTWVtb3J5Q2FjaGU6
OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKIHsKICAgICBhdXRv
KiByZXNvdXJjZU1hcCA9IHNlc3Npb25SZXNvdXJjZU1hcChzZXNzaW9uSUQpOwogICAgIGlmICgh
cmVzb3VyY2VNYXApCkBAIC01NzIsNyArNTcyLDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6Z2V0T3Jp
Z2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3JpZ2lucykKICAgICB9CiB9CiAKLUhh
c2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gTWVtb3J5Q2FjaGU6Om9yaWdpbnNXaXRoQ2Fj
aGUoU2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKK0hhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPj4gTWVtb3J5Q2FjaGU6Om9yaWdpbnNXaXRoQ2FjaGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKSBjb25zdAogewogICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2lu
czsKIApAQCAtNzA3LDcgKzcwNyw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0UmVzb3VyY2Vz
KCkKICAgICBzZXREaXNhYmxlZChmYWxzZSk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0
UmVzb3VyY2VzKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIE1lbW9yeUNhY2hlOjpldmljdFJl
c291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKGRpc2FibGVkKCkp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9NZW1vcnlDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hl
LmgKaW5kZXggMmM0ZGQxMDlmNTcuLmY2N2M4MWM0MjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtMjYsOCArMjYsOCBAQAogCiAjaW5jbHVkZSAiTmF0
aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKLSNpbmNsdWRlICJT
ZXNzaW9uSUQuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVy
L1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTkyLDcgKzkyLDcgQEAgcHVi
bGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE1lbW9yeUNhY2hlJiBzaW5nbGV0b24o
KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclJlcXVl
c3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIGJvb2wgYWRkKENhY2hlZFJlc291cmNlJik7CiAg
ICAgdm9pZCByZW1vdmUoQ2FjaGVkUmVzb3VyY2UmKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXZhbGlkYXRpb25GYWlsZWQoQ2FjaGVkUmVzb3VyY2UmIHJldmFsaWRh
dGluZ1Jlc291cmNlKTsKIAogICAgIHZvaWQgZm9yRWFjaFJlc291cmNlKGNvbnN0IFdURjo6RnVu
Y3Rpb248dm9pZChDYWNoZWRSZXNvdXJjZSYpPiYpOwotICAgIHZvaWQgZm9yRWFjaFNlc3Npb25S
ZXNvdXJjZShTZXNzaW9uSUQsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChDYWNoZWRSZXNvdXJj
ZSYpPiYpOworICAgIHZvaWQgZm9yRWFjaFNlc3Npb25SZXNvdXJjZShQQUw6OlNlc3Npb25JRCwg
Y29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKENhY2hlZFJlc291cmNlJik+Jik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZXN0cm95RGVjb2RlZERhdGFGb3JBbGxJbWFnZXMoKTsKIAogICAgIC8v
IFNldHMgdGhlIGNhY2hlJ3MgbWVtb3J5IGNhcGFjaXRpZXMsIGluIGJ5dGVzLiBUaGVzZSB3aWxs
IGhvbGQgb25seSBhcHByb3hpbWF0ZWx5LApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGRpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxlZDsgfQogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBldmljdFJlc291cmNlcygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZXZpY3RSZXNvdXJjZXMoU2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV2
aWN0UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgcHJ1bmUoKTsKICAgICB2
b2lkIHBydW5lU29vbigpOwpAQCAtMTUzLDkgKzE1Myw5IEBAIHB1YmxpYzoKIAogICAgIHR5cGVk
ZWYgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBTZWN1cml0eU9yaWdpblNldDsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4oU2VjdXJpdHlP
cmlnaW4mKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVJlc291cmNlc1dpdGhPcmln
aW5zKFNlc3Npb25JRCwgY29uc3QgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbnMoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGdldE9yaWdpbnNXaXRoQ2FjaGUoU2VjdXJpdHlPcmlnaW5TZXQm
IG9yaWdpbnMpOwotICAgIFdFQkNPUkVfRVhQT1JUIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPj4gb3JpZ2luc1dpdGhDYWNoZShTZXNzaW9uSUQpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luc1dpdGhDYWNoZShQQUw6
OlNlc3Npb25JRCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFkZEltYWdlVG9D
YWNoZShOYXRpdmVJbWFnZVB0ciYmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGRvbWFpbkZv
ckNhY2hlUGFydGl0aW9uKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUltYWdlRnJv
bUNhY2hlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24p
OwpAQCAtMTg3LDggKzE4Nyw4IEBAIHByaXZhdGU6CiAKICAgICBDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJj
ZU1hcCYpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VNYXAmIGVuc3VyZVNlc3Npb25SZXNvdXJjZU1h
cChTZXNzaW9uSUQpOwotICAgIENhY2hlZFJlc291cmNlTWFwKiBzZXNzaW9uUmVzb3VyY2VNYXAo
U2Vzc2lvbklEKSBjb25zdDsKKyAgICBDYWNoZWRSZXNvdXJjZU1hcCYgZW5zdXJlU2Vzc2lvblJl
c291cmNlTWFwKFBBTDo6U2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZU1hcCogc2Vzc2lv
blJlc291cmNlTWFwKFBBTDo6U2Vzc2lvbklEKSBjb25zdDsKIAogICAgIGJvb2wgbV9kaXNhYmxl
ZDsgIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjYWNoZSBpcyBlbmFibGVkLgogICAgIGJvb2wgbV9p
blBydW5lUmVzb3VyY2VzOwpAQCAtMjExLDcgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAg
Ly8gQSBVUkwtYmFzZWQgbWFwIG9mIGFsbCByZXNvdXJjZXMgdGhhdCBhcmUgaW4gdGhlIGNhY2hl
IChpbmNsdWRpbmcgdGhlIGZyZXNoZXN0IHZlcnNpb24gb2Ygb2JqZWN0cyB0aGF0IGFyZSBjdXJy
ZW50bHkgYmVpbmcgCiAgICAgLy8gcmVmZXJlbmNlZCBieSBhIFdlYiBwYWdlKS4KLSAgICB0eXBl
ZGVmIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+
PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFBBTDo6U2Vz
c2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVk
UmVzb3VyY2VNYXA7CiAgICAgU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwIG1fc2Vzc2lvblJlc291
cmNlczsKIAogICAgIFRpbWVyIG1fcHJ1bmVUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EuaAppbmRleCA2MzA0ZjFmMDZlZC4u
YmRiYTFjOTM1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNr
Q2FjaGVNb25pdG9yQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlz
a0NhY2hlTW9uaXRvckNvY29hLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5j
bHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IF9DRkNhY2hlZFVSTFJlc3BvbnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOwogCkBAIC0zNiwx
OSArMzYsMTkgQEAgY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBjbGFzcyBEaXNrQ2FjaGVNb25pdG9y
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBtb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0
aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZik7CisgICAgc3RhdGljIHZvaWQgbW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6OlNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHRyeUdldEZpbGVCYWNrZWRT
aGFyZWRCdWZmZXJGcm9tQ0ZVUkxDYWNoZWRSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVm
KTsKIAogcHJpdmF0ZToKLSAgICBEaXNrQ2FjaGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CisgICAgRGlza0NhY2hlTW9u
aXRvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQQUw6OlNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZik7CiAKICAgICB2b2lkIHJlc291cmNlQmVjYW1lRmlsZUJhY2tlZChTaGFyZWRC
dWZmZXImKTsKIAogICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkg
Y29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KLSAgICBTZXNzaW9uSUQgc2Vzc2lv
bklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCiAgICAgUmVzb3VyY2VS
ZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwotICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAg
ICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0
b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9y
Q29jb2EubW0KaW5kZXggM2YxOGQyNjkyYjUuLmEwZmJiMWE5YzVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0KQEAgLTUx
LDcgKzUxLDcgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRGlza0NhY2hlTW9uaXRvcjo6dHJ5R2V0
RmlsZUJhY2tlZFNoYXJlZEJ1ZmZlckZyb21DRlVSTENhY2gKICAgICByZXR1cm4gU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoZGF0YSk7CiB9CiAKLXZvaWQgRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZp
bGVCYWNraW5nU3RvcmVDcmVhdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNl
c3Npb25JRCBzZXNzaW9uSUQsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2Up
Cit2b2lkIERpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24o
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UpCiB7CiAgICAgaWYgKCFjYWNo
ZWRSZXNwb25zZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjAsNyArNjAsNyBAQCB2b2lkIERpc2tD
YWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZQogICAgIG5ldyBEaXNrQ2FjaGVNb25pdG9yKHJlcXVlc3QsIHNlc3Npb25J
RCwgY2FjaGVkUmVzcG9uc2UpOyAvLyBCYWxhbmNlZCBieSBkZWxldGUgYW5kIHVuaXF1ZV9wdHIg
aW4gdGhlIGJsb2NrcyBzZXQgdXAgaW4gdGhlIGNvbnN0cnVjdG9yLCBvbmUgb2Ygd2hpY2ggaXMg
Z3VhcmFudGVlZCB0byBydW4uCiB9CiAKLURpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBD
RkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlKQorRGlza0NhY2hlTW9uaXRvcjo6
RGlza0NhY2hlTW9uaXRvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSkK
ICAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKaW5k
ZXggNWFlYzlmNDYxOTguLjNmNmM4ODRjN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNo
ZVN0b3JhZ2VQcm92aWRlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIK
KyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNCw3ICszNCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIENhY2hlU3RvcmFnZVByb3ZpZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZigqbmV3IENhY2hlU3RvcmFnZVByb3ZpZGVyKTsgfQotICAgIHZpcnR1YWwgUmVmPENhY2hl
U3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oU2Vzc2lvbklE
KSB7IHJldHVybiBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoKTsgfQorICAgIHZpcnR1
YWwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24oUEFMOjpTZXNzaW9uSUQpIHsgcmV0dXJuIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0
ZSgpOyB9CiAgICAgdmlydHVhbCB+Q2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IH07CiAKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKaW5kZXggYTc2Yzc5MWM4
NjguLmYwOGU5NTlhMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNl
UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaApA
QCAtMjcsOSArMjcsMTEgQEAKIAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQorbmFtZXNwYWNlIFBBTCB7CiBjbGFzcyBTZXNzaW9uSUQ7Cit9CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIElEQkNsaWVudCB7CiBjbGFzcyBJREJD
b25uZWN0aW9uVG9TZXJ2ZXI7CkBAIC00MCw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5EYXRhYmFzZVByb3ZpZGVyKCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAg
ICB2aXJ0dWFsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9u
VG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFNlc3Npb25JRCYpID0gMDsKKyAgICB2aXJ0dWFsIElE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JT
ZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgPSAwOwogI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAppbmRleCA4ZGY3YTAwOTZkNS4uOTE4MmJjOWE0OTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtMjI5LDcgKzIyOSw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdl
Q29uZmlndXJhdGlvbikKICAgICAsIG1fc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKCpXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uLnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcikpCiAgICAgLCBtX3Vz
ZXJDb250ZW50UHJvdmlkZXIoKldURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQ
cm92aWRlcikpCiAgICAgLCBtX3Zpc2l0ZWRMaW5rU3RvcmUoKldURk1vdmUocGFnZUNvbmZpZ3Vy
YXRpb24udmlzaXRlZExpbmtTdG9yZSkpCi0gICAgLCBtX3Nlc3Npb25JRChTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSkKKyAgICAsIG1fc2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpCiAgICAgLCBtX2lzVXRpbGl0eVBhZ2UoaXNVdGlsaXR5UGFnZUNocm9t
ZUNsaWVudChjaHJvbWUoKS5jbGllbnQoKSkpCiAgICAgLCBtX3BlcmZvcm1hbmNlTW9uaXRvcihp
c1V0aWxpdHlQYWdlKCkgPyBudWxscHRyIDogc3RkOjptYWtlX3VuaXF1ZTxQZXJmb3JtYW5jZU1v
bml0b3I+KCp0aGlzKSkKICAgICAsIG1fbG93UG93ZXJNb2RlTm90aWZpZXIoc3RkOjptYWtlX3Vu
aXF1ZTxMb3dQb3dlck1vZGVOb3RpZmllcj4oW3RoaXNdKGJvb2wgaXNMb3dQb3dlck1vZGVFbmFi
bGVkKSB7IGhhbmRsZUxvd01vZGVQb3dlckNoYW5nZShpc0xvd1Bvd2VyTW9kZUVuYWJsZWQpOyB9
KSkKQEAgLTE0MjgsOSArMTQyOCw5IEBAIHZvaWQgUGFnZTo6c3RvcmFnZUJsb2NraW5nU3RhdGVD
aGFuZ2VkKCkKIHZvaWQgUGFnZTo6ZW5hYmxlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nKGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKICAgICAvLyBEb24ndCBhbGxvdyBjaGFuZ2luZyB0aGUg
bGVnYWN5IHByaXZhdGUgYnJvd3Npbmcgc3RhdGUgaWYgd2UgaGF2ZSBzZXQgYSBzZXNzaW9uIElE
LgotICAgIEFTU0VSVChtX3Nlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSB8fCBtX3Nlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7
CisgICAgQVNTRVJUKG1fc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCkgfHwgbV9zZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNz
aW9uSUQoKSk7CiAKLSAgICBzZXRTZXNzaW9uSUQocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA/IFNl
c3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpOworICAgIHNldFNlc3Npb25JRChwcml2YXRlQnJvd3NpbmdFbmFibGVkID8gUEFM
OjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCiB2b2lkIFBhZ2U6OnVwZGF0ZUlzUGxheWluZ01lZGlh
KHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKQEAgLTIxMDUsMTIgKzIxMDUsMTIgQEAgdm9pZCBQ
YWdlOjpzZXRWaXNpdGVkTGlua1N0b3JlKFJlZjxWaXNpdGVkTGlua1N0b3JlPiYmIHZpc2l0ZWRM
aW5rU3RvcmUpCiAgICAgaW52YWxpZGF0ZVN0eWxlc0ZvckFsbExpbmtzKCk7CiB9CiAKLVNlc3Np
b25JRCBQYWdlOjpzZXNzaW9uSUQoKSBjb25zdAorUEFMOjpTZXNzaW9uSUQgUGFnZTo6c2Vzc2lv
bklEKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7CiB9CiAKLXZvaWQgUGFnZTo6
c2V0U2Vzc2lvbklEKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFBhZ2U6OnNldFNlc3Npb25J
RChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1Zh
bGlkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGI1NGQ3NjJkMzA0Li4yM2U5NGU3NWE1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTMyLDEzICszMiwxMyBAQAogI2luY2x1ZGUgIlJUQ0NvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgotI2luY2x1
ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlICJVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgiCiAjaW5j
bHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdn
ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNTEwLDggKzUxMCw4IEBAIHB1YmxpYzoK
ICAgICBWaXNpdGVkTGlua1N0b3JlJiB2aXNpdGVkTGlua1N0b3JlKCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRWaXNpdGVkTGlua1N0b3JlKFJlZjxWaXNpdGVkTGlua1N0b3JlPiYmKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlc3Npb25JRChTZXNzaW9uSUQpOworICAgIFdFQkNPUkVf
RVhQT1JUIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGVuYWJsZUxlZ2FjeVByaXZhdGVCcm93c2luZyhib29sIHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpOwogICAgIGJvb2wgdXNlc0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBt
X3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOyB9CiAKQEAgLTc4MSw3ICs3ODEsNyBAQCBwcml2YXRl
OgogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZVVzYWdlT3ZlcmxheT4gbV9yZXNvdXJjZVVz
YWdlT3ZlcmxheTsKICNlbmRpZgogCi0gICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFBB
TDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogCiAgICAgYm9vbCBtX2lzQ2xvc2luZyB7IGZhbHNl
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGx1Z0luQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BsdWdJbkNsaWVudC5oCmluZGV4IDI1YTY5NjJjYmQxLi5iOGU5
MWZiYzYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QbHVnSW5DbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BsdWdJbkNsaWVudC5oCkBAIC0yNSw3ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFs
L2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBQbHVnSW5DbGllbnQgewog
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRBdXRvU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdp
biwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFn
ZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIFNlc3Npb25JRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydEZyb21PcmlnaW4o
Y29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgUEFMOjpTZXNzaW9uSUQpID0gMDsKIAogcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgflBsdWdJbkNsaWVudCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFBy
b3ZpZGVyLmNwcAppbmRleCBhNzY1ZDRkNjk1Yi4uMDc4YzI3ZDVlYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAKLVJlZjxTb2NrZXRTdHJlYW1IYW5kbGU+IFNvY2tldFByb3ZpZGVyOjpj
cmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRs
ZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWxQYXJ0aXRpb24pCitSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBTb2NrZXRQcm92aWRlcjo6
Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IGNyZWRlbnRpYWxQYXJ0aXRpb24pCiB7CiAgICAgcmV0dXJuIFNvY2tldFN0cmVhbUhhbmRsZUlt
cGw6OmNyZWF0ZSh1cmwsIGNsaWVudCwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uLCB7
IH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5oCmluZGV4IDU1OWNhZDAyN2Ex
Li43NWMwMmU2Mjc4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaApAQCAtMjUs
NyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgorI2lu
Y2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0z
OSw3ICszOSw3IEBAIGNsYXNzIFVSTDsKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFNvY2tldFByb3Zp
ZGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNvY2tldFByb3ZpZGVyPiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxTb2NrZXRQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTb2NrZXRQcm92aWRlcik7IH0KLSAgICB2aXJ0dWFsIFJlZjxTb2NrZXRTdHJl
YW1IYW5kbGU+IGNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBVUkwmLCBTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQmLCBTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRp
dGlvbik7CisgICAgdmlydHVhbCBSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRT
dHJlYW1IYW5kbGUoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbik7CiAgICAgdmlydHVh
bCB+U29ja2V0UHJvdmlkZXIoKSB7IH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
b2tpZXNTdHJhdGVneS5oCmluZGV4IGUwNDliZTM1MDU0Li41ZGM3NTJlNzE0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNp
Zm5kZWYgQ29va2llc1N0cmF0ZWd5X2gKICNkZWZpbmUgQ29va2llc1N0cmF0ZWd5X2gKIAotI2lu
Y2x1ZGUgIlNlc3Npb25JRC5oIgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmKSA9IDA7CiAgICAgdmlydHVhbCBTdHJp
bmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmKSA9IDA7Ci0gICAgdmlydHVh
bCBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklELCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBVUkwmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmLCBWZWN0b3I8Q29va2llPiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQ29v
a2llKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmlu
ZyYgY29va2llTmFtZSkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCAxMjFhODZjYjEzNi4uNDAzNjc2YTk4
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVh
ZENvcGllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViQ29yZUNyb3NzVGhy
ZWFkQ29waWVyLmNwcApAQCAtMzEsMTIgKzMxLDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmgiCiAKLSNpbmNsdWRlICJTZXNzaW9u
SUQuaCIKICNpbmNsdWRlICJUaHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgorI2luY2x1ZGUgPHBhbC9p
ZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotQ3Jvc3NUaHJlYWRD
b3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgV2ViQ29yZTo6U2Vzc2lvbklEPjo6VHlwZSBDcm9zc1Ro
cmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBXZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb3B5KGNv
bnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQorQ3Jvc3NUaHJlYWRDb3BpZXJCYXNl
PGZhbHNlLCBmYWxzZSwgUEFMOjpTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFz
ZTxmYWxzZSwgZmFsc2UsIFBBTDo6U2Vzc2lvbklEPjo6Y29weShjb25zdCBQQUw6OlNlc3Npb25J
RCYgc2Vzc2lvbklEKQogewogICAgIHJldHVybiBzZXNzaW9uSUQ7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5oCmluZGV4IDdlM2I5
YmMxMTgyLi5iNGM5MjM5MWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTMzLDE2ICszMywxOSBAQAogCiAjaW5jbHVk
ZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVz
cGFjZSBQQUwgewogY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjsKIH0KIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6
OlNlc3Npb25JRD4gewotICAgIHR5cGVkZWYgV2ViQ29yZTo6U2Vzc2lvbklEIFR5cGU7Ci0gICAg
c3RhdGljIFR5cGUgY29weShjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKK3RlbXBsYXRlPD4g
c3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFBBTDo6U2Vzc2lvbklE
PiB7CisgICAgdHlwZWRlZiBQQUw6OlNlc3Npb25JRCBUeXBlOworICAgIHN0YXRpYyBUeXBlIGNv
cHkoY29uc3QgUEFMOjpTZXNzaW9uSUQmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENyb3Nz
VGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYkNvcmU6OlRocmVhZFNhZmVEYXRhQnVm
ZmVyPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hl
VmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFs
aWRhdGlvbi5jcHAKaW5kZXggYzUyNmM0MTdmZTMuLjIyYjgzMzMzMWNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCkBAIC0z
MzksNyArMzM5LDcgQEAgQ2FjaGVDb250cm9sRGlyZWN0aXZlcyBwYXJzZUNhY2hlQ29udHJvbERp
cmVjdGl2ZXMoY29uc3QgSFRUUEhlYWRlck1hcCYgaGVhZGVycykKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1zdGF0aWMgU3RyaW5nIGhlYWRlclZhbHVlRm9yVmFyeShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgaGVhZGVyTmFtZSwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKK3N0YXRpYyBTdHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBoZWFkZXJOYW1lLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCiB7CiAgICAgLy8gRXhwbGljaXQgaGFuZGxpbmcgZm9yIGNvb2tpZXMgaXMgbmVl
ZGVkIGJlY2F1c2UgdGhleSBhcmUgYWRkZWQgbWFnaWNhbGx5IGJ5IHRoZSBuZXR3b3JraW5nIGxh
eWVyLgogICAgIC8vIEZJWE1FOiBUaGUgdmFsdWUgbWlnaHQgaGF2ZSBjaGFuZ2VkIGJldHdlZW4g
bWFraW5nIHRoZSByZXF1ZXN0IGFuZCByZXRyaWV2aW5nIHRoZSBjb29raWUgaGVyZS4KQEAgLTM0
OCw3ICszNDgsNyBAQCBzdGF0aWMgU3RyaW5nIGhlYWRlclZhbHVlRm9yVmFyeShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgaAogICAgIGlmIChoZWFkZXJOYW1l
ID09IGh0dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBIZWFkZXJOYW1lOjpDb29raWUpKSB7CiAgICAg
ICAgIGF1dG8qIGNvb2tpZVN0cmF0ZWd5ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCkgPyBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCkgOiBudWxscHRyOwogICAgICAgICBpZiAo
IWNvb2tpZVN0cmF0ZWd5KSB7Ci0gICAgICAgICAgICBBU1NFUlQoc2Vzc2lvbklEID09IFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChzZXNzaW9uSUQg
PT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgICAgICAgICByZXR1
cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpk
ZWZhdWx0U3RvcmFnZVNlc3Npb24oKSwgcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBy
ZXF1ZXN0LnVybCgpKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gY29va2llU3RyYXRlZ3kt
PmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb25JRCwgcmVxdWVzdC5maXJzdFBh
cnR5Rm9yQ29va2llcygpLCByZXF1ZXN0LnVybCgpKTsKQEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0
aWMgU3RyaW5nIGhlYWRlclZhbHVlRm9yVmFyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgaAogICAgIHJldHVybiByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZCho
ZWFkZXJOYW1lKTsKIH0KIAotVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNvbGxl
Y3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKK1ZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0
VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBTdHJpbmcgdmFyeVZhbHVlID0gcmVzcG9uc2UuaHR0
cEhlYWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpWYXJ5KTsKICAgICBpZiAodmFy
eVZhbHVlLmlzRW1wdHkoKSkKQEAgLTM3Myw3ICszNzMsNyBAQCBWZWN0b3I8c3RkOjpwYWlyPFN0
cmluZywgU3RyaW5nPj4gY29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVycyhjb25zdCBXZWJDb3Jl
OjpSZQogICAgIHJldHVybiB2YXJ5aW5nUmVxdWVzdEhlYWRlcnM7CiB9CiAKLWJvb2wgdmVyaWZ5
VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJp
bmc+PiYgdmFyeWluZ1JlcXVlc3RIZWFkZXJzLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitib29sIHZlcmlmeVZhcnlpbmdSZXF1
ZXN0SGVhZGVycyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHZhcnlp
bmdSZXF1ZXN0SGVhZGVycywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgZm9yIChhdXRvJiB2YXJ5aW5nUmVx
dWVzdEhlYWRlciA6IHZhcnlpbmdSZXF1ZXN0SGVhZGVycykgewogICAgICAgICAvLyBGSVhNRTog
VmFyeTogKiBpbiByZXNwb25zZSB3b3VsZCBpZGVhbGx5IHRyaWdnZXIgYSBjYWNoZSBkZWxldGUg
aW5zdGVhZCBvZiBhIHN0b3JlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9DYWNoZVZhbGlkYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ2FjaGVWYWxpZGF0aW9uLmgKaW5kZXggNDQzYjIzMWU4ZDYuLmVmZTUwZWFiYmJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmgK
QEAgLTI2LDggKzI2LDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUGxhdGZvcm1FeHBv
cnRNYWNyb3MuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDxjaHJvbm8+Cisj
aW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtNzAsOCArNzAsOCBAQCBzdHJ1Y3QgQ2FjaGVDb250cm9sRGlyZWN0aXZlcyB7
CiB9OwogV0VCQ09SRV9FWFBPUlQgQ2FjaGVDb250cm9sRGlyZWN0aXZlcyBwYXJzZUNhY2hlQ29u
dHJvbERpcmVjdGl2ZXMoY29uc3QgSFRUUEhlYWRlck1hcCYpOwogCi1XRUJDT1JFX0VYUE9SVCBW
ZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gY29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVh
ZGVycyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgU2Vz
c2lvbklEID0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwotV0VCQ09SRV9FWFBPUlQg
Ym9vbCB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxT
dHJpbmcsIFN0cmluZz4+JiB2YXJ5aW5nUmVxdWVzdEhlYWRlcnMsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKK1dFQkNP
UkVfRVhQT1JUIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWlu
Z1JlcXVlc3RIZWFkZXJzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmLCBQQUw6OlNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpOworV0VCQ09SRV9FWFBPUlQgYm9vbCB2ZXJpZnlWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29u
c3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB2YXJ5aW5nUmVxdWVzdEhlYWRl
cnMsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBBTDo6U2Vzc2lvbklEID0gUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAKIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTdGF0dXND
b2RlQ2FjaGVhYmxlQnlEZWZhdWx0KGludCBzdGF0dXNDb2RlKTsKIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaXNTdGF0dXNDb2RlUG90ZW50aWFsbHlDYWNoZWFibGUoaW50IHN0YXR1c0NvZGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uY3BwCmluZGV4IDk4ZGEwODJhZWU2Li40MTY4OGMwNWY3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmNwcApAQCAtMjYsMjcgKzI2LDI3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNp
bmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1IYXNoTWFwPFNlc3Npb25JRCwg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246Omdsb2JhbFNlc3Npb25NYXAoKQorSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBOZXR3b3JrU3RvcmFnZVNlc3Npb246
Omdsb2JhbFNlc3Npb25NYXAoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFw
PFNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+PiBtYXA7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+Pj4gbWFwOwogICAgIHJldHVybiBtYXA7
CiB9CiAKLU5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9y
YWdlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQorTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKIHsKLSAgICBpZiAoc2Vzc2lvbklEID09IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKQorICAgIGlmIChzZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSkKICAgICAgICAgcmV0dXJuICZkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKICAgICByZXR1
cm4gZ2xvYmFsU2Vzc2lvbk1hcCgpLmdldChzZXNzaW9uSUQpOwogfQogCi12b2lkIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6ZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSk7CisgICAgQVNTRVJUKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKTsKICAgICBnbG9iYWxTZXNzaW9uTWFwKCkucmVtb3ZlKHNlc3Npb25JRCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IGRlZDI2Y2FmNGMxLi5iNDU5ZmMzM2UxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNy
ZWRlbnRpYWxTdG9yYWdlLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCisjaW5jbHVkZSA8cGFs
L2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTYyLDE1ICs2MiwxNSBAQCBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb24gewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbik7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIGRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UgPSBTdHJpbmcoKSk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllckJhc2UgPSBTdHJpbmcoKSk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgZGVzdHJveVNlc3Npb24oU2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBzdG9yYWdlU2Vzc2lvbihQQUw6OlNl
c3Npb25JRCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFz
ZSA9IFN0cmluZygpKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNz
aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlID0gU3RyaW5n
KCkpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRlc3Ryb3lTZXNzaW9uKFBBTDo6
U2Vzc2lvbklEKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JFYWNoKGNvbnN0
IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24m
KT4mKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHN3aXRjaFRvTmV3VGVzdGlu
Z1Nlc3Npb24oKTsKIAotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBt
X3Nlc3Npb25JRDsgfQorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgQ3JlZGVudGlhbFN0b3JhZ2UmIGNyZWRlbnRpYWxTdG9y
YWdlKCkgeyByZXR1cm4gbV9jcmVkZW50aWFsU3RvcmFnZTsgfQogCiAjaWZkZWYgX19PQkpDX18K
QEAgLTc4LDggKzc4LDggQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkg
fHwgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBl
bnN1cmVTZXNzaW9uKFNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSwgUmV0
YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYpOwotICAgIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbihTZXNzaW9uSUQsIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiYmLCBSZXRh
aW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVu
dGlmaWVyQmFzZSwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYpOworICAgIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgUmV0YWluUHRyPENGVVJMU3RvcmFn
ZVNlc3Npb25SZWY+JiYsIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiYmKTsKIAog
ICAgIC8vIE1heSBiZSBudWxsLCBpbiB3aGljaCBjYXNlIGEgRm91bmRhdGlvbiBkZWZhdWx0IHNo
b3VsZCBiZSB1c2VkLgogICAgIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcGxhdGZvcm1TZXNzaW9u
KCkgeyByZXR1cm4gbV9wbGF0Zm9ybVNlc3Npb24uZ2V0KCk7IH0KQEAgLTkxLDcgKzkxLDcgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxkUGFydGl0aW9uQ29va2ll
c0Zvckhvc3RzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9SZW1vdmUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBkb21haW5zVG9BZGQsIGJvb2wgY2xlYXJGaXJzdCk7CiAjZW5kaWYKICNl
bGlmIFVTRShTT1VQKQotICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQsIHN0ZDo6
dW5pcXVlX3B0cjxTb3VwTmV0d29ya1Nlc3Npb24+JiYpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3b3JrU2Vzc2lvbj4m
Jik7CiAgICAgfk5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpOwogCiAgICAgU291cE5ldHdvcmtTZXNz
aW9uKiBzb3VwTmV0d29ya1Nlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7
IH07CkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0Q3JlZGVudGlhbEZy
b21QZXJzaXN0ZW50U3RvcmFnZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBGdW5jdGlvbjx2b2lk
IChDcmVkZW50aWFsJiYpPiBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgdm9pZCBzYXZlQ3JlZGVu
dGlhbFRvUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgQ3Jl
ZGVudGlhbCYpOwogI2Vsc2UKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU2Vzc2lvbklELCBO
ZXR3b3JraW5nQ29udGV4dCopOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Np
b25JRCwgTmV0d29ya2luZ0NvbnRleHQqKTsKICAgICB+TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7
CiAKICAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCgpIGNvbnN0OwpAQCAtMTE3LDggKzEx
Nyw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZsdXNoQ29va2llU3RvcmUo
KTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgSGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVl
X3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgZ2xvYmFsU2Vzc2lvbk1hcCgpOwotICAgIFNl
c3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBzdGF0aWMgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4+JiBnbG9iYWxTZXNzaW9uTWFw
KCk7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAKICNpZiBQTEFURk9STShDT0NP
QSkgfHwgVVNFKENGVVJMQ09OTkVDVElPTikKICAgICBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vz
c2lvblJlZj4gbV9wbGF0Zm9ybVNlc3Npb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAppbmRl
eCA0ZTFlMzNlNmJkYy4uYjJhNjU3ZjJiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcApA
QCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0KQorTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fY29udGV4dChj
b250ZXh0KQogewpAQCAtNDksMTIgKzQ5LDEyIEBAIE5ldHdvcmtpbmdDb250ZXh0KiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHQuZ2V0
KCk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFNlc3Npb25JRCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYp
Cit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KQEAgLTY4
LDcgKzY4LDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+
JiBkZWZhdWx0U2Vzc2lvbigpCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkKIHsKICAgICBpZiAoIWRlZmF1bHRTZXNz
aW9uKCkpCi0gICAgICAgIGRlZmF1bHRTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbj4oU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIp
OworICAgICAgICBkZWZhdWx0U2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIp
OwogICAgIHJldHVybiAqZGVmYXVsdFNlc3Npb24oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0LmNwcAppbmRleCAzZTA4NTRmNGY3OS4uN2U5MDMyYzM0M2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBSZXRhaW5Q
dHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4gY3JlYXRlQ0ZTdG9yYWdlU2Vzc2lvbkZvcklkZW50
aWZpZXIoQ0ZTCiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uOwogfQogCi1OZXR3b3JrU3RvcmFn
ZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBSZXRh
aW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4mJiBwbGF0Zm9ybVNlc3Npb24sIFJldGFpblB0
cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiYmIHBsYXRmb3JtQ29va2llU3RvcmFnZSkKK05ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+JiYgcGxhdGZvcm1TZXNz
aW9uLCBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4mJiBwbGF0Zm9ybUNvb2tpZVN0
b3JhZ2UpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX3BsYXRmb3JtU2Vz
c2lvbihXVEZNb3ZlKHBsYXRmb3JtU2Vzc2lvbikpCiB7CkBAIC05OSwyMyArOTksMjMgQEAgdm9p
ZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQogICAg
IGlmIChzZXNzaW9uKQogICAgICAgICBjb29raWVTdG9yYWdlID0gYWRvcHRDRihfQ0ZVUkxTdG9y
YWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHNlc3Npb24u
Z2V0KCkpKTsKIAotICAgIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSA9IHN0ZDo6bWFr
ZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSwgV1RGTW92ZShzZXNzaW9uKSwgV1RGTW92ZShjb29raWVTdG9yYWdlKSk7CisgICAgZGVm
YXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdURk1vdmUo
c2Vzc2lvbiksIFdURk1vdmUoY29va2llU3RvcmFnZSkpOwogfQogCiBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkKIHsK
ICAgICBpZiAoIWRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkKLSAgICAgICAgZGVmYXVs
dE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFn
ZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBudWxscHRyLCBudWxscHRy
KTsKKyAgICAgICAgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpID0gc3RkOjptYWtlX3Vu
aXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCksIG51bGxwdHIsIG51bGxwdHIpOwogICAgIHJldHVybiAqZGVmYXVsdE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbigpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJp
dmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlk
ZW50aWZpZXJCYXNlKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlk
ZW50aWZpZXJCYXNlKQogewogICAgIEFTU0VSVChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7CiAg
ICAgZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIGlkZW50aWZpZXJCYXNlKTsKIH0KIAotdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3Jh
Z2VSZWY+JiYgY29va2llU3RvcmFnZSkKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1
cmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyQmFzZSwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYgY29va2llU3RvcmFn
ZSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IGdsb2JhbFNlc3Npb25NYXAoKS5hZGQoc2Vzc2lv
bklELCBudWxscHRyKTsKICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQpAQCAtMTM5LDcg
KzEzOSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKFNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgaWRlCiAgICAgYWRkUmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihzZXNzaW9u
SUQsIFdURk1vdmUoc3RvcmFnZVNlc3Npb24pLCBXVEZNb3ZlKGNvb2tpZVN0b3JhZ2UpKTsKIH0K
IAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVNlc3Npb24oU2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyQmFzZSkKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiBpZGVudGlmaWVyQmFzZSkKIHsKICAgICBlbnN1cmVTZXNzaW9uKHNlc3Npb25JRCwg
aWRlbnRpZmllckJhc2UsIG51bGxwdHIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaAppbmRleCAw
OWQyYTg3MWI2MC4uNWQ2ZjIzZjg1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCkBAIC0zMSw4
ICszMSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5j
bHVkZSAiU29ja2V0U3RyZWFtSGFuZGxlLmgiCisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJl
YW1CdWZmZXIuaD4KIApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGVD
bGllbnQ7CiAKIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUltcGwgOiBwdWJsaWMgU29ja2V0U3Ry
ZWFtSGFuZGxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNvY2tldFN0cmVhbUhhbmRsZUlt
cGw+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGll
bnQsIFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlv
biwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhKSB7IHJldHVybiBhZG9w
dFJlZigqbmV3IFNvY2tldFN0cmVhbUhhbmRsZUltcGwodXJsLCBjbGllbnQsIHNlc3Npb25JRCwg
Y3JlZGVudGlhbFBhcnRpdGlvbiwgV1RGTW92ZShhdWRpdERhdGEpKSk7IH0KKyAgICBzdGF0aWMg
UmVmPFNvY2tldFN0cmVhbUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9r
ZW4mJiBhdWRpdERhdGEpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0U3RyZWFtSGFuZGxl
SW1wbCh1cmwsIGNsaWVudCwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uLCBXVEZNb3Zl
KGF1ZGl0RGF0YSkpKTsgfQogCiAgICAgdmlydHVhbCB+U29ja2V0U3RyZWFtSGFuZGxlSW1wbCgp
OwogCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+
IHBsYXRmb3JtU2VuZEludGVybmFsKGNvbnN0IGNoYXIqLCBzaXplX3QpOwogICAgIGJvb2wgc2Vu
ZFBlbmRpbmdEYXRhKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFNlc3Npb25JRCwgY29u
c3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9r
ZW4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbChjb25zdCBV
UkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7
CiAgICAgdm9pZCBjcmVhdGVTdHJlYW1zKCk7CiAgICAgdm9pZCBzY2hlZHVsZVN0cmVhbXMoKTsK
ICAgICB2b2lkIGNob29zZVByb3h5KCk7CkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAg
UmV0YWluUHRyPENGV3JpdGVTdHJlYW1SZWY+IG1fd3JpdGVTdHJlYW07CiAKICAgICBSZXRhaW5Q
dHI8Q0ZVUkxSZWY+IG1faHR0cHNVUkw7IC8vIHdzKHMpOiByZXBsYWNlZCB3aXRoIGh0dHBzOgot
ICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25J
RDsKICAgICBTdHJpbmcgbV9jcmVkZW50aWFsUGFydGl0aW9uOwogICAgIFNvdXJjZUFwcGxpY2F0
aW9uQXVkaXRUb2tlbiBtX2F1ZGl0RGF0YTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZO
ZXQuY3BwCmluZGV4IDMzNjZhYTYwNmRhLi4wOTk4YTFlODVmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbENGTmV0LmNwcApAQCAtNjQsNyArNjQsNyBAQCBleHRlcm4gIkMiIGNvbnN0IENG
U3RyaW5nUmVmIF9rQ0ZTdHJlYW1Tb2NrZXRTZXROb0RlbGF5OwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVNvY2tldFN0cmVhbUhhbmRsZUltcGw6OlNvY2tldFN0cmVhbUhhbmRsZUltcGwoY29u
c3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxp
Y2F0aW9uQXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSkKK1NvY2tldFN0cmVhbUhhbmRsZUltcGw6OlNv
Y2tldFN0cmVhbUhhbmRsZUltcGwoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNs
aWVudCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3Jl
ZGVudGlhbFBhcnRpdGlvbiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRh
KQogICAgIDogU29ja2V0U3RyZWFtSGFuZGxlKHVybCwgY2xpZW50KQogICAgICwgbV9jb25uZWN0
aW5nU3Vic3RhdGUoTmV3KQogICAgICwgbV9jb25uZWN0aW9uVHlwZShVbmtub3duKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhh
bmRsZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmgKaW5kZXggZGIzMDkwZTg4YTYuLjgwYjk4MGJkYWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsLmgKQEAgLTM3LDggKzM3LDggQEAKICNpbmNsdWRlIDx3aW5zb2Nr
Mi5oPgogI2VuZGlmCiAKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDxjdXJsL2N1
cmwuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudDsK
IAogY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlSW1wbCA6IHB1YmxpYyBTb2NrZXRTdHJlYW1IYW5k
bGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gY3Jl
YXRlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgU2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJikgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsKHVybCwgY2xpZW50KSk7
IH0KKyAgICBzdGF0aWMgUmVmPFNvY2tldFN0cmVhbUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBV
UkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBTdHJpbmcmLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJikgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsKHVybCwgY2xpZW50KSk7IH0KIAog
ICAgIHZpcnR1YWwgflNvY2tldFN0cmVhbUhhbmRsZUltcGwoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9y
YWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IDVjNWZkNzU0MTNkLi4wZGZjNjY1NDBmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdl
U2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtNDksNyArNDksNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLU5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxTb3VwTmV0d29ya1Nl
c3Npb24+JiYgc2Vzc2lvbikKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3
b3JrU2Vzc2lvbj4mJiBzZXNzaW9uKQogICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAg
ICwgbV9zZXNzaW9uKFdURk1vdmUoc2Vzc2lvbikpCiB7CkBAIC03NSwyNSArNzUsMjUgQEAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBkZWZhdWx0U2Vzc2lv
bigpCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVs
dFN0b3JhZ2VTZXNzaW9uKCkKIHsKICAgICBpZiAoIWRlZmF1bHRTZXNzaW9uKCkpCi0gICAgICAg
IGRlZmF1bHRTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4oU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIpOworICAgICAgICBkZWZh
dWx0U2Vzc2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIG51bGxwdHIpOwogICAgIHJldHVybiAq
ZGVmYXVsdFNlc3Npb24oKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBBU1NF
UlQoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICBBU1NF
UlQoc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAg
IEFTU0VSVCghZ2xvYmFsU2Vzc2lvbk1hcCgpLmNvbnRhaW5zKHNlc3Npb25JRCkpOwogICAgIGds
b2JhbFNlc3Npb25NYXAoKS5hZGQoc2Vzc2lvbklELCBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbj4oc2Vzc2lvbklELCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXBOZXR3b3JrU2Vz
c2lvbj4oKSkpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lv
bihTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBG
SVhNRTogSW1wbGVtZW50CiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hU
b05ld1Rlc3RpbmdTZXNzaW9uKCkKIHsKLSAgICBkZWZhdWx0U2Vzc2lvbigpID0gc3RkOjptYWtl
X3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXBOZXR3b3JrU2Vzc2lvbj4oKSk7CisgICAgZGVmYXVs
dFNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXBOZXR3
b3JrU2Vzc2lvbj4oKSk7CiB9CiAKIFNvdXBOZXR3b3JrU2Vzc2lvbiYgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpnZXRPckNyZWF0ZVNvdXBOZXR3b3JrU2Vzc2lvbigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVh
bUhhbmRsZUltcGwuaAppbmRleCA5Mzc4OTk1MGEwZi4uZmUwMjQyM2VhZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0
cmVhbUhhbmRsZUltcGwuaApAQCAtMzYsNyArMzYsNyBAQAogCiAjaWYgVVNFKFNPVVApCiAKLSNp
bmNsdWRlICJTZXNzaW9uSUQuaCIKKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvU3RyZWFtQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1Jl
ZlB0ci5oPgogCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVu
dDsKIAogY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlSW1wbCBmaW5hbCA6IHB1YmxpYyBTb2NrZXRT
dHJlYW1IYW5kbGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxl
SW1wbD4gY3JlYXRlKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYpOworICAg
IHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gY3JlYXRlKGNvbnN0IFVSTCYsIFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmLCBT
b3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CiAgICAgc3RhdGljIFJlZjxTb2NrZXRTdHJl
YW1IYW5kbGU+IGNyZWF0ZShHU29ja2V0Q29ubmVjdGlvbiosIFNvY2tldFN0cmVhbUhhbmRsZUNs
aWVudCYpOwogCiAgICAgdmlydHVhbCB+U29ja2V0U3RyZWFtSGFuZGxlSW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhh
bmRsZUltcGxTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKaW5kZXggZTg1OTRlOTQzYzEuLjhlNTBiZDZj
MzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29j
a2V0U3RyZWFtSGFuZGxlSW1wbFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKQEAgLTYzLDcgKzYz
LDcgQEAgc3RhdGljIHZvaWQgd3NzU29ja2V0Q2xpZW50RXZlbnRDYWxsYmFjayhHU29ja2V0Q2xp
ZW50KiwgR1NvY2tldENsaWVudEV2ZW50IGV2ZW4KICAgICBnX3NpZ25hbF9jb25uZWN0KGNvbm5l
Y3Rpb24sICJhY2NlcHQtY2VydGlmaWNhdGUiLCBHX0NBTExCQUNLKHdzc0Nvbm5lY3Rpb25BY2Nl
cHRDZXJ0aWZpY2F0ZUNhbGxiYWNrKSwgbnVsbHB0cik7CiB9CiAKLVJlZjxTb2NrZXRTdHJlYW1I
YW5kbGVJbXBsPiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUoY29uc3QgVVJMJiB1cmws
IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYsIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmKQorUmVmPFNvY2tldFN0cmVhbUhhbmRs
ZUltcGw+IFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJikKIHsKICAgICBSZWY8U29ja2V0U3Ry
ZWFtSGFuZGxlSW1wbD4gc29ja2V0ID0gYWRvcHRSZWYoKm5ldyBTb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsKHVybCwgY2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9E
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggN2I3M2Y1OTMzZGEuLjEyMTA1ODUz
MzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmNwcApAQCAtNDEsNyArNDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3Rvbmlj
VGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlv
blByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIFNlc3Npb25JRCBzZXNzaW9u
SUQpCitSZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBj
b25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25p
Y1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rp
b25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCiB7CiAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZSh1cmwsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgdGhyZWFkLCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFdURk1vdmUodG9wT3JpZ2lu
KSwgdGltZU9yaWdpbiwgY29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgc2Vzc2lvbklE
KSk7CiAgICAgaWYgKCFzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kp
CkBAIC00OSw3ICs0OSw3IEBAIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShjb25zdCBVUkwmIHVyCiAgICAgcmV0dXJuIGNv
bnRleHQ7CiB9CiAKLURlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpEZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2Nr
ZXRQcm92aWRlciwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2Vy
VGhyZWFkJiB0aHJlYWQsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJveHks
IFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogICAgIDogV29ya2VyR2xvYmFsU2NvcGUodXJsLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIHRo
cmVhZCwgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBXVEZNb3Zl
KHRvcE9yaWdpbiksIHRpbWVPcmlnaW4sIGNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIs
IHNlc3Npb25JRCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCAyZDUwOGYxYTg5My4uMzRlZGVjMDZkNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCiBj
bGFzcyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBmaW5hbCA6IHB1YmxpYyBXb3JrZXJHbG9i
YWxTY29wZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZT4gY3JlYXRlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBN
b25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Kiwg
U29ja2V0UHJvdmlkZXIqLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyBSZWY8RGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRv
cE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwg
fkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKCk7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBw
b3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlLCBWZWN0b3I8
SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYpOwpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHVzaW5nIEJhc2UgPSBXb3JrZXJHbG9iYWxTY29wZTsKIAotICAgIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJp
dHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBTZXNzaW9uSUQpOworICAg
IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBQQUw6OlNlc3Npb25J
RCk7CiAKICAgICBib29sIGlzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW1wb3J0U2NyaXB0cyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscykgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKaW5kZXggYTQ4MzhiNDcwYjMuLjUwOTJi
YzljYjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJU
aHJlYWQuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGVk
aWNhdGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5
LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHksIFdvcmtlclRocmVhZFN0YXJ0
TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRv
cE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIs
IEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncywgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0Rl
ZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94
eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5LCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0
b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0
aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVy
LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICA6IFdvcmtlclRocmVhZCh1cmwsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgc291cmNl
Q29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlck9iamVjdFByb3h5LCBzdGFydE1vZGUsIGNv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5LCB0b3BPcmlnaW4sIHRpbWVPcmlnaW4sIGNvbm5lY3Rpb25Q
cm94eSwgc29ja2V0UHJvdmlkZXIsIHJ1bnRpbWVGbGFncywgc2Vzc2lvbklEKQogICAgICwgbV93
b3JrZXJPYmplY3RQcm94eSh3b3JrZXJPYmplY3RQcm94eSkKIHsKQEAgLTQ4LDcgKzQ4LDcgQEAg
RGVkaWNhdGVkV29ya2VyVGhyZWFkOjp+RGVkaWNhdGVkV29ya2VyVGhyZWFkKCkKIHsKIH0KIAot
UmVmPFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKK1JlZjxXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVh
dGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJp
dHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKIHsKICAgICByZXR1cm4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU6OmNyZWF0ZSh1cmwsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgKnRoaXMsIGNvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5LCBXVEZNb3ZlKHRvcE9yaWdpbiksIHRpbWVPcmlnaW4sIGlkYkNvbm5lY3Rp
b25Qcm94eSgpLCBzb2NrZXRQcm92aWRlcigpLCBzZXNzaW9uSUQpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKaW5kZXggZWMwMTJmNWJmYTAu
Ljc3NWIwYzA5YjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRl
ZFdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29y
a2VyVGhyZWFkLmgKQEAgLTQ5LDExICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgV29ya2VyT2JqZWN0
UHJveHkmIHdvcmtlck9iamVjdFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJPYmplY3RQ
cm94eTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVX
b3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3Jp
Z2luLCBTZXNzaW9uSUQpIG92ZXJyaWRlOworICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3Jl
YXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQ
b2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGlt
ZU9yaWdpbiwgUEFMOjpTZXNzaW9uSUQpIG92ZXJyaWRlOwogICAgIHZvaWQgcnVuRXZlbnRMb29w
KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgRGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0
IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmpl
Y3RQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1Rp
bWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92
aWRlciosIEpTQzo6UnVudGltZUZsYWdzLCBTZXNzaW9uSUQpOworICAgIERlZGljYXRlZFdvcmtl
clRocmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5
JiwgV29ya2VyT2JqZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IENvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2lu
LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiwgU29ja2V0UHJvdmlkZXIqLCBKU0M6OlJ1bnRpbWVGbGFncywgUEFMOjpTZXNzaW9uSUQpOwog
CiAgICAgV29ya2VyT2JqZWN0UHJveHkmIG1fd29ya2VyT2JqZWN0UHJveHk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IDQzNjEyZDIzM2RkLi44MjkwMzE0MDVkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgV29ya2VyOjpk
aWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlCiB2b2lkIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQoKQogewogICAgIGF1dG8qIGNv
bnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25J
RCA9IGNvbnRleHQgPyBjb250ZXh0LT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRCgpOworICAgIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCA9IGNvbnRleHQgPyBjb250ZXh0LT5zZXNzaW9uSUQoKSA6
IFBBTDo6U2Vzc2lvbklEKCk7CiAKICAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpIHx8
ICFzZXNzaW9uSUQuaXNWYWxpZCgpKQogICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGQ5YWQ1OWEyNWZlLi44OGIz
MmZhMzE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5j
cHAKQEAgLTUyLDcgKzUyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1Xb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUoY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIFdvcmtlclRocmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9u
b3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29u
bmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIFNlc3Npb25JRCBz
ZXNzaW9uSUQpCitXb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IFdvcmtlclRocmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3Rvbmlj
VGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlv
blByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICA6IG1fdXJsKHVybCkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVy
KQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDA0OTFkN2M0ZmRkLi5iODkwMDA0NjQ1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMzAsNyArMzAsNiBA
QAogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJFdmVudFRh
cmdldC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJT
ZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlVSTC5o
IgogI2luY2x1ZGUgIldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKQEAgLTM4LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8aW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHBh
bC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEx
Miw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygp
IGZpbmFsOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2Vy
VGhyZWFkJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIFNlc3Np
b25JRCk7CisgICAgV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkJiwgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9y
aWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIFBBTDo6U2Vzc2lvbklEKTsKIAog
ICAgIHZvaWQgYXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMoY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJik7CiAKQEAgLTEzNCw3ICsxMzQs
NyBAQCBwcml2YXRlOgogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGNvbnN0X2Nhc3Q8V29ya2VyR2xvYmFs
U2NvcGUqPih0aGlzKTsgfQogICAgIFVSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25z
dCBmaW5hbDsKLSAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJM
JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSkgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlV2ViQXNzZW1ibHkoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpIGZpbmFsOwpAQCAtMTg2LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogICAgIG11dGFibGUgUmVmUHRyPENy
eXB0bz4gbV9jcnlwdG87CiAKLSAgICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmUHRyPFdvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24+IG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNjdhZGY3MDE0NzcuLmMx
ZGY0OWM2ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlUHJveHkuaApAQCAtMzUsMTAgKzM1LDEzIEBACiAjaW5jbHVkZSA8cnVudGltZS9SdW50aW1l
RmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogCituYW1lc3BhY2UgUEFM
IHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM7Ci1jbGFzcyBTZXNzaW9uSUQ7CiBj
bGFzcyBVUkw7CiBjbGFzcyBXb3JrZXI7CiAKQEAgLTQ3LDcgKzUwLDcgQEAgY2xhc3MgV29ya2Vy
R2xvYmFsU2NvcGVQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3Bl
UHJveHkmIGNyZWF0ZShXb3JrZXImKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vzc2lv
bklEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
VVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNv
dXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNU
aW1lIHRpbWVPcmlnaW4sIEpTQzo6UnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApp
bmRleCAxOTY1M2Q4YzJiNS4uNGIyYWMxMzBiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFdvcmtlck1l
c3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8V29y
a2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGN1cnJlbnRUaHJl
YWQoKSA9PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkudGhyZWFkKCkudGhyZWFkSUQoKSkpOwogfQogCi12b2lkIFdvcmtlck1lc3NhZ2luZ1By
b3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZs
YWdzLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3Rh
cnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25v
dG9uaWNUaW1lIHRpbWVPcmlnaW4sIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncywgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUg
cmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NF
UlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCA3OTNhNGM1MDY1MS4uYzEyM2UzZjkyNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTQ1
LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2Yg
V29ya2VyR2xvYmFsU2NvcGVQcm94eS4KICAgICAvLyAoT25seSB1c2UgdGhlc2UgZnVuY3Rpb25z
IGluIHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4pCi0gICAgdm9pZCBzdGFydFdvcmtlckdsb2Jh
bFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vzc2lvbklE
KSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3Jp
cHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUs
IGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVP
cmlnaW4sIEpTQzo6UnVudGltZUZsYWdzLCBQQUw6OlNlc3Npb25JRCkgZmluYWw7CiAgICAgdm9p
ZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3Nh
Z2VUb1dvcmtlckdsb2JhbFNjb3BlKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4pIGZpbmFsOwogICAgIGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAKaW5kZXggZjZhYjllNGVmZTEuLmE2YjcxMTIyNDllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHVuc2lnbmVk
IFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkQ291bnQoKQogc3RydWN0IFdvcmtlclRocmVhZFN0
YXJ0dXBEYXRhIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJUaHJlYWRTdGFydHVw
RGF0YSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdvcmtlclRocmVh
ZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdv
cmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgU2Vzc2lvbklEKTsKKyAgICBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwmIHNj
cmlwdFVSTCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9w
T3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKTsKIAogICAg
IFVSTCBtX3NjcmlwdFVSTDsKICAgICBTdHJpbmcgbV9pZGVudGlmaWVyOwpAQCAtODMsMTAgKzgz
LDEwIEBAIHB1YmxpYzoKICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5OwogICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gbV90b3BPcmlnaW47CiAgICAg
TW9ub3RvbmljVGltZSBtX3RpbWVPcmlnaW47Ci0gICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklEOwor
ICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAotV29ya2VyVGhyZWFkU3RhcnR1
cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJp
bmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0
aW1lT3JpZ2luLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorV29ya2VyVGhyZWFkU3RhcnR1cERhdGE6
OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNv
dXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3Jp
Z2luLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3NjcmlwdFVSTChzY3JpcHRV
UkwuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllci5pc29sYXRl
ZENvcHkoKSkKICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudC5pc29sYXRlZENvcHkoKSkKQEAg
LTEwMCw3ICsxMDAsNyBAQCBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6V29ya2VyVGhyZWFkU3Rh
cnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cgogewogfQogCi1Xb3JrZXJU
aHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGlu
Z1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0
TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBN
b25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBj
b25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50
aW1lRmxhZ3MgcnVudGltZUZsYWdzLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorV29ya2VyVGhyZWFk
OjpXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
V29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94
eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUs
IGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgTW9ub3Rv
bmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVj
dGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZs
YWdzIHJ1bnRpbWVGbGFncywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV93b3Jr
ZXJMb2FkZXJQcm94eSh3b3JrZXJMb2FkZXJQcm94eSkKICAgICAsIG1fd29ya2VyUmVwb3J0aW5n
UHJveHkod29ya2VyUmVwb3J0aW5nUHJveHkpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1l
RmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCBjNTkzMjI5Njdm
ZC4uY2ZlMzQzZWVmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAt
MzEsMTMgKzMxLDE2IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnM7CiBjbGFzcyBVUkw7CiBjbGFzcyBOb3RpZmljYXRpb25DbGllbnQ7CiBjbGFzcyBT
ZWN1cml0eU9yaWdpbjsKLWNsYXNzIFNlc3Npb25JRDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOwog
Y2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CiBjbGFzcyBXb3JrZXJMb2FkZXJQcm94eTsKQEAgLTgx
LDEwICs4NCwxMCBAQCBwdWJsaWM6CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdz
KCkgY29uc3QgeyByZXR1cm4gbV9ydW50aW1lRmxhZ3M7IH0KIAogcHJvdGVjdGVkOgotICAgIFdv
cmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclBy
b3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9w
T3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlv
blByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBKU0M6OlJ1bnRpbWVGbGFncywgU2Vzc2lvbklEKTsK
KyAgICBXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJM
b2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgSlNDOjpSdW50aW1lRmxhZ3MsIFBBTDo6
U2Vzc2lvbklEKTsKIAogICAgIC8vIEZhY3RvcnkgbWV0aG9kIGZvciBjcmVhdGluZyBhIG5ldyB3
b3JrZXIgY29udGV4dCBmb3IgdGhlIHRocmVhZC4KLSAgICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9i
YWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbiwgU2Vzc2lvbklEKSA9IDA7CisgICAgdmlydHVhbCBSZWY8V29y
a2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2lu
LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKSA9IDA7CiAKICAgICAv
LyBFeGVjdXRlcyB0aGUgZXZlbnQgbG9vcCBmb3IgdGhlIHdvcmtlciB0aHJlYWQuIERlcml2ZWQg
Y2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gcGVyZm9ybSBhY3Rpb25zIGJlZm9yZS9hZnRlciBlbnRl
cmluZyB0aGUgZXZlbnQgbG9vcC4KICAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuaAppbmRleCAxMDJjMmZjZmZjMy4uMGU0MmJjNGNmODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
aApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JDbGllbnQuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCIKLSNpbmNsdWRlICJTZXNzaW9uSUQuaCIKKyNp
bmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycy5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggYmE3NDM0YTBlNTIuLjFmOTJhN2ZkMjNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvblBhcmFtZXRlcnMuaApAQCAtMjksMTMgKzI5LDEzIEBACiAKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9ucy5oIgotI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlVSTC5o
IgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uUGFyYW1ldGVycyB7Ci0g
ICAgU2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAg
ICAgVVJMIHNjcmlwdFVSTDsKICAgICBVUkwgY2xpZW50Q3JlYXRpb25VUkw7CiAgICAgU2VjdXJp
dHlPcmlnaW5EYXRhIHRvcE9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODM3ZGJmMWU1NjkuLmI2ZGFkN2Q2
MmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3OSBAQAorMjAxNy0wOC0xNiAgRG9uIE9sbXN0ZWFk
ICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgU2Vzc2lvbklE
IGludG8gUEFMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZCk6CisgICAgICAg
IChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6cmVzdW1lRG93bmxvYWQpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktp
dDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRTdHJlYW0pOgorICAg
ICAgICAoV2ViS2l0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omdl
dFJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2Fk
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
ZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmRvd25sb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZXN1
bWVEb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpkZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpOZXR3
b3JrU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnNlc3Npb25JRCBjb25zdCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTb2NrZXRTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTb2NrZXRTdHJlYW06Ok5ldHdvcmtTb2NrZXRTdHJlYW0pOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkOjpTcGVjdWxhdGl2ZUxvYWQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0Ojpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Nlc3Npb25Db2NvYTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25D
b2NvYTo6ZGVmYXVsdFNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNv
Y29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
U291cDo6TmV0d29ya1Nlc3Npb25Tb3VwKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtTZXNzaW9uU291cC5oOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5OgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMudGVtcGxhdGVz
KTogRGVsZXRlZC4KKyAgICAgICAgKGNsYXNzX3RlbXBsYXRlX2hlYWRlcnMudGVtcGxhdGUpOiBE
ZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpDaGlsZFByb2Nlc3M6OmluaXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9u
VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OnN0YXRpY1Nlc3Npb25NYXApOgorICAgICAg
ICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Np
b25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbik6CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25UcmFj
a2VyLmg6CisgICAgICAgICogU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0u
bW06CisgICAgICAgIChXZWJLaXQ6OndlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRl
ckZpZWxkc0ZvclVSTCk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQpOgorICAgICAgICAqIFN0b3JhZ2VQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBTdG9y
YWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQ
cm9jZXNzOjppZGJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6ZmV0
Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjpkZWxldGVX
ZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjpkZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9j
ZXNzLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMu
aW46CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vz
cy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9j
ZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQ
YWdlQ29uZmlndXJhdGlvbjo6c2V0V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChBUEk6OlBh
Z2VDb25maWd1cmF0aW9uOjpzZXNzaW9uSUQpOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJh
dGlvbjo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25m
aWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3Jl
LmNwcDoKKyAgICAgICAgKEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSk6
CisgICAgICAgIChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZUxlZ2FjeSk6CisgICAgICAg
IChBUEk6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyR2V0SG9z
dG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2ll
c0Zvckhvc3RuYW1lKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMp
OgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llc01vZGlmaWVkQWZ0ZXJE
YXRlKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6Cisg
ICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMpOgorICAg
ICAgICAoV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKC1bV0tQ
cm9jZXNzUG9vbCBfc2V0Q29va2llQWNjZXB0UG9saWN5Ol0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVE
YXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgICh3ZWJraXRfY29va2ll
X21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3kpOgorICAgICAgICAod2Via2l0X2Nvb2tpZV9tYW5h
Z2VyX2dldF9hY2NlcHRfcG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5B
dXRvU3RhcnRQcm92aWRlcjo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIpOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YWRkQXV0b1N0YXJ0T3JpZ2luSGFzaCk6Cisg
ICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5z
VGFibGVDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXI6OnNldEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmRpZFJlY2VpdmVVc2VySW50ZXJh
Y3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3Zp
ZGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURh
dGEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRl
RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1l
c1dpdGhDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5Ojpk
ZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5h
Z2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVN
YW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1h
bmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0QWxsQ29va2llcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
b2tpZU1hbmFnZXJQcm94eTo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llT2Jz
ZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6
cmVnaXN0ZXJPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94
eTo6dW5yZWdpc3Rlck9ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
clByb3h5Ojpjb29raWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFu
YWdlclByb3h5OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Vzc2lv
bklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpj
cmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNy
ZWF0ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGFnZUFkZGVk
VG9Qcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBhZ2VSZW1vdmVk
RnJvbVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6YWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbHVnSW5EaWRSZWNlaXZlVXNl
ckludGVyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
c0luQWxsUGVyc2lzdGVudERhdGFTdG9yZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OnRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zV2l0aFdlYnNpdGVEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6On5XZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpz
ZXNzaW9uSUQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6Z2V0SG9zdG5h
bWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpkZWxl
dGVDb29raWVzRm9ySG9zdG5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2Vy
OjpkZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6
ZGVsZXRlQ29va2llKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRl
QWxsQ29va2llc01vZGlmaWVkU2luY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5h
Z2VyOjpnZXRBbGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6
Z2V0Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tp
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZXMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpub3RpZnlDb29raWVzRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6c3RvcE9ic2Vydmlu
Z0Nvb2tpZUNoYW5nZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRGF0YWJhc2VQcm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9y
U2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92
aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkQ2FjaGVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVy
U3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0
ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9h
ZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdIYW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFBy
b3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJTb2NrZXRTdHJlYW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRTdHJlYW06
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFN0cmVhbTo6V2ViU29ja2V0U3Ry
ZWFtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFtLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246Omlk
YkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25s
b2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGx1Z0luQ2xpZW50OjpkaWRTdGFydEZyb21PcmlnaW4pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW06CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6c3RhcnREb3dubG9hZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0
U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2gpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRP
cmlnaW5EZWZhdWx0SGFzaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVzZXRQ
bHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisKIDIwMTct
MDgtMTYgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255LmNvbT4K
IAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9pb3MgYW5kIHNwaS93aW4gZGlyZWN0b3JpZXMgaW50
byBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmNwcAppbmRleCBiZjg0NDNiNTcxOC4uY2Q5MjE5NTIxYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKQEAgLTQ1
LDcgKzQ1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi1Eb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRN
YW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgTmV0d29ya0Rh
dGFUYXNrJiBkb3dubG9hZCwgY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgc3VnZ2VzdGVkTmFtZSkKK0Rvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRv
d25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBOZXR3b3JrRGF0YVRhc2smIGRv
d25sb2FkLCBjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1
Z2dlc3RlZE5hbWUpCiAgICAgOiBtX2Rvd25sb2FkTWFuYWdlcihkb3dubG9hZE1hbmFnZXIpCiAg
ICAgLCBtX2Rvd25sb2FkSUQoZG93bmxvYWRJRCkKICAgICAsIG1fZG93bmxvYWQoJmRvd25sb2Fk
KQpAQCAtNTcsNyArNTcsNyBAQCBEb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBk
b3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgTmV0dwogICAgIG1fZG93bmxv
YWRNYW5hZ2VyLmRpZENyZWF0ZURvd25sb2FkKCk7CiB9CiAjaWYgUExBVEZPUk0oQ09DT0EpCi1E
b3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25s
b2FkSUQgZG93bmxvYWRJRCwgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrKiBkb3dubG9hZCwgY29u
c3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkKK0Rv
d25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxv
YWRJRCBkb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sqIGRvd25sb2FkLCBjb25z
dCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUp
CiAgICAgOiBtX2Rvd25sb2FkTWFuYWdlcihkb3dubG9hZE1hbmFnZXIpCiAgICAgLCBtX2Rvd25s
b2FkSUQoZG93bmxvYWRJRCkKICAgICAsIG1fZG93bmxvYWRUYXNrKGRvd25sb2FkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKaW5kZXgg
YWU0ZDdjZmY2Y2YuLmJjOWVhNGY1MjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKQEAgLTMyLDggKzMyLDggQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhh
bmRsZUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCkBAIC03Niw5ICs3Niw5IEBAIGNsYXNzIERv
d25sb2FkIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRG93bmxvYWQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICNpZiBV
U0UoTkVUV09SS19TRVNTSU9OKQotICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25s
b2FkSUQsIE5ldHdvcmtEYXRhVGFzayYsIGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgc2Vzc2lv
bklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKKyAgICBEb3dubG9h
ZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBOZXR3b3JrRGF0YVRhc2smLCBjb25zdCBQ
QUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1l
ID0geyB9KTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBEb3dubG9hZChEb3dubG9hZE1hbmFn
ZXImLCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sqLCBjb25zdCBXZWJDb3Jl
OjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9
IHsgfSk7CisgICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgTlNVUkxT
ZXNzaW9uRG93bmxvYWRUYXNrKiwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29u
c3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7CiAjZW5kaWYKICNlbHNlCiAgICAg
RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7CkBA
IC0xNDMsNyArMTQzLDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRh
aW5QdHI8TlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrPiBtX2Rvd25sb2FkVGFzazsKICNlbmRpZgot
ICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKICNlbHNlIC8vIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBTdHJpbmcgbV9yZXNwb25zZU1JTUVUeXBl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkTWFuYWdlci5jcHAKaW5kZXggYjc2YmE0N2JkMTAuLmVmMTUzMDE5YTM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkTWFuYWdlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJQZW5kaW5nRG93
bmxvYWQuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Tm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1
ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC00NSw3ICs0NSw3IEBAIERvd25s
b2FkTWFuYWdlcjo6RG93bmxvYWRNYW5hZ2VyKENsaWVudCYgY2xpZW50KQogewogfQogCi12b2lk
IERvd25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyogY29ubmVjdGlvbiwgU2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9h
ZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgc3VnZ2Vz
dGVkTmFtZSkKK3ZvaWQgRG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCiB7CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikK
ICAgICBhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IFNlc3Npb25UcmFja2VyOjpuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpOwpAQCAtMTYyLDcgKzE2Miw3IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpj
b250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQgZG93bmxv
CiAjZW5kaWYKIH0KIAotdm9pZCBEb3dubG9hZE1hbmFnZXI6OnJlc3VtZURvd25sb2FkKFNlc3Np
b25JRCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJl
c3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQordm9pZCBEb3dubG9hZE1hbmFnZXI6OnJlc3Vt
ZURvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiB7CiAjaWYg
VVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIu
aAppbmRleCBiNGQ1MjViNzJkNC4uMTYzYzAwYTViNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCkBAIC0z
NSwxMiArMzUsMTUgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQmxvYkRhdGFGaWxlUmVmZXJlbmNlOwogY2xhc3Mg
UmVzb3VyY2VIYW5kbGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOwotY2xhc3MgU2Vzc2lvbklEOwogfQogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTc1LDcg
Kzc4LDcgQEAgcHVibGljOgogCiAgICAgZXhwbGljaXQgRG93bmxvYWRNYW5hZ2VyKENsaWVudCYp
OwogCi0gICAgdm9pZCBzdGFydERvd25sb2FkKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KiwgV2ViQ29yZTo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOworICAgIHZvaWQg
c3RhcnREb3dubG9hZChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyosIFBBTDo6U2Vzc2lv
bklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAg
ICAgdm9pZCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhEb3dubG9hZElELCBzdGQ6OnVuaXF1
ZV9wdHI8RG93bmxvYWQ+JiYpOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJB
Q0spCkBAIC04Nyw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnZlcnROZXR3b3JrTG9h
ZFRvRG93bmxvYWQoRG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtMb2FkPiYmLCBW
ZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+JiYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KTsKICAgICB2b2lkIGNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93
bmxvYWRJRCwgU3RyaW5nIGRlc3RpbmF0aW9uLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmLCBib29sIGFsbG93T3ZlcndyaXRlKTsKIAotICAgIHZvaWQgcmVzdW1lRG93bmxvYWQoV2Vi
Q29yZTo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJl
c3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJik7CisgICAgdm9pZCByZXN1bWVEb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJ
RCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogCiAgICAgdm9pZCBjYW5jZWxE
b3dubG9hZChEb3dubG9hZElEKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCmluZGV4IDY1MjJk
OTgyNjg0Li5hZTk0NzRhNTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCkBAIC0zMSw3ICszMSw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZVR5cGVzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVz
cG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9p
ZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgUGFy
YW1ldGVycyB7CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVl
c3Q7CiAgICAgICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc291cmNlT3JpZ2luOwot
ICAgICAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworICAgICAgICBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQ7CiAgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIGFsbG93
U3RvcmVkQ3JlZGVudGlhbHM7CiAgICAgfTsKICAgICBlbnVtIGNsYXNzIFJlc3VsdCB7IFN1Y2Nl
c3MsIEZhaWx1cmUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzNiYTYwYzI3
ZTMuLmQyNDFjMGQ3MzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTEsNyAr
NTEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRl
IDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
CiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKQEAgLTE3Myw3ICsxNzMsNyBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSQogewogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
cmVhdGVTb2NrZXRTdHJlYW0oVVJMJiYgdXJsLCBTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcg
Y2FjaGVQYXJ0aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRTdHJlYW0oVVJMJiYgdXJsLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFN0cmluZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmll
cikKIHsKICAgICBBU1NFUlQoIW1fbmV0d29ya1NvY2tldFN0cmVhbXMuY29udGFpbnMoaWRlbnRp
ZmllcikpOwogICAgIFdlYkNvcmU6OlNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiB0b2tlbiA9
IHsgfTsKQEAgLTI2MywxMCArMjYzLDEwIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiAgICAgTmV0d29ya1By
b2Nlc3M6OnNpbmdsZXRvbigpLnByZWZldGNoRE5TKGhvc3RuYW1lKTsKIH0KIAotc3RhdGljIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkK
K3N0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7Ci0gICAg
aWYgKHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgeworICAgIGlm
IChzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgewogICAg
ICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0
b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgICAgICByZXR1cm4gKnN0b3JhZ2VTZXNz
aW9uOwogCkBAIC0yNzcsMTIgKzI3NywxMiBAQCBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIHJldHVybiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQogCi12b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKFNlc3Npb25JRCBzZXNzaW9u
SUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxv
YWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgc3VnZ2VzdGVkTmFtZSkKIHsKICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCku
ZG93bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZCh0aGlzLCBzZXNzaW9uSUQsIGRvd25sb2Fk
SUQsIHJlcXVlc3QsIHN1Z2dlc3RlZE5hbWUpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoU2Vzc2lvbklE
IHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25sb2Fk
SUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElEIGRv
d25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgYXV0byYgbmV0d29ya1Byb2Nlc3MgPSBOZXR3b3Jr
UHJvY2Vzczo6c2luZ2xldG9uKCk7CiAgICAgaWYgKCFtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
cikgewpAQCAtMjk5LDMyICsyOTksMzIgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFNlc3Npb25JRAogICAgIGxv
YWRlci0+Y29udmVydFRvRG93bmxvYWQoZG93bmxvYWRJRCwgcmVxdWVzdCwgcmVzcG9uc2UpOwog
fQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmws
IFN0cmluZyYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29v
a2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgVVJMJiB1cmwsIFN0cmluZyYgcmVzdWx0KQogewogICAgIHJlc3VsdCA9IFdlYkNv
cmU6OmNvb2tpZXNGb3JET00oc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwg
dXJsKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2ll
c0Zyb21ET00oU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgY29va2llU3RyaW5nKQogewogICAgIFdlYkNvcmU6OnNldENvb2tpZXNGcm9tRE9NKHN0b3Jh
Z2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCwgY29va2llU3RyaW5nKTsKIH0K
IAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQoU2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwg
Ym9vbCYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2ll
c0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFVSTCYgdXJsLCBib29sJiByZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gV2ViQ29yZTo6
Y29va2llc0VuYWJsZWQoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmlyc3RQYXJ0eSwgdXJs
KTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBVUkwmIHVybCwgU3RyaW5nJiByZXN1bHQpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFN0
cmluZyYgcmVzdWx0KQogewogICAgIHJlc3VsdCA9IFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCk7
CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMo
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVy
bCwgVmVjdG9yPENvb2tpZT4mIHJlc3VsdCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgcmVzdWx0KQogewog
ICAgIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwgZmly
c3RQYXJ0eSwgdXJsLCByZXN1bHQpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkZWxldGVDb29raWUoU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpCiB7CiAgICAgV2ViQ29yZTo6ZGVsZXRlQ29v
a2llKHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCksIHVybCwgY29va2llTmFtZSk7CiB9CkBAIC00
MjAsNyArNDIwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q2Fw
dHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib28KIAogdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
CiB7Ci0gICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oe1Nlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCB7IH0sIHsgfSwg
eyB9fSk7CisgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oe1BBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCksIHsg
fSwgeyB9LCB7IH19KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKaW5kZXggMzg0Y2NlNzRjNDIuLjI2N2ExYTZhYWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oCkBAIC04OCwxNSArODgsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZUxv
YWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0RGVmZXJz
TG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIGNyb3NzT3Jp
Z2luUmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIHJlZGlyZWN0VVJMKTsKLSAgICB2b2lkIHN0YXJ0RG93bmxvYWQoV2ViQ29yZTo6U2Vz
c2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwotICAgIHZvaWQgY29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291
cmNlTG9hZElkZW50aWZpZXIsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIHN0YXJ0
RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CisgICAgdm9p
ZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2
NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAK
LSAgICB2b2lkIGNvb2tpZXNGb3JET00oV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3Jl
OjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFN0cmluZyYgcmVzdWx0KTsK
LSAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcm
KTsKLSAgICB2b2lkIGNvb2tpZXNFbmFibGVkKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sJiByZXN1bHQp
OwotICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lv
bklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYs
IFN0cmluZyYgcmVzdWx0KTsKLSAgICB2b2lkIGdldFJhd0Nvb2tpZXMoV2ViQ29yZTo6U2Vzc2lv
bklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYs
IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik7Ci0gICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29y
ZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5h
bWUpOworICAgIHZvaWQgY29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJlc3VsdCk7
CisgICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIGNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wmIHJlc3VsdCk7CisgICAg
dm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBTdHJpbmcmIHJl
c3VsdCk7CisgICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+Jik7CisgICAgdm9pZCBkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKICAgICB2b2lkIHJl
Z2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBwYXRo
LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0
b3I8V2ViQ29yZTo6QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwpAQCAt
MTEyLDcgKzExMiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdv
cmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCk7CiAKLSAgICB2b2lkIGNyZWF0ZVNvY2tldFN0cmVh
bShXZWJDb3JlOjpVUkwmJiwgV2ViQ29yZTo6U2Vzc2lvbklELCBTdHJpbmcgY2FjaGVQYXJ0aXRp
b24sIHVpbnQ2NF90KTsKKyAgICB2b2lkIGNyZWF0ZVNvY2tldFN0cmVhbShXZWJDb3JlOjpVUkwm
JiwgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QpOwogICAg
IHZvaWQgZGVzdHJveVNvY2tldFN0cmVhbSh1aW50NjRfdCk7CiAgICAgCiAgICAgdm9pZCBlbnN1
cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBlZTI1ODRiYzNiYy4uOTYwOGI0OWJlZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjksMTUgKzI5LDE1
IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZp
ZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0bmFtZSkKIAotICAg
IFN0YXJ0RG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3du
bG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJp
bmcgc3VnZ2VzdGVkTmFtZSkKLSAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQo
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElk
ZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKKyAg
ICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9h
ZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcg
c3VnZ2VzdGVkTmFtZSkKKyAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29v
a2llc0ZvckRPTShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmly
c3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0cmluZyByZXN1bHQpCi0gICAgU2V0Q29v
a2llc0Zyb21ET00oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZp
cnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVTdHJpbmcpCi0gICAgQ29v
a2llc0VuYWJsZWQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZp
cnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChib29sIGVuYWJsZWQpCi0gICAgQ29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJpbmcgcmVzdWx0
KQotICAgIEdldFJhd0Nvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29y
ZTo6VVJMIGZpcnN0UGFydHksIFdlYkNvcmU6OlVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6
Q29va2llPiBjb29raWVzKQotICAgIERlbGV0ZUNvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKKyAgICBDb29raWVz
Rm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHks
IFdlYkNvcmU6OlVSTCB1cmwpIC0+IChTdHJpbmcgcmVzdWx0KQorICAgIFNldENvb2tpZXNGcm9t
RE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdl
YkNvcmU6OlVSTCB1cmwsIFN0cmluZyBjb29raWVTdHJpbmcpCisgICAgQ29va2llc0VuYWJsZWQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29y
ZTo6VVJMIHVybCkgLT4gKGJvb2wgZW5hYmxlZCkKKyAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5
LCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKKyAgICBHZXRSYXdDb29raWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIFdlYkNv
cmU6OlVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKQorICAgIERl
bGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCB1cmwsIFN0
cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVnaXN0ZXJGaWxlQmxvYlVSTChXZWJDb3JlOjpVUkwg
dXJsLCBTdHJpbmcgcGF0aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZXh0ZW5z
aW9uSGFuZGxlLCBTdHJpbmcgY29udGVudFR5cGUpCiAgICAgUmVnaXN0ZXJCbG9iVVJMKFdlYkNv
cmU6OlVSTCB1cmwsIFZlY3RvcjxXZWJDb3JlOjpCbG9iUGFydD4gYmxvYlBhcnRzLCBTdHJpbmcg
Y29udGVudFR5cGUpCkBAIC01Myw3ICs1Myw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFNldENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCi0gICAgQ3JlYXRlU29ja2V0
U3RyZWFtKFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0
cmluZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllcikKKyAgICBDcmVhdGVTb2Nr
ZXRTdHJlYW0oV2ViQ29yZTo6VVJMIHVybCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJp
bmcgY2FjaGVQYXJ0aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIpCiAKICAgICBFbnN1cmVMZWdh
Y3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggMDQ3NDdjNDBhMDIuLjg1YTViMTJlODUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtMzUsOCAr
MzUsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2hhcmVkQnVmZmVyLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRl
cnMuaAppbmRleCBkMDY0YmViZWNlYS4uMTRhNWU5M2I1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMjksNyAr
MjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6
CiAgICAgdWludDY0X3Qgd2ViUGFnZUlEIHsgMCB9OwogICAgIHVpbnQ2NF90IHdlYkZyYW1lSUQg
eyAwIH07Ci0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCB7IFdlYkNvcmU6OlNlc3Np
b25JRDo6ZW1wdHlTZXNzaW9uSUQoKSB9OworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCB7
IFBBTDo6U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgpIH07CiAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNv
bnRlbnRTbmlmZmluZ1BvbGljeSB7IFdlYkNvcmU6OlNuaWZmQ29udGVudCB9OwogICAgIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMgeyBXZWJDb3JlOjpE
b05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMWJlMzhhMjcyMTguLmUxZWYxNTFiYmI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cApAQCAtNjEsOSArNjEsOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVVJMUGFyc2VyLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYmCiAKICAgICAvLyBGSVhNRTogaW5zdGVhZCBvZiBoYW5kbGluZyB0aGlzIGhl
cmUsIGEgbWVzc2FnZSBzaG91bGQgYmUgc2VudCBsYXRlciAoc2NhbGVzIHRvIG11bHRpcGxlIHNl
c3Npb25zKQogICAgIGlmIChwYXJhbWV0ZXJzLnByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAg
ICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KHtTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgeyB9LCB7IH0sIHsgfX0pOwor
ICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbih7UEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSwgeyB9LCB7IH0s
IHsgfX0pOwogCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNz
aW9uKQogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nl
c3Npb24oKTsKQEAgLTI5OCw3ICsyOTgsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJz
aXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycwogICAg
IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lvbihX
VEZNb3ZlKHBhcmFtZXRlcnMpKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNl
c3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBTZXNzaW9uVHJhY2tlcjo6
ZGVzdHJveVNlc3Npb24oc2Vzc2lvbklEKTsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjp1cGRhdGVDb29raWVQYXJ0aXRpb25pbmdGb3JUb3BQcml2YXRlbHlPd25l
ZERvbWFpbnMoY29uc3QgVgogfQogI2VuZGlmCiAKLXN0YXRpYyB2b2lkIGZldGNoRGlza0NhY2hl
RW50cmllcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9w
dGlvbj4gZmV0Y2hPcHRpb25zLCBGdW5jdGlvbjx2b2lkIChWZWN0b3I8V2Vic2l0ZURhdGE6OkVu
dHJ5Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCitzdGF0aWMgdm9pZCBmZXRjaERpc2tDYWNoZUVu
dHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRj
aE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBGdW5jdGlvbjx2b2lkIChWZWN0b3I8V2Vic2l0ZURhdGE6
OkVudHJ5Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FD
SEUpCiAgICAgaWYgKGF1dG8qIGNhY2hlID0gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmNh
Y2hlKCkpIHsKQEAgLTM2MCw3ICszNjAsNyBAQCBzdGF0aWMgdm9pZCBmZXRjaERpc2tDYWNoZUVu
dHJpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0YwogICAg
IH0pOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMs
IE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywg
dWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIGZp
bmFsIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yPiB7CiAgICAgICAgIGV4
cGxpY2l0IENhbGxiYWNrQWdncmVnYXRvcihGdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCkBAIC00MDIsNyArNDAyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGEKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRh
KFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVE
YXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRT
aW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdl
YnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9w
b2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlw
ZTo6SFNUU0NhY2hlKSkgewpAQCAtNDYwLDcgKzQ2MCw3IEBAIHN0YXRpYyB2b2lkIGNsZWFyRGlz
a0NhY2hlRW50cmllcyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywg
RnVuCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNp
dGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lE
KQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7
CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpDb29r
aWVzKSkgewogICAgICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtNDc5LDEyICs0
NzksMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDwKICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkb3dubG9hZFJlcXVlc3QoU2Vzc2lvbklEIHNl
c3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpkb3dubG9hZFJlcXVlc3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3dubG9hZElE
IGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5n
JiBzdWdnZXN0ZWRGaWxlbmFtZSkKIHsKICAgICBkb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25s
b2FkKG51bGxwdHIsIHNlc3Npb25JRCwgZG93bmxvYWRJRCwgcmVxdWVzdCwgc3VnZ2VzdGVkRmls
ZW5hbWUpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXN1bWVEb3dubG9hZChTZXNzaW9u
SUQgc2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKK3ZvaWQgTmV0d29y
a1Byb2Nlc3M6OnJlc3VtZURvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxv
YWRJRCBkb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNv
bnN0IFN0cmluZyYgcGF0aCwgY29uc3QgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
IHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiB7CiAgICAgZG93bmxvYWRNYW5hZ2VyKCkucmVzdW1l
RG93bmxvYWQoc2Vzc2lvbklELCBkb3dubG9hZElELCByZXN1bWVEYXRhLCBwYXRoLCBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAppbmRleCBkZGYxZmEyMjQ5NS4uZWRlMmJmM2U5NjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTMwLDggKzMwLDgg
QEAKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXJNYXAuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVk
ZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmg+CkBAIC00MiwxMyArNDIsMTYgQEAKICNpbmNsdWRlICJXZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIuaCIKICNlbmRpZgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsK
K30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG93bmxvYWRJRDsKIGNsYXNzIENlcnRp
ZmljYXRlSW5mbzsKIGNsYXNzIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjsKIGNsYXNzIFByb3RlY3Rp
b25TcGFjZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2Vzc2lvbklEOwogc3RydWN0
IFNlY3VyaXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3M7CiB9
CkBAIC0xNzEsMTkgKzE3NCwxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdv
cmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQg
Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIGFkZFdlYnNp
dGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBkZXN0
cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgZGVzdHJveVNlc3Npb24o
UEFMOjpTZXNzaW9uSUQpOwogCi0gICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0
YUZldGNoT3B0aW9uPiwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkZWxldGVXZWJz
aXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBz
dGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdl
YkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGZl
dGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1v
ZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwogCiAgICAgdm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CiAKICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgdGFrZSBhIHNlc3Npb24gSUQgc28gd2UgY2FuIGlkZW50aWZ5IHdoaWNoIGRp
c2sgY2FjaGUgdG8gZGVsZXRlLgogICAgIHZvaWQgY2xlYXJEaXNrQ2FjaGUoc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBGdW5jdGlvbjx2b2lkICgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKIAotICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0KFdlYkNv
cmU6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSk7Ci0gICAgdm9pZCByZXN1bWVEb3du
bG9hZChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUmKTsKKyAgICB2b2lkIGRvd25sb2FkUmVxdWVzdChQQUw6OlNlc3Npb25JRCwg
RG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5n
JiBzdWdnZXN0ZWRGaWxlbmFtZSk7CisgICAgdm9pZCByZXN1bWVEb3dubG9hZChQQUw6OlNlc3Np
b25JRCwgRG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBj
b25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogICAg
IHZvaWQgY2FuY2VsRG93bmxvYWQoRG93bmxvYWRJRCk7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BB
Q0VfQVVUSF9DQUxMQkFDSykKICAgICB2b2lkIGNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5z
dFByb3RlY3Rpb25TcGFjZSh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sIGNh
bkF1dGhlbnRpY2F0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzNmU0Nzc3ODlmMi4uYWNhZjgxZjJm
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzcsMTQgKzM3LDE0IEBAIG1lc3NhZ2VzIC0+IE5ldHdv
cmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oc3RydWN0IFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgd2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMpCiAgICAgQWRkV2Vic2l0ZURhdGFTdG9yZShzdHJ1Y3QgV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyB3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyk7
Ci0gICAgRGVzdHJveVNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBE
ZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKLSAgICBGZXRjaFdlYnNp
dGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6Oldl
YnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0
ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCB1aW50NjRfdCBjYWxsYmFja0lEKQotICAg
IERlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFj
a0lEKQotICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMsIFZlY3Rv
cjxTdHJpbmc+IGNvb2tpZUhvc3ROYW1lcywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBGZXRj
aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJz
aXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisg
ICAgRGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMs
IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMsIFZlY3RvcjxTdHJp
bmc+IGNvb2tpZUhvc3ROYW1lcywgdWludDY0X3QgY2FsbGJhY2tJRCkKIAotICAgIERvd25sb2Fk
UmVxdWVzdChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQg
ZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBzdWdn
ZXN0ZWRGaWxlbmFtZSkKLSAgICBSZXN1bWVEb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgSVBDOjpEYXRhUmVmZXJlbmNl
IHJlc3VtZURhdGEsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQorICAgIERvd25sb2FkUmVxdWVzdChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKQorICAgIFJl
c3VtZURvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElE
IGRvd25sb2FkSUQsIElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bWVEYXRhLCBTdHJpbmcgcGF0aCwg
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkK
ICAgICBDYW5jZWxEb3dubG9hZChXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCkKIAogI2lm
IFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmgKaW5kZXggMWNmZTdhOGJlM2YuLjhhZjQyMWExMTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9w
dGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9T
ZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggNmVkNWY3ZmYyMTQuLmRi
ZTUxOWM0MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXNwb25zZTsgfQogCiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKSB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KLSAgICBXZWJDb3JlOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLnNlc3Npb25J
RDsgfQorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFy
YW1ldGVycy5zZXNzaW9uSUQ7IH0KICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcjsgfQogICAgIHVpbnQ2
NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRDsgfQog
ICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5j
cHAKaW5kZXggNDk4MDA1ZWQxYzkuLjY3OTRkMDBkZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDUsNyArNDUsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxOZXR3b3Jr
U2Vzc2lvbj4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZShTZXNzaW9uSUQgc2Vzc2lvbklELCBMZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXIqIGN1c3RvbVByb3RvY29sTWFuYWdlcikKK1JlZjxOZXR3
b3JrU2Vzc2lvbj4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyKQog
ewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHJldHVybiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpj
cmVhdGUoc2Vzc2lvbklELCBjdXN0b21Qcm90b2NvbE1hbmFnZXIpOwpAQCAtNjIsNyArNjIsNyBA
QCBOZXR3b3JrU2Vzc2lvbiYgTmV0d29ya1Nlc3Npb246OmRlZmF1bHRTZXNzaW9uKCkKICAgICBy
ZXR1cm4gTmV0d29ya1Nlc3Npb25Db2NvYTo6ZGVmYXVsdFNlc3Npb24oKTsKICNlbHNlCiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBzdGF0aWMgTmV0d29ya1Nlc3Npb24qIHNl
c3Npb24gPSAmTmV0d29ya1Nlc3Npb246OmNyZWF0ZShTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSkubGVha1JlZigpOworICAgIHN0YXRpYyBOZXR3b3JrU2Vzc2lvbiogc2Vzc2lvbiA9ICZO
ZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
LmxlYWtSZWYoKTsKICAgICByZXR1cm4gKnNlc3Npb247CiAjZW5kaWYKIH0KQEAgLTc0LDcgKzc0
LDcgQEAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3b3JrU2Vzc2lvbjo6bmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKCkgY29uc3QKICAgICByZXR1cm4gKnN0b3JhZ2VTZXNzaW9uOwogfQogCi1OZXR3
b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK05ldHdvcmtT
ZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBt
X3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggYWMyMzA5MTQzYjcuLjVhM2ZlNmNlMzFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0yNyw3
ICsyNyw3IEBACiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogCi0jaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgpAQCAtNDMsMjMgKzQzLDIzIEBAIGNsYXNzIE5ldHdvcmtEYXRhVGFz
azsKIAogY2xhc3MgTmV0d29ya1Nlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrU2Vz
c2lvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShX
ZWJDb3JlOjpTZXNzaW9uSUQsIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciogPSBudWxscHRy
KTsKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQs
IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciogPSBudWxscHRyKTsKICAgICBzdGF0aWMgTmV0
d29ya1Nlc3Npb24mIGRlZmF1bHRTZXNzaW9uKCk7CiAgICAgdmlydHVhbCB+TmV0d29ya1Nlc3Np
b24oKTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQW5kQ2FuY2VsKCk7CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyQ3JlZGVudGlhbHMoKSB7IH07CiAKLSAgICBXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgY29u
c3Q7CiAKICAgICB2b2lkIHJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtEYXRhVGFzayYg
dGFzaykgeyBtX2RhdGFUYXNrU2V0LmFkZCgmdGFzayk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJO
ZXR3b3JrRGF0YVRhc2soTmV0d29ya0RhdGFUYXNrJiB0YXNrKSB7IG1fZGF0YVRhc2tTZXQucmVt
b3ZlKCZ0YXNrKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6
U2Vzc2lvbklEKTsKKyAgICBOZXR3b3JrU2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CiAKLSAgICBX
ZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CiAKICAgICBIYXNoU2V0PE5ldHdvcmtEYXRhVGFzayo+IG1fZGF0YVRhc2tTZXQ7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0
U3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0
cmVhbS5jcHAKaW5kZXggMzMxNzBkYTgzZjIuLmMxMTYwODMxYzBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHAKQEAgLTM1
LDEyICszNSwxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLVJlZjxOZXR3b3JrU29ja2V0U3RyZWFtPiBOZXR3b3JrU29ja2V0U3RyZWFtOjpjcmVh
dGUoV2ViQ29yZTo6VVJMJiYgdXJsLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIsIElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVk
aXREYXRhKQorUmVmPE5ldHdvcmtTb2NrZXRTdHJlYW0+IE5ldHdvcmtTb2NrZXRTdHJlYW06OmNy
ZWF0ZShXZWJDb3JlOjpVUkwmJiB1cmwsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlmaWVyLCBJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmIGF1ZGl0
RGF0YSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU29ja2V0U3RyZWFtKFdU
Rk1vdmUodXJsKSwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uLCBpZGVudGlmaWVyLCBj
b25uZWN0aW9uLCBXVEZNb3ZlKGF1ZGl0RGF0YSkpKTsKIH0KIAotTmV0d29ya1NvY2tldFN0cmVh
bTo6TmV0d29ya1NvY2tldFN0cmVhbShVUkwmJiB1cmwsIFNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRpZmllciwgSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBh
dWRpdERhdGEpCitOZXR3b3JrU29ja2V0U3RyZWFtOjpOZXR3b3JrU29ja2V0U3RyZWFtKFVSTCYm
IHVybCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQ
YXJ0aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhKQogICAgIDogbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAs
IG1faW1wbChTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUodXJsLCAqdGhpcywgc2Vzc2lv
bklELCBjcmVkZW50aWFsUGFydGl0aW9uLCBXVEZNb3ZlKGF1ZGl0RGF0YSkpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uaAppbmRleCA3
ZGMzZDBjZTNlOS4uZTQ2NTA3M2JjOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5oCkBAIC0yNyw5ICsyNyw5IEBACiAKICNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCi0jaW5j
bHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvY2tldFN0cmVh
bUhhbmRsZUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0U3RyZWFtSGFuZGxlSW1w
bC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2Ug
SVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBOZXR3b3JrU29ja2V0U3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0
d29ya1NvY2tldFN0cmVhbT4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrU29ja2V0U3RyZWFtPiBjcmVhdGUo
V2ViQ29yZTo6VVJMJiYsIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50
aWFsUGFydGl0aW9uLCB1aW50NjRfdCwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U291cmNl
QXBwbGljYXRpb25BdWRpdFRva2VuJiYpOworICAgIHN0YXRpYyBSZWY8TmV0d29ya1NvY2tldFN0
cmVhbT4gY3JlYXRlKFdlYkNvcmU6OlVSTCYmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBjcmVkZW50aWFsUGFydGl0aW9uLCB1aW50NjRfdCwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6U291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYpOwogICAgIH5OZXR3b3JrU29ja2V0U3Ry
ZWFtKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOwpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIElQQzo6Q29ubmVj
dGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBmaW5hbDsKICAgICB1aW50NjRfdCBtZXNz
YWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGZpbmFsOwogCi0gICAgTmV0d29ya1NvY2tldFN0cmVh
bShXZWJDb3JlOjpVUkwmJiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWxQYXJ0aXRpb24sIHVpbnQ2NF90LCBJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpTb3Vy
Y2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CisgICAgTmV0d29ya1NvY2tldFN0cmVhbShXZWJD
b3JlOjpVUkwmJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRp
dGlvbiwgdWludDY0X3QsIElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNvdXJjZUFwcGxpY2F0
aW9uQXVkaXRUb2tlbiYmKTsKIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKICAgICBJUEM6
OkNvbm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBhYjNlZmJiNDIxNy4u
MmU0ZTdjOTUyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNkZWZpbmUgUmVt
b3RlTmV0d29ya2luZ0NvbnRleHRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29u
dGV4dC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lk
ZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0zNiw3ICsz
Niw3IEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIAogY2xhc3MgUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRl
eHQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNy
ZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgc3RhdGljIFJlZjxSZW1vdGVOZXR3b3JraW5n
Q29udGV4dD4gY3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoc2Vzc2lvbklELCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CiAgICAgfQpAQCAtNDksNyArNDksNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0OyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQorICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KQogICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAgICAgLCBt
X3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICB7CkBAIC02Niw3ICs2Niw3IEBAIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIFdlYkNv
cmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25J
RDsKICAgICBib29sIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3Bw
CmluZGV4IGUzNzU3YzkxOTEwLi44ZDZlZDA0ZjEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5o
IgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVy
L1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAKQEAgLTUyLDcgKzUyLDcgQEAgU3BlY3VsYXRpdmVMb2FkOjpTcGVjdWxh
dGl2ZUxvYWQoQ2FjaGUmIGNhY2hlLCBjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBjb24K
ICAgICBBU1NFUlQoIW1fY2FjaGVFbnRyeSB8fCBtX2NhY2hlRW50cnktPm5lZWRzVmFsaWRhdGlv
bigpKTsKIAogICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICAgIHBhcmFt
ZXRlcnMuc2Vzc2lvbklEID0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgcGFy
YW1ldGVycy5zZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwog
ICAgIHBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IEFsbG93U3RvcmVkQ3JlZGVu
dGlhbHM7CiAgICAgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBEb05vdFNuaWZm
Q29udGVudDsKICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBtX29yaWdpbmFsUmVxdWVzdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLmgKaW5kZXggMzUxNjQxMmMwNDguLjQ5MDAxZTYwNWEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIE5ldHdvcmtT
ZXNzaW9uQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya1Nlc3Npb24gewogICAgIGZyaWVuZCBj
bGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdv
cmtTZXNzaW9uPiBjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXIqKTsKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoUEFMOjpT
ZXNzaW9uSUQsIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciopOwogICAgIHN0YXRpYyBOZXR3
b3JrU2Vzc2lvbiYgZGVmYXVsdFNlc3Npb24oKTsKICAgICB+TmV0d29ya1Nlc3Npb25Db2NvYSgp
OwogCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICBEb3dubG9hZElEIHRha2VEb3dubG9h
ZElEKE5ldHdvcmtEYXRhVGFza0NvY29hOjpUYXNrSWRlbnRpZmllcik7CiAKIHByaXZhdGU6Ci0g
ICAgTmV0d29ya1Nlc3Npb25Db2NvYShXZWJDb3JlOjpTZXNzaW9uSUQsIExlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlciopOworICAgIE5ldHdvcmtTZXNzaW9uQ29jb2EoUEFMOjpTZXNzaW9uSUQs
IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciopOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlQW5k
Q2FuY2VsKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhckNyZWRlbnRpYWxzKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KaW5kZXggMGY4NWQwNzBhZWMuLjg3NTQ4MjE3MzY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tCkBAIC00NTUsNyArNDU1LDcgQEAgc3RhdGljIExlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlciogbGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOwogc3RhdGljIGJvb2wgc2Vz
c2lvbnNDcmVhdGVkID0gZmFsc2U7CiAjZW5kaWYKIAotc3RhdGljIE5TVVJMU2Vzc2lvbkNvbmZp
Z3VyYXRpb24gKmNvbmZpZ3VyYXRpb25Gb3JTZXNzaW9uSUQoY29uc3QgV2ViQ29yZTo6U2Vzc2lv
bklEJiBzZXNzaW9uKQorc3RhdGljIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3Vy
YXRpb25Gb3JTZXNzaW9uSUQoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb24pCiB7CiAgICAg
aWYgKHNlc3Npb24uaXNFcGhlbWVyYWwoKSkgewogICAgICAgICBOU1VSTFNlc3Npb25Db25maWd1
cmF0aW9uICpjb25maWd1cmF0aW9uID0gW05TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gZXBoZW1l
cmFsU2Vzc2lvbkNvbmZpZ3VyYXRpb25dOwpAQCAtNTMzLDcgKzUzMyw3IEBAIHZvaWQgTmV0d29y
a1Nlc3Npb25Db2NvYTo6c2V0Q1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKGNvbnN0IFN0cmlu
ZyYgdHlwZSkKIH0KICNlbmRpZgogCi1SZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9u
Q29jb2E6OmNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXIqIGN1c3RvbVByb3RvY29sTWFuYWdlcikKK1JlZjxOZXR3b3JrU2Vzc2lv
bj4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyKiBjdXN0b21Qcm90b2NvbE1hbmFnZXIpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Nlc3Npb25Db2NvYShzZXNzaW9uSUQsIGN1
c3RvbVByb3RvY29sTWFuYWdlcikpOwogfQpAQCAtNTQxLDExICs1NDEsMTEgQEAgUmVmPE5ldHdv
cmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgTGUKIE5ldHdvcmtTZXNzaW9uJiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpkZWZh
dWx0U2Vzc2lvbigpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBzdGF0
aWMgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24gPSAmTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRl
KFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBsZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXIpLmxlYWtSZWYoKTsKKyAgICBzdGF0aWMgTmV0d29ya1Nlc3Npb24qIHNlc3Np
b24gPSAmTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCksIGxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlcikubGVha1JlZigpOwogICAg
IHJldHVybiAqc2Vzc2lvbjsKIH0KIAotTmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Np
b25Db2NvYShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXIqIGN1c3RvbVByb3RvY29sTWFuYWdlcikKK05ldHdvcmtTZXNzaW9uQ29jb2E6Ok5l
dHdvcmtTZXNzaW9uQ29jb2EoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXIqIGN1c3RvbVByb3RvY29sTWFuYWdlcikKICAgICA6IE5ldHdvcmtTZXNz
aW9uKHNlc3Npb25JRCkKIHsKICAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNv
dXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9u
U291cC5jcHAKaW5kZXggZjZiYWVkYWMxNzIuLmRjNjljYzZkZjNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNw
cApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLU5ldHdvcmtTZXNzaW9uU291cDo6TmV0d29ya1Nlc3Npb25Tb3VwKFNlc3Np
b25JRCBzZXNzaW9uSUQpCitOZXR3b3JrU2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNzaW9uU291cChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBOZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQp
CiB7CiAgICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2V0Q29va2llT2JzZXJ2ZXJIYW5kbGVy
KFt0aGlzXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
TmV0d29ya1Nlc3Npb25Tb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
TmV0d29ya1Nlc3Npb25Tb3VwLmgKaW5kZXggZTAxOTYwMjlhMWEuLmY1OGNkODEyZTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25T
b3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNz
aW9uU291cC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBO
ZXR3b3JrU2Vzc2lvblNvdXAgZmluYWwgOiBwdWJsaWMgTmV0d29ya1Nlc3Npb24gewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBOZXR3b3JrU2Vzc2lvblNvdXAoc2Vzc2lvbklEKSk7CiAgICAgfQpAQCAtNDIsNyArNDIsNyBA
QCBwdWJsaWM6CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3Q7CiAKIHByaXZh
dGU6Ci0gICAgTmV0d29ya1Nlc3Npb25Tb3VwKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgTmV0
d29ya1Nlc3Npb25Tb3VwKFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgY2xlYXJDcmVkZW50
aWFscygpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CmluZGV4IGZlNmJmODk2ZGQ4Li5jNWZlNTA2YTRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNTIsNiArMzUyLDcgQEAgZGVmIGhlYWRlcnNfZm9y
X3R5cGUodHlwZSk6CiAKICAgICBzcGVjaWFsX2Nhc2VzID0gewogICAgICAgICAnU3RyaW5nJzog
Wyc8d3RmL3RleHQvV1RGU3RyaW5nLmg+J10sCisgICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsn
PHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXV0b3Bs
YXlFdmVudEZsYWdzJzogWyc8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJzogWyc8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2Vi
Q29yZS9GaWxlQ2hvb3Nlci5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAK
aW5kZXggYTZhODYzNDdkODcuLmM4MTAyYTA5Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxk
UHJvY2Vzcy5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03Myw4ICs3Myw4
IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1lCiAgICAgU2FuZGJveEluaXRpYWxpemF0aW9uUGFy
YW1ldGVycyBzYW5kYm94UGFyYW1ldGVyczsKICAgICBpbml0aWFsaXplU2FuZGJveChwYXJhbWV0
ZXJzLCBzYW5kYm94UGFyYW1ldGVycyk7CiAKLSAgICAvLyBJbiBXZWJLaXQyLCBvbmx5IHRoZSBV
SSBwcm9jZXNzIHNob3VsZCBldmVyIGJlIGdlbmVyYXRpbmcgbm9uLWRlZmF1bHQgU2Vzc2lvbklE
cy4KLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQ6OmVuYWJsZUdlbmVyYXRpb25Qcm90ZWN0aW9uKCk7
CisgICAgLy8gSW4gV2ViS2l0Miwgb25seSB0aGUgVUkgcHJvY2VzcyBzaG91bGQgZXZlciBiZSBn
ZW5lcmF0aW5nIG5vbi1kZWZhdWx0IFBBTDo6U2Vzc2lvbklEcy4KKyAgICBQQUw6OlNlc3Npb25J
RDo6ZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24oKTsKIAogICAgIG1fY29ubmVjdGlvbiA9IElQ
Qzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihwYXJhbWV0ZXJzLmNvbm5lY3Rp
b25JZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgbV9jb25uZWN0aW9uLT5zZXREaWRDbG9zZU9uQ29u
bmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKGRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcAppbmRleCA0OGFlOGE1NmFkZC4u
ZDczODM1N2Q3ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25UcmFj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKQEAg
LTU2LDI5ICs1NiwyOSBAQCB2b2lkIFNlc3Npb25UcmFja2VyOjpzZXRJZGVudGlmaWVyQmFzZShj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB9CiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQot
c3RhdGljIEhhc2hNYXA8U2Vzc2lvbklELCBSZWZQdHI8TmV0d29ya1Nlc3Npb24+PiYgc3RhdGlj
U2Vzc2lvbk1hcCgpCitzdGF0aWMgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmUHRyPE5ldHdv
cmtTZXNzaW9uPj4mIHN0YXRpY1Nlc3Npb25NYXAoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTZXNzaW9uSUQs
IFJlZlB0cjxOZXR3b3JrU2Vzc2lvbj4+PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZlB0cjxOZXR3b3JrU2Vzc2lvbj4+PiBtYXA7CiAg
ICAgcmV0dXJuIG1hcDsKIH0KIAotTmV0d29ya1Nlc3Npb24qIFNlc3Npb25UcmFja2VyOjpuZXR3
b3JrU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQorTmV0d29ya1Nlc3Npb24qIFNlc3Npb25U
cmFja2VyOjpuZXR3b3JrU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAg
aWYgKHNlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKKyAgICBpZiAo
c2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgICAg
IHJldHVybiAmTmV0d29ya1Nlc3Npb246OmRlZmF1bHRTZXNzaW9uKCk7CiAgICAgcmV0dXJuIHN0
YXRpY1Nlc3Npb25NYXAoKS5nZXQoc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBTZXNzaW9uVHJhY2tl
cjo6c2V0U2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Npb24+JiYg
c2Vzc2lvbikKK3ZvaWQgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Npb24+JiYgc2Vzc2lvbikKIHsKLSAgICBBU1NFUlQo
c2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICBBU1NFUlQo
c2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIHN0
YXRpY1Nlc3Npb25NYXAoKS5zZXQoc2Vzc2lvbklELCBXVEZNb3ZlKHNlc3Npb24pKTsKIH0KICNl
bmRpZgogCi12b2lkIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihTZXNzaW9uSUQgc2Vz
c2lvbklEKQordm9pZCBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAjaWYgVVNF
KE5FVFdPUktfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Np
b25UcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCmluZGV4
IDlmN2E2YzA3MDAxLi5iZmUxNTA5N2M3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvU2Vzc2lvblRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uVHJh
Y2tlci5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjsKIH0KIAotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+Cisj
aW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KQEAgLTQ2LDEwICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQg
c2V0SWRlbnRpZmllckJhc2UoY29uc3QgU3RyaW5nJik7CiAgICAgCiAjaWYgVVNFKE5FVFdPUktf
U0VTU0lPTikKLSAgICBzdGF0aWMgdm9pZCBzZXRTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCwg
UmVmPE5ldHdvcmtTZXNzaW9uPiYmKTsKLSAgICBzdGF0aWMgTmV0d29ya1Nlc3Npb24qIG5ldHdv
cmtTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgc2V0U2Vzc2lv
bihQQUw6OlNlc3Npb25JRCwgUmVmPE5ldHdvcmtTZXNzaW9uPiYmKTsKKyAgICBzdGF0aWMgTmV0
d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKICNlbmRpZgotICAg
IHN0YXRpYyB2b2lkIGRlc3Ryb3lTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgc3Rh
dGljIHZvaWQgZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TdG9yYWdlL1N0
b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9T
dG9yYWdlL1N0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZTBmMzUzNjQx
MTkuLjQ2MTczNzhkNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TdG9yYWdl
L1N0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0yNyw3
ICsyNyw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVy
L1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKQEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IFN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmKTsKIAotICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CisgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogICAgIFN0cmluZyBpbmRleGVkRGF0YWJhc2VEaXJlY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA5OWMzOTU0ZGM5NS4uMTRh
ODIzY2JiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcApAQCAtNjEsNyArNjEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29u
c3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWluZ0Z1
bmN0aW9uLmg+CkBAIC03MCw2ICs2OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVT
aGVldC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYv
U2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggOTIzYWI3OWZiZWYuLjBjMzkw
MWIyOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aApAQCAtNDQsNiArNDQsMTAgQEAgY2xhc3MgTW9ub3RvbmljVGltZTsKIGNsYXNzIFNlY29uZHM7
CiB9CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTsKQEAgLTc4LDcgKzgyLDYgQEAgY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVzb3VyY2VF
cnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1j
bGFzcyBTZXNzaW9uSUQ7CiBjbGFzcyBTcHJpbmdUaW1pbmdGdW5jdGlvbjsKIGNsYXNzIFN0ZXBz
VGltaW5nRnVuY3Rpb247CiBjbGFzcyBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
aW5kZXggMzc2M2M4NzU4NTIuLmM5ZTU5YTg0YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00MSw4ICs0MSw4IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdpbmF0
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uLmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAt
ODgsNyArODgsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU3Ry
aW5nIHVzZXJBZ2VudDsKIAogICAgIFZlY3RvcjxCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+IGl0
ZW1TdGF0ZXM7Ci0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgdWludDY0X3QgaGlnaGVzdFVzZWRCYWNrRm9yd2FyZEl0
ZW1JRDsKIAogICAgIHVpbnQ2NF90IHVzZXJDb250ZW50Q29udHJvbGxlcklEOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4
IDY3MmI2NWIxY2U5Li5kOTk4ODAyMTZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjksNyArMjksNyBAQAogI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgi
CiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgor
I2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgpAQCAtMTU1LDcgKzE1NSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4gbm90aWZpY2F0aW9uUGVybWlz
c2lvbnM7CiAjZW5kaWYKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFw
PHVuc2lnbmVkLCBkb3VibGU+PiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CisgICAgSGFz
aE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4gcGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaGVzOwogICAgIFZlY3RvcjxTdHJpbmc+IHBsdWdJbkF1dG9TdGFydE9y
aWdpbnM7CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oCmluZGV4IGU5MmMwN2Yy
YzI3Li5lNDAxYTk2M2JhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJTYW5k
Ym94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtNDYsNyArNDYsNyBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMg
ewogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYpOwogCi0g
ICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQ7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlm
aWVyOwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjb29raWVTdG9yYWdlUGF0aEV4dGVu
c2lvbkhhbmRsZTsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBwZW5kaW5nQ29va2llczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQppbmRleCA1
MjkxMmZhZDM0OC4uMzQyNzQ4ZGU4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9Db29raWVTdG9yYWdlU2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
Q29va2llU3RvcmFnZVNoaW0ubW0KQEAgLTMxLDkgKzMxLDkgQEAKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVkZSA8
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdv
cmtTUEkuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIENGRGljdGlvbmFyeVJlZiB3ZWJLaXRD
b29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoQ0ZIVFRQQ28KIHsKICAg
ICBTdHJpbmcgY29va2llczsKICAgICBVUkwgZmlyc3RQYXJ0eUZvckNvb2tpZXNVUkw7Ci0gICAg
aWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
LCBmaXJzdFBhcnR5Rm9yQ29va2llc1VSTCwgaW5SZXF1ZXN0VVJMKSwgTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NOjpSZXBseShjb29raWVzKSwg
MCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RVUkwpLCBN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006OlJl
cGx5KGNvb2tpZXMpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoY29va2llcy5p
c051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCmluZGV4IDFmZjdi
ZTgxYWU5Li5iZDA0NTAxMDVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwCkBAIC00NSwxMiArNDUsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1SZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiBXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZShTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCitSZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZShTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQoY29ubmVjdGlvbiwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHNl
c3Npb25JRCkpOwogfQogCi1XZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudChTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCitXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dChTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6
IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlmaWVyKHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQuaAppbmRleCBmMzQzZTEzZDFlMC4uODgzMzgxZDVlMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JREJDb25uZWN0aW9uVG9DbGllbnQuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nl
c3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJREJDdXJzb3JJbmZvOwpA
QCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVj
dGlvblRvQ2xpZW50RGVsZWdhdGUsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBS
ZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4gewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiBjcmVhdGUoU3RvcmFnZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgUmVmPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4g
Y3JlYXRlKFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiwgdWludDY0X3Qgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZpcnR1YWwgfldlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudCgpOwogCkBAIC0xMjYsNyArMTI2LDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7
CiAKIHByaXZhdGU6Ci0gICAgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KFN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uJiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlNlc3Npb25JRCk7CisgICAgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KFN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uJiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBmaW5hbDsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIHByaXZhdGU6CiAgICAg
UmVmPFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAKICAgICB1
aW50NjRfdCBtX2lkZW50aWZpZXI7Ci0gICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklE
OworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudD4gbV9jb25uZWN0aW9uVG9DbGllbnQ7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3Bw
CmluZGV4IDFjYzdhNmJkNDBlLi45OTQ2YTY4ZWUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKQEAgLTM1LDggKzM1LDggQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQktleURhdGEu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRFbmNvZGluZy5oPgorI2luY2x1
ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVh
ZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC04OSw3ICs4OSw3IEBA
IHZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyCiB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLUlEQlNlcnZlcjo6SURCU2VydmVyJiBTdG9yYWdlUHJvY2Vzczo6aWRiU2VydmVyKFNlc3Np
b25JRCBzZXNzaW9uSUQpCitJREJTZXJ2ZXI6OklEQlNlcnZlciYgU3RvcmFnZVByb2Nlc3M6Omlk
YlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQg
PSBtX2lkYlNlcnZlcnMuYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CiAgICAgaWYgKCFhZGRSZXN1
bHQuaXNOZXdFbnRyeSkgewpAQCAtOTgsOCArOTgsOCBAQCBJREJTZXJ2ZXI6OklEQlNlcnZlciYg
U3RvcmFnZVByb2Nlc3M6OmlkYlNlcnZlcihTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIH0KIAog
ICAgIGF1dG8gcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lvbklEKTsKLSAgICAv
LyBUaGVyZSBzaG91bGQgYWxyZWFkeSBiZSBhIHJlZ2lzdGVyZWQgcGF0aCBmb3IgdGhpcyBTZXNz
aW9uSUQuCi0gICAgLy8gSWYgdGhlcmUncyBub3QsIHRoZW4gd2hlcmUgZGlkIHRoaXMgU2Vzc2lv
bklEIGNvbWUgZnJvbT8KKyAgICAvLyBUaGVyZSBzaG91bGQgYWxyZWFkeSBiZSBhIHJlZ2lzdGVy
ZWQgcGF0aCBmb3IgdGhpcyBQQUw6OlNlc3Npb25JRC4KKyAgICAvLyBJZiB0aGVyZSdzIG5vdCwg
dGhlbiB3aGVyZSBkaWQgdGhpcyBQQUw6OlNlc3Npb25JRCBjb21lIGZyb20/CiAgICAgQVNTRVJU
KCFwYXRoLmlzRW1wdHkoKSk7CiAKICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gSURC
U2VydmVyOjpJREJTZXJ2ZXI6OmNyZWF0ZShwYXRoLCBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9u
KCkpOwpAQCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmNyZWF0ZVN0b3Jh
Z2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKICNlbmRpZgogfQogCi12b2lkIFN0b3JhZ2VQcm9j
ZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lk
IFN0b3JhZ2VQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKIHsKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBhdXRvIGNv
bXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIGNhbGxiYWNrSURdKGNvbnN0IFdlYnNpdGVEYXRhJiB3
ZWJzaXRlRGF0YSkgewpAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmZl
dGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
CiAjZW5kaWYKIH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vi
c2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2Rp
ZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGVs
ZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlz
LCBjYWxsYmFja0lEXSgpIHsKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNz
OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25T
ZXQ8VwogI2VuZGlmCiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5E
YXRhPiYgc2VjdXJpdHlPcmlnaW5EYXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgU3Rv
cmFnZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNv
bnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbkRhdGFzLCB1aW50
NjRfdCBjYWxsYmFja0lEKQogewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGF1
dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgY2FsbGJhY2tJRF0oKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKaW5kZXggM2JjNzJlMjA2YTIu
LmI4YzdmNzc2NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdl
UHJvY2Vzcy5oCkBAIC0yOSw4ICsyOSw4IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvSURCQmFja2luZ1N0b3JlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JREJTZXJ2ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVW5pcXVlSURCRGF0YWJhc2UuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CiAjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CiAKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIH5TdG9yYWdl
UHJvY2VzcygpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXImIGlkYlNlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQpOworICAg
IFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyJiBpZGJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQp
OwogI2VuZGlmCiAKICAgICBXb3JrUXVldWUmIHF1ZXVlKCkgeyByZXR1cm4gbV9xdWV1ZS5nZXQo
KTsgfQpAQCAtOTIsOSArOTIsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYnNp
dGVEYXRhU3RvcmUoY29uc3QgU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAg
ICB2b2lkIGNyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKLSAgICB2b2lk
IGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lk
IGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGlt
ZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGRl
bGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2
b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVX
ZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGE+JiBvcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKQogICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2Jz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocywgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXkmKTsKICAgICB2b2lkIGRpZEdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVz
KHVpbnQ2NF90IHJlcXVlc3RJRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJik7CkBA
IC0xMTMsOCArMTEzLDggQEAgcHJpdmF0ZToKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNz
aW9uSUQsIFN0cmluZz4gbV9pZGJEYXRhYmFzZVBhdGhzOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6
U2Vzc2lvbklELCBSZWZQdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI+PiBtX2lkYlNl
cnZlcnM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgU3RyaW5nPiBtX2lkYkRhdGFiYXNl
UGF0aHM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmUHRyPFdlYkNvcmU6OklEQlNl
cnZlcjo6SURCU2VydmVyPj4gbV9pZGJTZXJ2ZXJzOwogI2VuZGlmCiAgICAgSGFzaE1hcDxTdHJp
bmcsIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPj4gbV9ibG9iVGVtcG9yYXJ5RmlsZVNhbmRib3hF
eHRlbnNpb25zOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCAoU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJik+PiBtX3NhbmRib3hFeHRlbnNpb25Gb3JCbG9i
c0NvbXBsZXRpb25IYW5kbGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDRiZGVjNzNlNjRmLi5jOWRl
YWRmMjdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdl
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yNyw5ICsyNyw5IEBAIG1lc3NhZ2VzIC0+IFN0
b3JhZ2VQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIENyZWF0ZXMgYSBjb25uZWN0aW9u
IGZvciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCiAgICAgQ3JlYXRlU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogCi0gICAgRmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdl
YnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgRGVsZXRlV2Vic2l0ZURh
dGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgRGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucywgdWludDY0X3QgY2FsbGJhY2tJRCkK
KyAgICBGZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxs
YmFja0lEKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6
OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpCisgICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zLCB1
aW50NjRfdCBjYWxsYmFja0lEKQogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAg
R3JhbnRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JzKFZlY3RvcjxTdHJpbmc+IHBhdGhzLCBXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGV4dGVuc2lvbnMpCiAgICAgRGlkR2V0
U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBXZWJLaXQ6
OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGV4dGVuc2lvbnMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCmluZGV4IDRhY2MyNjQwNDRmLi5kZTkxOTExZWVlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0aWMgdWludDY0X3QgZ2Vu
ZXJhdGVDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKCkKICAgICByZXR1cm4gKytpZGVudGlm
aWVyOwogfQogCi12b2lkIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0
X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQordm9pZCBTdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgdWludDY0X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogICAg
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2VuZXJhdGVDb25uZWN0aW9uVG9TZXJ2ZXJJ
ZGVudGlmaWVyKCk7CiAgICAgTE9HKEluZGV4ZWREQiwgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIgLSAlIiBQUkl1NjQsIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAxMmZm
ZTk1ZDgyMi4uNWJlOTgzMmNmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTI4LDcg
KzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRl
ci5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRl
bnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogICAgIC8vIE1lc3NhZ2VzIGhhbmRsZXJzIChNb2Rlcm4gSURCKQotICAg
IHZvaWQgZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCwg
dWludDY0X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIGVzdGFibGlz
aElEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCwgdWludDY0X3QmIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZl
cih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAKICAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV93ZWJJREJDb25uZWN0
aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDU4
NzYxMjAyMDVlLi44ZDEwOGY2NDUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBTdG9yYWdlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRo
IGEgV2ViUHJvY2VzcwotICAgIEVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcihXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIpCisgICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAg
IFJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcikKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZjAzYTRlOWZhNDAuLjJmZTNmYTZmYjNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3Vy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmln
dXJhdGlvbi5jcHAKQEAgLTE1MCwxNyArMTUwLDE3IEBAIHZvaWQgUGFnZUNvbmZpZ3VyYXRpb246
OnNldFdlYnNpdGVEYXRhU3RvcmUoQVBJOjpXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0
CiAgICAgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkKICAgICAgICAgbV9zZXNzaW9uSUQgPSBtX3dl
YnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fc2Vzc2lvbklEID0gV2ViQ29yZTo6U2Vzc2lvbklEKCk7CisgICAgICAgIG1f
c2Vzc2lvbklEID0gUEFMOjpTZXNzaW9uSUQoKTsKIH0KIAotV2ViQ29yZTo6U2Vzc2lvbklEIFBh
Z2VDb25maWd1cmF0aW9uOjpzZXNzaW9uSUQoKQorUEFMOjpTZXNzaW9uSUQgUGFnZUNvbmZpZ3Vy
YXRpb246OnNlc3Npb25JRCgpCiB7Ci0gICAgQVNTRVJUKCFtX3dlYnNpdGVEYXRhU3RvcmUgfHwg
bV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkgPT0gbV9z
ZXNzaW9uSUQgfHwgbV9zZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCkpOworICAgIEFTU0VSVCghbV93ZWJzaXRlRGF0YVN0b3JlIHx8IG1fd2Vic2l0ZURhdGFT
dG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpID09IG1fc2Vzc2lvbklEIHx8IG1f
c2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwog
CiAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOwogfQogCi12b2lkIFBhZ2VDb25maWd1cmF0aW9uOjpz
ZXRTZXNzaW9uSUQoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgUGFnZUNvbmZp
Z3VyYXRpb246OnNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAg
bV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGIyYWUyNDcyZGUzLi4yM2MwMTFl
NDRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25m
aWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25m
aWd1cmF0aW9uLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgog
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Np
b25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkBAIC04MSw4ICs4MSw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9y
ZSopOwogCiAgICAgLy8gRklYTUU6IE9uY2UgUGFnZUNvbmZpZ3VyYXRpb25zICphbHdheXMqIGhh
dmUgYSBkYXRhIHN0b3JlLCBnZXQgcmlkIG9mIHRoZSBzZXBhcmF0ZSBzZXNzaW9uSUQuCi0gICAg
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpOwotICAgIHZvaWQgc2V0U2Vzc2lvbklEKFdl
YkNvcmU6OlNlc3Npb25JRCk7CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCk7CisgICAg
dm9pZCBzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgYm9vbCB0cmVhdHNTSEEx
U2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZSgpIHsgcmV0dXJuIG1fdHJlYXRzU0hBMVNpZ25l
ZENlcnRpZmljYXRlc0FzSW5zZWN1cmU7IH0KICAgICB2b2lkIHNldFRyZWF0c1NIQTFTaWduZWRD
ZXJ0aWZpY2F0ZXNBc0luc2VjdXJlKGJvb2wgdHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0Fz
SW5zZWN1cmUpIHsgbV90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZSA9IHRy
ZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlOyB9IApAQCAtMTE5LDcgKzExOSw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+IG1fd2Vic2l0ZURhdGFT
dG9yZTsKICAgICAvLyBGSVhNRTogV2UgY3VycmVudGx5IGhhdmUgdG8gcGFzcyB0aGUgc2Vzc2lv
biBJRCBzZXBhcmF0ZWx5IGhlcmUgdG8gc3VwcG9ydCB0aGUgbGVnYWN5IHByaXZhdGUgYnJvd3Np
bmcgc2Vzc2lvbi4KICAgICAvLyBPbmNlIHdlIGdldCByaWQgb2YgaXQgd2Ugc2hvdWxkIGdldCBy
aWQgb2YgdGhpcyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBhcyB3ZWxsLgotICAgIFdlYkNvcmU6
OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsK
IAogICAgIGJvb2wgbV90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZSA9IHRy
dWU7CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDBkYjVkZDkyYzU0Li41MGZhNjBiZWYz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0
YVN0b3JlLmNwcApAQCAtMzUsNyArMzUsNyBAQCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0
ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpCiB7CiAgICAgV2ViS2l0OjpJbml0aWFsaXpl
V2ViS2l0MigpOwogCi0gICAgc3RhdGljIFdlYnNpdGVEYXRhU3RvcmUqIGRlZmF1bHREYXRhU3Rv
cmUgPSBhZG9wdFJlZihuZXcgV2Vic2l0ZURhdGFTdG9yZShkZWZhdWx0RGF0YVN0b3JlQ29uZmln
dXJhdGlvbigpLCBXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpLmxlYWtS
ZWYoKTsKKyAgICBzdGF0aWMgV2Vic2l0ZURhdGFTdG9yZSogZGVmYXVsdERhdGFTdG9yZSA9IGFk
b3B0UmVmKG5ldyBXZWJzaXRlRGF0YVN0b3JlKGRlZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9u
KCksIFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpKS5sZWFrUmVmKCk7CiAKICAg
ICByZXR1cm4gKmRlZmF1bHREYXRhU3RvcmU7CiB9CkBAIC00Nyw3ICs0Nyw3IEBAIFJlZjxXZWJz
aXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0ZW50RGF0YVN0
b3JlKCkKIAogUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZUxl
Z2FjeShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlv
bikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0b3JlKFdURk1vdmUo
Y29uZmlndXJhdGlvbiksIFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vic2l0ZURhdGFTdG9yZShXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pLCBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CiB9CiAKIFdl
YnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoKQpAQCAtNTUsNyArNTUsNyBAQCBXZWJz
aXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKCkKIHsKIH0KIAotV2Vic2l0ZURhdGFTdG9y
ZTo6V2Vic2l0ZURhdGFTdG9yZShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1dlYnNpdGVE
YXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6
IG1fd2Vic2l0ZURhdGFTdG9yZShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZShXVEZN
b3ZlKGNvbmZpZ3VyYXRpb24pLCBzZXNzaW9uSUQpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMjM4YzZjNGQ3YjQu
LjQ0YjFkM2RlOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
V2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElX
ZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFQSUhUVFBD
b29raWVTdG9yZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgQVBJIHsKQEAg
LTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4g
Y3JlYXRlTm9uUGVyc2lzdGVudERhdGFTdG9yZSgpOwogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURh
dGFTdG9yZT4gY3JlYXRlTGVnYWN5KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmlndXJh
dGlvbik7CiAKLSAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6Q29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBleHBsaWNp
dCBXZWJzaXRlRGF0YVN0b3JlKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmlndXJhdGlv
biwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfldlYnNpdGVEYXRhU3RvcmUoKTsKIAog
ICAgIGJvb2wgaXNQZXJzaXN0ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAppbmRleCAxOTBmNTUxYzlhYS4uYWE2MmYyNmM3ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2Vy
LmNwcApAQCAtNDQsMTcgKzQ0LDE3IEBAIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0Q2xpZW50KFdL
Q29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBjb25zdCBXS0Nvb2tpCiAKIHZvaWQg
V0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVm
IGNvb2tpZU1hbmFnZXJSZWYsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldENvb2tp
ZUhvc3RuYW1lc0Z1bmN0aW9uIGNhbGxiYWNrKQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2Vy
UmVmKS0+Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCksIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2sp
KTsKKyAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmdldEhvc3RuYW1lc1dpdGhDb29raWVz
KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvR2VuZXJpY0NhbGxiYWNrRnVu
Y3Rpb24oY29udGV4dCwgY2FsbGJhY2spKTsKIH0KIAogdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxl
dGVDb29raWVzRm9ySG9zdG5hbWUoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYs
IFdLU3RyaW5nUmVmIGhvc3RuYW1lKQogewotICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+
ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpLCB0b0ltcGwoaG9zdG5hbWUpLT5zdHJpbmcoKSk7CisgICAgdG9JbXBsKGNvb2tpZU1h
bmFnZXJSZWYpLT5kZWxldGVDb29raWVzRm9ySG9zdG5hbWUoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSwgdG9JbXBsKGhvc3RuYW1lKS0+c3RyaW5nKCkpOwogfQogCiB2b2lkIFdL
Q29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXJSZWYpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVBbGxDb29r
aWVzKFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICB0b0ltcGwo
Y29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSk7CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2ll
c01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBk
b3VibGUgZGF0ZSkKQEAgLTYyLDE3ICs2MiwxNyBAQCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0
ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTQog
ICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ6OmNocm9ubzsKIAogICAgIGF1dG8gdGltZSA9IHN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludChkdXJhdGlvbl9jYXN0PHN5c3RlbV9jbG9jazo6ZHVyYXRpb24+
KGR1cmF0aW9uPGRvdWJsZT4oZGF0ZSkpKTsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZikt
PmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpLCB0aW1lLCBbXShDYWxsYmFja0Jhc2U6OkVycm9yKXt9KTsKKyAgICB0b0lt
cGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRpbWUsIFtdKENhbGxiYWNrQmFzZTo6RXJy
b3Ipe30pOwogfQogCiB2b2lkIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBv
bGljeSBwb2xpY3kpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCB0b0hU
VFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgW10oQ2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7
CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHRvSFRUUENvb2tpZUFjY2VwdFBvbGlj
eShwb2xpY3kpLCBbXShDYWxsYmFja0Jhc2U6OkVycm9yKXt9KTsKIH0KIAogdm9pZCBXS0Nvb2tp
ZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIp
LT5nZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uPFdLSFRUUENvb2tpZUFjY2VwdFBv
bGljeSwgSFRUUENvb2tpZUFjY2VwdFBvbGljeT4oY29udGV4dCwgY2FsbGJhY2spKTsKKyAgICB0
b0ltcGwoY29va2llTWFuYWdlciktPmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbjxXS0hU
VFBDb29raWVBY2NlcHRQb2xpY3ksIEhUVFBDb29raWVBY2NlcHRQb2xpY3k+KGNvbnRleHQsIGNh
bGxiYWNrKSk7CiB9CiAKIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0Q29va2llU3RvcmFnZVBhcnRp
dGlvbmluZ0VuYWJsZWQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIGJvb2wgZW5h
YmxlZCkKQEAgLTgyLDEwICs4MiwxMCBAQCB2b2lkIFdLQ29va2llTWFuYWdlclNldENvb2tpZVN0
b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKFdLQ29va2llTWFuYWdlclJlZiBjb29raQogCiB2b2lk
IFdLQ29va2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFn
ZXJSZWYgY29va2llTWFuYWdlcikKIHsKLSAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0YXJ0
T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSk7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdGFydE9ic2VydmluZ0Nvb2tpZUNo
YW5nZXMoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiB9CiAKIHZvaWQgV0tD
b29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVm
IGNvb2tpZU1hbmFnZXIpCiB7Ci0gICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdG9wT2JzZXJ2
aW5nQ29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7
CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggNGRkOGEwZDU1
NGMuLjFmNTk3NGRmNTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyBXZWJLaXQ6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KE5TSFRUUENv
b2tpZUFjY2VwCiAKIC0gKHZvaWQpX3NldENvb2tpZUFjY2VwdFBvbGljeTooTlNIVFRQQ29va2ll
QWNjZXB0UG9saWN5KXBvbGljeQogewotICAgIF9wcm9jZXNzUG9vbC0+c3VwcGxlbWVudDxXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShX
ZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9IVFRQQ29va2llQWNjZXB0
UG9saWN5KHBvbGljeSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcil7fSk7CisgICAg
X3Byb2Nlc3NQb29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5Pigp
LT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCksIHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBbXShXZWJLaXQ6OkNhbGxi
YWNrQmFzZTo6RXJyb3Ipe30pOwogfQogCiAtIChpZClfb2JqZWN0Rm9yQnVuZGxlUGFyYW1ldGVy
OihOU1N0cmluZyAqKXBhcmFtZXRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNDFiMThkMDYxMmMuLjhj
MTIxMmJlNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTE5MCw3ICsxOTAsNyBAQCBzdGF0aWMgVmVj
dG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJy
YXkgKmRhdGFSZWNvcgogICAgIGlmIChjb25maWd1cmF0aW9uLl9jb29raWVTdG9yYWdlRmlsZSkK
ICAgICAgICAgY29uZmlnLmNvb2tpZVN0b3JhZ2VGaWxlID0gY29uZmlndXJhdGlvbi5fY29va2ll
U3RvcmFnZUZpbGUucGF0aDsKIAotICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8
QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBjb25maWcsIFdlYkNvcmU6OlNlc3Npb25JRDo6
Z2VuZXJhdGVQZXJzaXN0ZW50U2Vzc2lvbklEKCkpOworICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1
Y3RJbldyYXBwZXI8QVBJOjpXZWJzaXRlRGF0YVN0b3JlPihzZWxmLCBjb25maWcsIFBBTDo6U2Vz
c2lvbklEOjpnZW5lcmF0ZVBlcnNpc3RlbnRTZXNzaW9uSUQoKSk7CiAKICAgICByZXR1cm4gc2Vs
ZjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggZDdlYWM4NGM3NTQuLjJlZjU0MmVkYTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29r
aWVNYW5hZ2VyLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYnNpdGVE
YXRhTWFuYWdlclByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJzaXRlRGF0YVByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVJlY29yZC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgd2Vi
a2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9hY2NlcHRfcG9saWN5KFdlYktpdENvb2tpZU1hbmFnZXIq
IG1hbmFnZXIsIFdlYktpCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfQ09PS0lFX01B
TkFHRVIobWFuYWdlcikpOwogCiAgICAgZm9yIChhdXRvKiBwcm9jZXNzUG9vbCA6IHdlYmtpdFdl
YnNpdGVEYXRhTWFuYWdlckdldFByb2Nlc3NQb29scyhtYW5hZ2VyLT5wcml2LT5kYXRhTWFuYWdl
cikpCi0gICAgICAgIHByb2Nlc3NQb29sLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94
eT4oKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSwgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSksIFtdKENhbGxi
YWNrQmFzZTo6RXJyb3Ipe30pOworICAgICAgICBwcm9jZXNzUG9vbC0+c3VwcGxlbWVudDxXZWJD
b29raWVNYW5hZ2VyUHJveHk+KCktPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGlj
eSksIFtdKENhbGxiYWNrQmFzZTo6RXJyb3Ipe30pOwogfQogCiAvKioKQEAgLTIwOCw3ICsyMDgs
NyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9nZXRfYWNjZXB0X3BvbGljeShXZWJLaXRD
b29raWVNYW5hZ2VyKiBtYW5hZ2VyLCBHQ2FuYwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgcHJvY2Vzc1Bvb2xzWzBdLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+
Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSwgW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcikgeworICAgIHByb2Nlc3NQb29sc1swXS0+c3VwcGxl
bWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
UEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgW3Rhc2sgPSBXVEZNb3ZlKHRhc2sp
XShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgQ2FsbGJhY2tCYXNlOjpFcnJvcikgewog
ICAgICAgICBnX3Rhc2tfcmV0dXJuX2ludCh0YXNrLmdldCgpLCB0b1dlYktpdENvb2tpZUFjY2Vw
dFBvbGljeShwb2xpY3kpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGNmMzk2ZjRi
MTBmLi45MWJhOWEwNjYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgRG93
bmxvYWRQcm94eSogTmV0d29ya1Byb2Nlc3NQcm94eTo6Y3JlYXRlRG93bmxvYWRQcm94eShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHIKICAgICByZXR1cm4gbV9kb3dubG9hZFByb3h5TWFwLT5jcmVh
dGVEb3dubG9hZFByb3h5KG1fcHJvY2Vzc1Bvb2wsIHJlc291cmNlUmVxdWVzdCk7CiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlvblNldDxXZWJz
aXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZCAoV2Vi
c2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlv
bj4gZmV0Y2hPcHRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKQEAgLTEz
Nyw3ICsxMzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEo
U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAogICAgIHNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpGZXRjaFdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBm
ZXRjaE9wdGlvbnMsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRl
RGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
IGRhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmll
ZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAgICAgUkVMRUFTRV9M
T0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFz
c2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBk
YXRhIiwgdGhpcyk7CkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb24K
ICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGEoc2Vz
c2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVkU2luY2UsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMs
IFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VS
VChjYW5TZW5kTWVzc2FnZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA5MjNkZDJhOTA4Ny4uNDBlZDZi
MDhjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0zNSw2ICszNSwxMCBAQAogI2luY2x1ZGUgPG1lbW9yeT4K
ICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9u
SUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwpAQCAtNDIsNyArNDYsNiBAQCBjbGFzcyBSZXNv
dXJjZVJlcXVlc3Q7CiBlbnVtIGNsYXNzIFNob3VsZFNhbXBsZTsKIGNsYXNzIFNlY3VyaXR5T3Jp
Z2luOwogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKLWNsYXNzIFNlc3Npb25JRDsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC02NCw5ICs2Nyw5IEBAIHB1YmxpYzoKIAogICAgIERvd25s
b2FkUHJveHkqIGNyZWF0ZURvd25sb2FkUHJveHkoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jik7CiAKLSAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRp
b24+LCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBjb29raWVIb3N0TmFtZXMsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKTsKKyAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIFdU
Rjo6RnVuY3Rpb248dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAg
IHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVk
U2luY2UsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2
b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YT4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFt
ZXMsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIHZvaWQgc2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29s
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0
b1N0YXJ0UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
SW5BdXRvU3RhcnRQcm92aWRlci5jcHAKaW5kZXggM2MwY2EyZDcyOWIuLjIyMjVlMzMyNTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFy
dFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJ
bkF1dG9TdGFydFByb3ZpZGVyLmNwcApAQCAtNDIsOCArNDIsOCBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcihXZWJQ
cm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgOiBtX3Byb2Nlc3NQb29sKHByb2Nlc3NQb29s
KQogewotICAgIG1faGFzaFRvT3JpZ2luTWFwLmFkZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPigpKTsKLSAgICBtX2F1dG9TdGFydFRhYmxl
LmFkZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgQXV0b1N0YXJ0VGFibGUoKSk7Cisg
ICAgbV9oYXNoVG9PcmlnaW5NYXAuYWRkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCksIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz4oKSk7CisgICAgbV9hdXRvU3RhcnRUYWJsZS5h
ZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgQXV0b1N0YXJ0VGFibGUoKSk7
CiB9CiAKIHN0YXRpYyBkb3VibGUgZXhwaXJhdGlvblRpbWVGcm9tTm93KCkKQEAgLTUxLDE0ICs1
MSwxNCBAQCBzdGF0aWMgZG91YmxlIGV4cGlyYXRpb25UaW1lRnJvbU5vdygpCiAgICAgcmV0dXJu
IGN1cnJlbnRUaW1lKCkgKyBwbHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVRocmVzaG9sZDsK
IH0KIAotdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YWRkQXV0b1N0YXJ0T3JpZ2luSGFz
aChjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFNl
c3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphZGRBdXRv
U3RhcnRPcmlnaW5IYXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0lu
T3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIGF1dG8gc2Vzc2lv
bkl0ZXJhdG9yID0gbV9oYXNoVG9PcmlnaW5NYXAuZmluZChzZXNzaW9uSUQpOwogICAgIGlmIChz
ZXNzaW9uSXRlcmF0b3IgPT0gbV9oYXNoVG9PcmlnaW5NYXAuZW5kKCkpIHsKLSAgICAgICAgaWYg
KG1faGFzaFRvT3JpZ2luTWFwLmdldChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkuY29u
dGFpbnMocGx1Z0luT3JpZ2luSGFzaCkpCisgICAgICAgIGlmIChtX2hhc2hUb09yaWdpbk1hcC5n
ZXQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkuY29udGFpbnMocGx1Z0luT3Jp
Z2luSGFzaCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHNlc3Npb25JdGVyYXRvciA9
IG1faGFzaFRvT3JpZ2luTWFwLnNldChzZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFN0cmlu
Zz4oKSkuaXRlcmF0b3I7Ci0gICAgfSBlbHNlIGlmIChzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmNv
bnRhaW5zKHBsdWdJbk9yaWdpbkhhc2gpIHx8IG1faGFzaFRvT3JpZ2luTWFwLmdldChTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkuY29udGFpbnMocGx1Z0luT3JpZ2luSGFzaCkpCisgICAg
fSBlbHNlIGlmIChzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmNvbnRhaW5zKHBsdWdJbk9yaWdpbkhh
c2gpIHx8IG1faGFzaFRvT3JpZ2luTWFwLmdldChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKS5jb250YWlucyhwbHVnSW5PcmlnaW5IYXNoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgQXV0b1N0YXJ0VGFibGU6Oml0ZXJhdG9yIGl0ID0gbV9hdXRvU3RhcnRUYWJsZS5hZGQoc2Vz
c2lvbklELCBBdXRvU3RhcnRUYWJsZSgpKS5pdGVyYXRvci0+dmFsdWUuYWRkKHBhZ2VPcmlnaW4s
IFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcCgpKS5pdGVyYXRvcjsKQEAgLTkyLDcgKzkyLDcgQEAg
UmVmPEFQSTo6RGljdGlvbmFyeT4gUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmF1dG9TdGFydE9y
aWdpbnNUYWJsZUNvcHkoKSBjb25zdAogICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBtYXA7
CiAKICAgICBkb3VibGUgbm93ID0gY3VycmVudFRpbWUoKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8m
IHN0cmluZ09yaWdpbkhhc2ggOiBtX2F1dG9TdGFydFRhYmxlLmdldChTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSkpIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHN0cmluZ09yaWdpbkhhc2gg
OiBtX2F1dG9TdGFydFRhYmxlLmdldChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
KSkgewogICAgICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgaGFzaE1hcDsKICAgICAgICAg
Zm9yIChjb25zdCBhdXRvJiBvcmlnaW5IYXNoIDogc3RyaW5nT3JpZ2luSGFzaC52YWx1ZSkgewog
ICAgICAgICAgICAgaWYgKG5vdyA8PSBvcmlnaW5IYXNoLnZhbHVlKQpAQCAtMTI3LDggKzEyNyw4
IEBAIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNUYWJs
ZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KEFQSTo6CiAgICAgbV9oYXNoVG9PcmlnaW5NYXAuY2xlYXIo
KTsKICAgICBtX2F1dG9TdGFydFRhYmxlLmNsZWFyKCk7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCwg
ZG91YmxlPiBoYXNoTWFwOwotICAgIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz4mIGhhc2hUb09y
aWdpbk1hcCA9IG1faGFzaFRvT3JpZ2luTWFwLmFkZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPigpKS5pdGVyYXRvci0+dmFsdWU7Ci0gICAg
QXV0b1N0YXJ0VGFibGUmIGFzdCA9IG1fYXV0b1N0YXJ0VGFibGUuYWRkKFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBBdXRvU3RhcnRUYWJsZSgpKS5pdGVyYXRvci0+dmFsdWU7CisgICAg
SGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPiYgaGFzaFRvT3JpZ2luTWFwID0gbV9oYXNoVG9Pcmln
aW5NYXAuYWRkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5z
aWduZWQsIFN0cmluZz4oKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIEF1dG9TdGFydFRhYmxlJiBh
c3QgPSBtX2F1dG9TdGFydFRhYmxlLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpLCBBdXRvU3RhcnRUYWJsZSgpKS5pdGVyYXRvci0+dmFsdWU7CiAKICAgICBmb3IgKGF1dG8m
IHN0ckRpY3QgOiB0YWJsZS5tYXAoKSkgewogICAgICAgICBQbHVnSW5BdXRvU3RhcnRPcmlnaW5N
YXAgaGFzaGVzOwpAQCAtMTY0LDkgKzE2NCw5IEBAIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXI6OnNldEF1dG9TdGFydE9yaWdpbnNBcnJheShBUEk6OkFycmF5JiBvcmlnaW5MaXN0KQogICAg
ICAgICBtX2F1dG9TdGFydE9yaWdpbnMuYXBwZW5kKHN0cmluZy0+c3RyaW5nKCkpOwogfQogCi12
b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVu
c2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFBsdWdJ
bkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBs
dWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBIYXNoTWFw
PFdlYkNvcmU6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPj46OmNvbnN0X2l0
ZXJhdG9yIHNlc3Npb25JdGVyYXRvciA9IG1faGFzaFRvT3JpZ2luTWFwLmZpbmQoc2Vzc2lvbklE
KTsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+
Pjo6Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9oYXNoVG9PcmlnaW5NYXAuZmlu
ZChzZXNzaW9uSUQpOwogICAgIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz46OmNvbnN0X2l0ZXJh
dG9yIGl0OwogICAgIGJvb2wgY29udGFpbnMgPSBmYWxzZTsKICAgICBpZiAoc2Vzc2lvbkl0ZXJh
dG9yICE9IG1faGFzaFRvT3JpZ2luTWFwLmVuZCgpKSB7CkBAIC0xNzQsNyArMTc0LDcgQEAgdm9p
ZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6ZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNp
Z25lZCBwbHVnSW5PcmlnaW5IYXMKICAgICAgICAgY29udGFpbnMgPSBpdCAhPSBzZXNzaW9uSXRl
cmF0b3ItPnZhbHVlLmVuZCgpOwogICAgIH0KICAgICBpZiAoIWNvbnRhaW5zKSB7Ci0gICAgICAg
IHNlc3Npb25JdGVyYXRvciA9IG1faGFzaFRvT3JpZ2luTWFwLmZpbmQoU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpOworICAgICAgICBzZXNzaW9uSXRlcmF0b3IgPSBtX2hhc2hUb09yaWdp
bk1hcC5maW5kKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgICAgICBp
dCA9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZmluZChwbHVnSW5PcmlnaW5IYXNoKTsKICAgICAg
ICAgaWYgKGl0ID09IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCkpIHsKICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCmluZGV4IGNhMWIwMDQwOTI3
Li40NGI4NGY3ZjQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaApAQCAtMjYsNyArMjYsNyBAQAogI2lm
bmRlZiBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcl9oCiAjZGVmaW5lIFBsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyX2gKIAotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFs
L2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDQs
NyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogCiB0
eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4gUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFw
OwotdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgUGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luTWFwPiBTZXNzaW9uUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwOwordHlwZWRlZiBIYXNoTWFw
PFBBTDo6U2Vzc2lvbklELCBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA+IFNlc3Npb25QbHVnSW5B
dXRvU3RhcnRPcmlnaW5NYXA7CiB0eXBlZGVmIFZlY3RvcjxTdHJpbmc+IFBsdWdJbkF1dG9TdGFy
dE9yaWdpbnM7CiAKIGNsYXNzIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyIHsKQEAgLTUyLDggKzUy
LDggQEAgY2xhc3MgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIgewogcHVibGljOgogICAgIGV4cGxp
Y2l0IFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyKFdlYlByb2Nlc3NQb29sKik7CiAKLSAgICB2b2lk
IGFkZEF1dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1bnNpZ25l
ZCBwbHVnSW5PcmlnaW5IYXNoLCBXZWJDb3JlOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBXZWJDb3JlOjpT
ZXNzaW9uSUQpOworICAgIHZvaWQgYWRkQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcm
IHBhZ2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odW5zaWduZWQgcGx1Z0luT3JpZ2lu
SGFzaCwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVmPEFQSTo6RGljdGlvbmFyeT4gYXV0b1N0
YXJ0T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0OwogICAgIHZvaWQgc2V0QXV0b1N0YXJ0T3JpZ2lu
c1RhYmxlKEFQSTo6RGljdGlvbmFyeSYpOwpAQCAtNjksMTAgKzY5LDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdChBUEk6
OkRpY3Rpb25hcnkmLCBXVEY6OkZ1bmN0aW9uPGJvb2woZG91YmxlIGV4cGlyYXRpb25UaW1lc3Rh
bXApPiYmKTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFBsdWdJbkF1dG9TdGFydE9y
aWdpbk1hcCwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBBdXRvU3RhcnRUYWJsZTsKLSAgICB0
eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBBdXRvU3RhcnRUYWJsZT4gU2Vzc2lv
bkF1dG9TdGFydFRhYmxlOworICAgIHR5cGVkZWYgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgQXV0
b1N0YXJ0VGFibGU+IFNlc3Npb25BdXRvU3RhcnRUYWJsZTsKICAgICBTZXNzaW9uQXV0b1N0YXJ0
VGFibGUgbV9hdXRvU3RhcnRUYWJsZTsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklE
LCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+PiBtX2hhc2hUb09yaWdpbk1hcDsKKyAgICBIYXNo
TWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+PiBtX2hhc2hUb09y
aWdpbk1hcDsKIAogICAgIFBsdWdJbkF1dG9TdGFydE9yaWdpbnMgbV9hdXRvU3RhcnRPcmlnaW5z
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3Jh
Z2VQcm9jZXNzUHJveHkuY3BwCmluZGV4IDIwZDIwZTBlZTNjLi5hNWFhODExOGMxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNz
UHJveHkuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlCiAgICAg
fQogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXVEY6
OkZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
U3RvcmFnZVByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgV1RGOjpGdW5jdGlv
bjx2b2lkIChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJU
KGNhblNlbmRNZXNzYWdlKCkpOwogCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgU3RvcmFnZVByb2Nl
c3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0CiAgICAgc2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkZldGNoV2Vic2l0ZURh
dGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBTdG9y
YWdlUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2
b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5Ojpk
ZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9w
b2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAK
QEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvbgogICAgIHNlbmQoTWVz
c2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEZWxldGVXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFU
eXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFN0b3JhZ2VQ
cm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5oCmlu
ZGV4IDVjMTEwNmQzNjhiLi5jMmQyZWJhNjA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmgKQEAgLTMxLDkgKzMxLDEy
IEBACiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAor
bmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2Vzc2lvbklEOwogc3RydWN0IFNlY3Vy
aXR5T3JpZ2luRGF0YTsKIH0KIApAQCAtNDgsOSArNTEsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxTdG9yYWdlUHJvY2Vzc1Byb3h5PiBjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB+
U3RvcmFnZVByb2Nlc3NQcm94eSgpOwogCi0gICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNv
cmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdURjo6RnVuY3Rpb248
dm9pZChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRl
V2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
Piwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgdm9pZCBkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4m
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBm
ZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiwgV1RGOjpGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7
CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9k
aWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwor
ICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4mLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAK
ICAgICB2b2lkIGdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5
LmNwcAppbmRleCAzZjY3ODk2OGM2NS4uZTY1YzRmYzkzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcApAQCAtMTA3LDcgKzEwNyw3
IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50
KCkKICAgICBBUEk6Ok9iamVjdDo6ZGVyZWYoKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIEZ1bmN0
aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1
bmN0aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoQVBJOjpBcnJheSos
IENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBj
YWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwog
ICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5l
Y2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0SG9zdG5hbWVzV2l0aENvb2tp
ZXMoc2Vzc2lvbklELCBjYWxsYmFja0lEKSk7CkBAIC0xMjQsNDcgKzEyNCw0NyBAQCB2b2lkIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGhvcwogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJu
VmFsdWUoQVBJOjpBcnJheTo6Y3JlYXRlU3RyaW5nQXJyYXkoaG9zdG5hbWVzKS5wdHIoKSk7CiB9
CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUo
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKK3ZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogewogICAgIHByb2Nlc3NQb29sKCkt
PnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6
V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKHNlc3Npb25JRCwgaG9z
dG5hbWUpKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tp
ZXMoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxl
dGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBwcm9jZXNzUG9v
bCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2Fn
ZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXMoc2Vzc2lvbklEKSk7CiB9CiAK
LXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVDb29raWUoU2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
ZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29r
aWUsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rp
b24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2Fs
bGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9j
ZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVs
ZXRlQ29va2llKHNlc3Npb25JRCwgY29va2llLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5OjpkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShTZXNzaW9u
SUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IHRpbWUs
IEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24p
Cit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2lu
Y2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IHRpbWUsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0
KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2ll
TWFuYWdlcjo6RGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2Uoc2Vzc2lvbklELCB0aW1lLCBj
YWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWUo
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIEZ1bmN0aW9uPHZvaWQg
KENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6c2V0Q29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
Q29va2llJiBjb29raWUsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0
KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2ll
TWFuYWdlcjo6U2V0Q29va2llKHNlc3Npb25JRCwgY29va2llLCBjYWxsYmFja0lEKSk7CiB9CiAK
LXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWVzKFNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFZlY3RvcjxDb29raWU+JiBjb29raWVzLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
VVJMJiBtYWluRG9jdW1lbnRVUkwsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3Ip
PiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29v
a2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxDb29raWU+JiBjb29r
aWVzLCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwsIEZ1bmN0aW9u
PHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAg
YXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlv
bikpOwogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hp
bmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U2V0Q29va2llcyhzZXNz
aW9uSUQsIGNvb2tpZXMsIHVybCwgbWFpbkRvY3VtZW50VVJMLCBjYWxsYmFja0lEKSk7CiB9CiAK
LXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRBbGxDb29raWVzKFNlc3Npb25JRCBzZXNz
aW9uSUQsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxDb29raWU+JiwgQ2FsbGJhY2tCYXNl
OjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5
OjpnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAo
Y29uc3QgVmVjdG9yPENvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1
bmN0aW9uKQogewogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEZNb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5n
UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6
OkdldEFsbENvb2tpZXMoc2Vzc2lvbklELCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpnZXRDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVS
TCYgdXJsLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8Q29va2llPiYsIENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6Z2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBG
dW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8Q29va2llPiYsIENhbGxiYWNrQmFzZTo6RXJyb3Ip
PiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFj
a3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29sKCktPnNl
bmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2Vi
Q29va2llTWFuYWdlcjo6R2V0Q29va2llcyhzZXNzaW9uSUQsIHVybCwgY2FsbGJhY2tJRCkpOwpA
QCAtMTg1LDE4ICsxODUsMTggQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZERlbGV0
ZUNvb2tpZXMoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgbV9jYWxsYmFja3Mu
dGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpLT5wZXJmb3JtQ2FsbGJhY2soKTsKIH0KIAot
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhT
ZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0YXJ0T2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgcHJv
Y2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5
KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
c2Vzc2lvbklEKSk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2
aW5nQ29va2llQ2hhbmdlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29raWVNYW5h
Z2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKIHsKICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1
bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlN0b3BPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKHNlc3Npb25JRCkpOwogfQogCiAKLXZvaWQgV2ViQ29va2llTWFuYWdl
clByb3h5OjpzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViQ29va2ll
TWFuYWdlclByb3h5OjpzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIGNhbGxiYWNrKQogewogICAgIGlmIChj
YWxsYmFjaykKICAgICAgICAgbV9sZWdhY3lDb29raWVPYnNlcnZlcnMuc2V0KHNlc3Npb25JRCwg
V1RGTW92ZShjYWxsYmFjaykpOwpAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5OjpzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uCiAgICAgICAgIG1fbGVnYWN5Q29va2llT2JzZXJ2ZXJzLnJlbW92ZShzZXNzaW9uSUQp
OwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6cmVnaXN0ZXJPYnNlcnZlcihXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnNlcnZlciYgb2JzZXJ2ZXIpCit2b2lkIFdlYkNv
b2tpZU1hbmFnZXJQcm94eTo6cmVnaXN0ZXJPYnNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9ic2VydmVyJiBvYnNlcnZlcikKIHsKICAgICBhdXRvIHJlc3VsdCA9IG1fY29va2llT2Jz
ZXJ2ZXJzLnNldChzZXNzaW9uSUQsIEhhc2hTZXQ8T2JzZXJ2ZXIqPigpKTsKICAgICByZXN1bHQu
aXRlcmF0b3ItPnZhbHVlLmFkZCgmb2JzZXJ2ZXIpOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQg
V2ViQ29va2llTWFuYWdlclByb3h5OjpyZWdpc3Rlck9ic2VydmVyKFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9ic2VyCiAgICAgICAgIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhz
ZXNzaW9uSUQpOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6dW5yZWdpc3Rlck9i
c2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9ic2VydmVyJiBvYnNlcnZlcikK
K3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojp1bnJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CiAgICAgYXV0byBpdGVyYXRv
ciA9IG1fY29va2llT2JzZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKICAgICBpZiAoaXRlcmF0b3Ig
PT0gbV9jb29raWVPYnNlcnZlcnMuZW5kKCkpCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OnVucmVnaXN0ZXJPYnNlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPYnMKICAgICBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhzZXNzaW9uSUQp
OwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Y29va2llc0RpZENoYW5nZShTZXNz
aW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNvb2tpZXNEaWRD
aGFuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIG1fY2xpZW50LmNvb2tpZXNE
aWRDaGFuZ2UodGhpcyk7CiAgICAgYXV0byBsZWdhY3lJdGVyYXRvciA9IG1fbGVnYWN5Q29va2ll
T2JzZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKQEAgLTI0Miw3ICsyNDIsNyBAQCB2b2lkIFdlYkNv
b2tpZU1hbmFnZXJQcm94eTo6Y29va2llc0RpZENoYW5nZShTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgICAgICBvYnNlcnZlci0+Y29va2llc0RpZENoYW5nZSgpOwogfQogCi12b2lkIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShTZXNzaW9uSUQsIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxs
YmFja0Z1bmN0aW9uKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghcHJvY2Vzc1Bv
b2woKS0+aXNVc2luZ1Rlc3RpbmdOZXR3b3JrU2Vzc2lvbigpKQpAQCAtMjYxLDcgKzI2MSw3IEBA
IHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFNl
c3Npb25JRCwgSFRUUENvb2tpZUFjY2VwCiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvTmV0d29y
a2luZ1Byb2Nlc3MoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kocG9saWN5LCBPcHRpb25hbENhbGxiYWNrSUQoY2FsbGJhY2tJRCkpKTsKIH0KIAot
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koU2Vz
c2lvbklELCBGdW5jdGlvbjx2b2lkIChIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZv
aWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxi
YWNrRnVuY3Rpb24pCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdU
Rk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3NQb29sKCktPnNlbmRUb05ldHdv
cmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFu
YWdlcjo6R2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjYWxsYmFja0lEKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDM3ZjI2Mzc3
ZGQ1Li43M2RjNGY0Nzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5LmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIldl
YkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNjQsMjcgKzY0LDI3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS0Nvb2tpZU1hbmFn
ZXJDbGllbnRCYXNlKik7CiAgICAgCi0gICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhX
ZWJDb3JlOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6U2Vzc2lvbklE
LCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoV2ViQ29yZTo6U2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKLSAgICB2b2lkIGRlbGV0ZUFsbENvb2tp
ZXMoV2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXNNb2RpZmll
ZFNpbmNlKFdlYkNvcmU6OlNlc3Npb25JRCwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGlt
ZV9wb2ludCwgRnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZv
aWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQg
KEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CisgICAgdm9pZCBkZWxldGVD
b29raWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIEZ1bmN0aW9uPHZv
aWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JI
b3N0bmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBob3N0bmFtZSk7CisgICAgdm9p
ZCBkZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGRlbGV0ZUFsbENv
b2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Ns
b2NrOjp0aW1lX3BvaW50LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7
CiAKLSAgICB2b2lkIHNldENvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OkNvb2tpZSYsIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKLSAgICB2
b2lkIHNldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
Q29va2llPiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgbWFpbkRv
Y3VtZW50VVJMLCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CisgICAg
dm9pZCBzZXRDb29raWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIEZ1
bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIHNldENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgY29uc3Qg
V2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBtYWluRG9jdW1lbnRVUkwsIEZ1bmN0
aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKIAotICAgIHZvaWQgZ2V0QWxsQ29v
a2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIp
OwotICAgIHZvaWQgZ2V0Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlVSTCYsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZ2V0QWxs
Q29va2llcyhQQUw6OlNlc3Npb25JRCwgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7
CisgICAgdm9pZCBnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwm
LCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKIAotICAgIHZvaWQgc2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3ksIEZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKLSAgICB2b2lkIGdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6U2Vzc2lvbklELCBGdW5jdGlvbjx2b2lk
IChIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CisgICAg
dm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29va2ll
QWNjZXB0UG9saWN5LCBGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7Cisg
ICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBGdW5jdGlv
bjx2b2lkIChIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7
CiAKICAgICB2b2lkIHNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGJvb2wpOwog
Ci0gICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6U2Vzc2lvbklE
KTsKLSAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25J
RCk7CisgICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQp
OworICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwog
Ci0gICAgdm9pZCBzZXRDb29raWVPYnNlcnZlckNhbGxiYWNrKFdlYkNvcmU6OlNlc3Npb25JRCwg
V1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmKTsKKyAgICB2b2lkIHNldENvb2tpZU9ic2VydmVyQ2Fs
bGJhY2soUEFMOjpTZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJik7CiAKICAgICBj
bGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtOTMsOCArOTMsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBtYW5hZ2VyRGVzdHJveWVkKCkgPSAwOwogICAgIH07CiAKLSAg
ICB2b2lkIHJlZ2lzdGVyT2JzZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklELCBPYnNlcnZlciYpOwot
ICAgIHZvaWQgdW5yZWdpc3Rlck9ic2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCwgT2JzZXJ2ZXIm
KTsKKyAgICB2b2lkIHJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIE9ic2VydmVyJik7
CisgICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIE9ic2VydmVyJik7
CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKGNv
bnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIHVpbnQzMl90IHN0b3JhZ2VUeXBlKTsKQEAgLTExNSw3
ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkR2V0Q29va2llcyhjb25zdCBWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiYsIFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxl
dGVDb29raWVzKFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAKLSAgICB2b2lkIGNvb2tpZXNEaWRDaGFu
Z2UoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIGNvb2tpZXNEaWRDaGFuZ2UoUEFMOjpT
ZXNzaW9uSUQpOwogCiAgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKICAgICB2b2lkIHByb2Nl
c3NQb29sRGVzdHJveWVkKCkgb3ZlcnJpZGU7CkBAIC0xMzMsOCArMTMzLDggQEAgcHJpdmF0ZToK
IAogICAgIENhbGxiYWNrTWFwIG1fY2FsbGJhY2tzOwogCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpT
ZXNzaW9uSUQsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4+IG1fbGVnYWN5Q29va2llT2JzZXJ2ZXJz
OwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoU2V0PE9ic2VydmVyKj4+IG1f
Y29va2llT2JzZXJ2ZXJzOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFdURjo6RnVuY3Rp
b248dm9pZCAoKT4+IG1fbGVnYWN5Q29va2llT2JzZXJ2ZXJzOworICAgIEhhc2hNYXA8UEFMOjpT
ZXNzaW9uSUQsIEhhc2hTZXQ8T2JzZXJ2ZXIqPj4gbV9jb29raWVPYnNlcnZlcnM7CiAKICAgICBX
ZWJDb29raWVNYW5hZ2VyUHJveHlDbGllbnQgbV9jbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBhNWQ3N2I5NjI5OS4uMzNkZjQ5NWMzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI5
LDUgKzI5LDUgQEAgbWVzc2FnZXMgLT4gV2ViQ29va2llTWFuYWdlclByb3h5IHsKICAgICBEaWRT
ZXRDb29raWVzKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKTsKICAgICBEaWRHZXRDb29r
aWVzKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKTsKIAotICAgIENvb2tpZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICBDb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNjQ0ZWQ3NWM0ODMu
LjA5ZjQ5NjhlZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
Mjk1LDcgKzI5NSw3IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VJRDsgfQogCiAgICAgLy8gRklYTUU6IERvbid0IGtlZXAgYSBzZXBhcmF0ZSBz
ZXNzaW9uSUQgLSBSZWx5IG9uIHRoZSBXZWJzaXRlRGF0YVN0b3JlCi0gICAgV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIAog
ICAgIFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1l
LmdldCgpOyB9CiAgICAgV2ViRnJhbWVQcm94eSogZm9jdXNlZEZyYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9mb2N1c2VkRnJhbWUuZ2V0KCk7IH0KQEAgLTE4NDcsNyArMTg0Nyw3IEBAIHByaXZhdGU6
CiAgICAgY29uc3QgdWludDY0X3QgbV9wYWdlSUQ7CiAKICAgICAvLyBGSVhNRTogRG9uJ3Qga2Vl
cCBhIHNlcGFyYXRlIHNlc3Npb25JRCAtIFJlbHkgb24gdGhlIFdlYnNpdGVEYXRhU3RvcmUKLSAg
ICBjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgY29uc3QgUEFMOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAKICAgICBib29sIG1faXNQYWdlU3VzcGVuZGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fYWRkc1Zpc2l0ZWRMaW5rcyB7IHRydWUgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0NjUxYzkyNGIyNy4uMTM0YzM0
ODUxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTc2LDggKzc2LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1VSTFBhcnNlci5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC01ODQsMTUgKzU4NCwxNSBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3Np
bmdFbmFibGVkKGJvb2wgcHJpdmF0ZQogewogICAgIGlmIChuZXR3b3JrUHJvY2VzcygpKSB7CiAg
ICAgICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICAgICAgbmV0d29ya1By
b2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oe1Nlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCB7IH0sIHsg
fSwgeyB9fSksIDApOworICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oe1BBTDo6U2Vz
c2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCksIHsgfSwgeyB9LCB7IH19KSwgMCk7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95U2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQoKSksIDApOworICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdh
Y3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKICAgICB9CiAKICAgICBpZiAocHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCkKLSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CiAgICAgZWxzZQotICAgICAgICBzZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRDo6bGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCgpKSk7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmxlZ2FjeVBy
aXZhdGVTZXNzaW9uSUQoKSkpOwogfQogCiB2b2lkICgqc19pbnZhbGlkTWVzc2FnZUNhbGxiYWNr
KShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSk7CkBAIC03NzQsNyArNzc0LDcgQEAgV2ViUHJvY2Vz
c1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0
b3JlJiB3ZWJzaXRlRGEKICNlbmRpZgogCiAgICAgaWYgKFdlYlByZWZlcmVuY2VzOjphbnlQYWdl
c0FyZVVzaW5nUHJpdmF0ZUJyb3dzaW5nKCkpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Np
b25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSwgMCk7CiAKICAgICBpZiAobV9hdXRvbWF0
aW9uU2Vzc2lvbikKICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eShtX2F1dG9tYXRpb25TZXNzaW9uLT5zZXNzaW9u
SWRlbnRpZmllcigpKSwgMCk7CkBAIC05MjYsNyArOTI2LDcgQEAgUmVmPFdlYlBhZ2VQcm94eT4g
V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgUmVm
PEFQSToKICAgICBpZiAoIXBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCkpIHsK
ICAgICAgICAgQVNTRVJUKCFwYWdlQ29uZmlndXJhdGlvbi0+c2Vzc2lvbklEKCkuaXNWYWxpZCgp
KTsKICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFdlYnNpdGVEYXRhU3RvcmUobV93ZWJz
aXRlRGF0YVN0b3JlLnB0cigpKTsKLSAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFNlc3Np
b25JRChwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+cHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCgpID8gU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkgOiBtX3dlYnNpdGVE
YXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSk7CisgICAgICAgIHBhZ2VD
b25maWd1cmF0aW9uLT5zZXRTZXNzaW9uSUQocGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2Vz
KCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbklEKCkgOiBtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5z
ZXNzaW9uSUQoKSk7CiAgICAgfQogCiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcHJvY2Vz
czsKQEAgLTk1NCw3ICs5NTQsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwYWdlQWRkZWRUb1By
b2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdlKQogICAgICAgICBBU1NFUlQocGFnZS53ZWJzaXRlRGF0
YVN0b3JlKCkucGFyYW1ldGVycygpLnNlc3Npb25JRCA9PSBzZXNzaW9uSUQpOwogICAgICAgICBz
ZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24ocGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkucGFyYW1ldGVycygp
KSk7CiAgICAgICAgIHBhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKSwgMCk7Ci0gICAgfSBlbHNlIGlm
IChzZXNzaW9uSUQgIT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKKyAgICB9IGVs
c2UgaWYgKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSB7
CiAgICAgICAgIHNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6QWRkV2Vic2l0ZURhdGFTdG9yZShwYWdlLndlYnNpdGVEYXRhU3RvcmUoKS5wYXJhbWV0ZXJz
KCkpKTsKICAgICAgICAgcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
QWRkV2Vic2l0ZURhdGFTdG9yZShwYWdlLndlYnNpdGVEYXRhU3RvcmUoKS5wYXJhbWV0ZXJzKCkp
LCAwKTsKIApAQCAtOTc4LDEwICs5NzgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGFnZVJl
bW92ZWRGcm9tUHJvY2VzcyhXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgaWYgKGl0ZXJhdG9yLT52
YWx1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9zZXNzaW9uVG9QYWdlc01hcC5yZW1vdmUoaXRl
cmF0b3IpOwogCi0gICAgICAgIGlmIChzZXNzaW9uSUQgPT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpCisgICAgICAgIGlmIChzZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBUaGUgbGFz
dCB1c2VyIG9mIHRoaXMgbm9uLWRlZmF1bHQgU2Vzc2lvbklEIGlzIGdvbmUsIHNvIGNsZWFuIGl0
IHVwIGluIHRoZSBjaGlsZCBwcm9jZXNzZXMuCisgICAgICAgIC8vIFRoZSBsYXN0IHVzZXIgb2Yg
dGhpcyBub24tZGVmYXVsdCBQQUw6OlNlc3Npb25JRCBpcyBnb25lLCBzbyBjbGVhbiBpdCB1cCBp
biB0aGUgY2hpbGQgcHJvY2Vzc2VzLgogICAgICAgICBpZiAobmV0d29ya1Byb2Nlc3MoKSkKICAg
ICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpEZXN0cm95U2Vzc2lvbihzZXNzaW9uSUQpLCAwKTsKICAgICAgICAgcGFnZS5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGVzdHJveVNlc3Npb24oc2Vzc2lvbklEKSwgMCk7
CkBAIC05OTEsNyArOTkxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGFnZVJlbW92ZWRGcm9t
UHJvY2VzcyhXZWJQYWdlUHJveHkmIHBhZ2UpCiBEb3dubG9hZFByb3h5KiBXZWJQcm9jZXNzUG9v
bDo6ZG93bmxvYWQoV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQogewogICAg
IERvd25sb2FkUHJveHkqIGRvd25sb2FkUHJveHkgPSBjcmVhdGVEb3dubG9hZFByb3h5KHJlcXVl
c3QpOwotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBpbml0aWF0aW5nUGFnZSA/IGluaXRpYXRp
bmdQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCA9IGluaXRpYXRpbmdQYWdlID8gaW5pdGlhdGluZ1Bh
Z2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKIAog
ICAgIGlmIChpbml0aWF0aW5nUGFnZSkKICAgICAgICAgaW5pdGlhdGluZ1BhZ2UtPmhhbmRsZURv
d25sb2FkUmVxdWVzdChkb3dubG9hZFByb3h5KTsKQEAgLTEwMjEsNyArMTAyMSw3IEBAIERvd25s
b2FkUHJveHkqIFdlYlByb2Nlc3NQb29sOjpyZXN1bWVEb3dubG9hZChjb25zdCBBUEk6OkRhdGEq
IHJlc3VtZURhdGEsIGNvbnN0CiAKICAgICBpZiAobmV0d29ya1Byb2Nlc3MoKSkgewogICAgICAg
ICAvLyBGSVhNRTogSWYgd2Ugc3RhcnRlZCBhIGRvd25sb2FkIGluIGFuIGVwaGVtZXJhbCBzZXNz
aW9uIGFuZCB0aGF0IHNlc3Npb24gc3RpbGwgZXhpc3RzLCB3ZSBzaG91bGQgZmluZCBhIHdheSB0
byB1c2UgdGhhdCBzYW1lIHNlc3Npb24uCi0gICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXN1bWVEb3dubG9hZChTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSwgZG93bmxvYWRQcm94eS0+ZG93bmxvYWRJRCgpLCByZXN1bWVEYXRhLT5k
YXRhUmVmZXJlbmNlKCksIHBhdGgsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpLCAwKTsKKyAgICAg
ICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc3Vt
ZURvd25sb2FkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIGRvd25sb2FkUHJv
eHktPmRvd25sb2FkSUQoKSwgcmVzdW1lRGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBwYXRoLCBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKSwgMCk7CiAgICAgICAgIHJldHVybiBkb3dubG9hZFByb3h5Owog
ICAgIH0KIApAQCAtMTUzNCwxMiArMTUzNCwxMiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRK
YXZhU2NyaXB0R2FyYmFnZUNvbGxlY3RvclRpbWVyRW5hYmxlZChib29sIGZsYWcpCiAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRKYXZhU2NyaXB0R2FyYmFn
ZUNvbGxlY3RvclRpbWVyRW5hYmxlZChmbGFnKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OmFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1
bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJQ
cm9jZXNzUG9vbDo6YWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcmIHBh
Z2VPcmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKIHsKICAgICBtX3BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmFkZEF1dG9TdGFydE9yaWdp
bkhhc2gocGFnZU9yaWdpbiwgcGx1Z0luT3JpZ2luSGFzaCwgc2Vzc2lvbklEKTsKIH0KIAotdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNpZ25l
ZCBwbHVnSW5PcmlnaW5IYXNoLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1bnNpZ25lZCBwbHVnSW5Pcmln
aW5IYXNoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgbV9wbHVnSW5BdXRvU3Rh
cnRQcm92aWRlci5kaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHBsdWdJbk9yaWdpbkhhc2gsIHNl
c3Npb25JRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRl
eCBjNzAwN2RhNWQwZi4uY2MwODIyYzM1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaApAQCAtNDUsNyArNDUsNyBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRDb25u
ZWN0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9MaW5rSGFzaC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBA
IC00NTcsOCArNDU3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHVucmVnaXN0ZXJOb3RpZmljYXRp
b25PYnNlcnZlcnMoKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFz
aCwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50
ZXJhY3Rpb24odW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgV2ViQ29yZTo6U2Vzc2lvbklEKTsK
KyAgICB2b2lkIGFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdl
T3JpZ2luLCB1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCk7CisgICAg
dm9pZCBwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdp
bkhhc2gsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgc2V0QW55UGFnZUdyb3VwTWlnaHRI
YXZlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sKTsKIApAQCAtNjEwLDcgKzYxMCw3IEBAIHBy
aXZhdGU6CiAgICAgfTsKICAgICBQYXRocyBtX3Jlc29sdmVkUGF0aHM7CiAKLSAgICBIYXNoTWFw
PFdlYkNvcmU6OlNlc3Npb25JRCwgSGFzaFNldDxXZWJQYWdlUHJveHkqPj4gbV9zZXNzaW9uVG9Q
YWdlc01hcDsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoU2V0PFdlYlBhZ2VQcm94
eSo+PiBtX3Nlc3Npb25Ub1BhZ2VzTWFwOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4K
aW5kZXggZTBiYjI2OTRhYTUuLjYwYWE4ZTIyNDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgpAQCAtMzIsOCArMzIsOCBAQCBt
ZXNzYWdlcyAtPiBXZWJQcm9jZXNzUG9vbCB7CiAjZW5kaWYKIAogICAgICMgUGx1Zy1pbiBtZXNz
YWdlcy4KLSAgICB2b2lkIEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2goU3RyaW5nIHBhZ2VP
cmlnaW4sIHVpbnQzMl90IGhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAg
dm9pZCBQbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVpbnQzMl90IGhhc2gsIFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgdm9pZCBBZGRQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoKFN0cmluZyBwYWdlT3JpZ2luLCB1aW50MzJfdCBoYXNoLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCisgICAgdm9pZCBQbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVpbnQz
Ml90IGhhc2gsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAogICAgIFJlcG9ydFdlYkNvbnRl
bnRDUFVUaW1lKFNlY29uZHMgY3B1VGltZSwgdWludDY0X3QgYWN0aXZpdHlTdGF0ZSkKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDcwODVjZTky
NDA2Li43MmVhZTYyYjYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0
ZVdlYnNpdGVEYXRhRm9yVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNJbkFsbFBlcnMKICAg
ICAKICAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBh
ZG9wdFJlZihuZXcgQ2FsbGJhY2tBZ2dyZWdhdG9yKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KSk7CiAKLSAgICBIYXNoU2V0PFdlYkNvcmU6OlNlc3Npb25JRD4gdmlzaXRlZFNlc3Npb25JRHM7
CisgICAgSGFzaFNldDxQQUw6OlNlc3Npb25JRD4gdmlzaXRlZFNlc3Npb25JRHM7CiAgICAgZm9y
IChhdXRvJiBwYWdlIDogZ2xvYmFsUGFnZU1hcCgpKSB7CiAgICAgICAgIGF1dG8mIGRhdGFTdG9y
ZSA9IHBhZ2UudmFsdWUtPndlYnNpdGVEYXRhU3RvcmUoKTsKICAgICAgICAgaWYgKCFkYXRhU3Rv
cmUuaXNQZXJzaXN0ZW50KCkgfHwgdmlzaXRlZFNlc3Npb25JRHMuY29udGFpbnMoZGF0YVN0b3Jl
LnNlc3Npb25JRCgpKSkKQEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNXaXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdl
YgogICAgIAogICAgIFJlZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRv
ciA9IGFkb3B0UmVmKG5ldyBDYWxsYmFja0FnZ3JlZ2F0b3IoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpKTsKICAgICAKLSAgICBIYXNoU2V0PFdlYkNvcmU6OlNlc3Npb25JRD4gdmlzaXRlZFNl
c3Npb25JRHM7CisgICAgSGFzaFNldDxQQUw6OlNlc3Npb25JRD4gdmlzaXRlZFNlc3Npb25JRHM7
CiAgICAgZm9yIChhdXRvJiBwYWdlIDogZ2xvYmFsUGFnZU1hcCgpKSB7CiAgICAgICAgIGF1dG8m
IGRhdGFTdG9yZSA9IHBhZ2UudmFsdWUtPndlYnNpdGVEYXRhU3RvcmUoKTsKICAgICAgICAgaWYg
KCFkYXRhU3RvcmUuaXNQZXJzaXN0ZW50KCkgfHwgdmlzaXRlZFNlc3Npb25JRHMuY29udGFpbnMo
ZGF0YVN0b3JlLnNlc3Npb25JRCgpKSkKQEAgLTgzNCw3ICs4MzQsNyBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6d2luZG93U2VydmVyQ29ubmVjdGlvblN0YXRlQ2hhbmdlZCgpCiAgICAgICAgIHBh
Z2UtPmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUp
OwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIEZ1bmN0aW9u
PHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNz
UHJveHk6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIEZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsK
IApAQCAtODUyLDcgKzg1Miw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVE
YXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0CiAgICAgfSk7CiB9
CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4gZGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlm
aWVkU2luY2UsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CiAKQEAgLTg2NSw3ICs4NjUsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYQogICAgIH0pOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4mIG9yaWdpbnMsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGNhblNlbmRN
ZXNzYWdlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IDFlZTQ4ZjdjYjJkLi41NTkwZGFmMmM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM5LDggKzM5LDggQEAKICNpbmNsdWRlICJXZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0xMzgsOSArMTM4LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCk7CiAgICAgdm9pZCByZWxlYXNlUGFnZUNh
Y2hlKCk7CiAKLSAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgRnVuY3Rpb248dm9pZChXZWJzaXRlRGF0YSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdl
YkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBGdW5jdGlvbjx2b2lkKFdlYnNpdGVEYXRhKT4m
JiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6
OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKTsKICAgICBzdGF0aWMgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW5zSW5BbGxQZXJzaXN0ZW50RGF0YVN0b3JlcyhPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgVmVjdG9yPFN0cmluZz4mJiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWlucywgYm9vbCBzaG91bGROb3RpZnlQYWdlcywgRnVuY3Rpb248dm9pZCAoY29uc3QgSGFzaFNl
dDxTdHJpbmc+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHN0YXRpYyB2b2lkIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW5zV2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcywgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBGdW5jdGlvbjx2b2lk
KEhhc2hTZXQ8U3RyaW5nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgc3RhdGljIHZv
aWQgbm90aWZ5UGFnZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAppbmRleCA5NTg2NTY2MTMyNy4uMmMzOWE0Y2I5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CkBAIC02MywxNSArNjMsMTUgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSWRlbnRpZmllcigp
CiAKIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJz
aXN0ZW50KCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0b3JlKFdl
YkNvcmU6OlNlc3Npb25JRDo6Z2VuZXJhdGVFcGhlbWVyYWxTZXNzaW9uSUQoKSkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3RvcmUoUEFMOjpTZXNzaW9uSUQ6OmdlbmVy
YXRlRXBoZW1lcmFsU2Vzc2lvbklEKCkpKTsKIH0KIAotUmVmPFdlYnNpdGVEYXRhU3RvcmU+IFdl
YnNpdGVEYXRhU3RvcmU6OmNyZWF0ZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24sIFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8V2Vic2l0ZURhdGFTdG9yZT4gV2Vic2l0ZURh
dGFTdG9yZTo6Y3JlYXRlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYnNpdGVEYXRhU3Rv
cmUoV1RGTW92ZShjb25maWd1cmF0aW9uKSwgc2Vzc2lvbklEKSk7CiB9CiAKLVdlYnNpdGVEYXRh
U3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFT
dG9yZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICA6IG1faWRlbnRpZmllcihnZW5lcmF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pKQpAQCAtODEsNyArODEsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0
b3JlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2Vzc2lvbgogICAgIHBs
YXRmb3JtSW5pdGlhbGl6ZSgpOwogfQogCi1XZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0
b3JlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitXZWJzaXRlRGF0YVN0b3JlOjpXZWJz
aXRlRGF0YVN0b3JlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1faWRlbnRpZmll
cihnZW5lcmF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAg
ICAsIG1fY29uZmlndXJhdGlvbigpCkBAIC05NCw3ICs5NCw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6
On5XZWJzaXRlRGF0YVN0b3JlKCkKIHsKICAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIAotICAgIGlm
IChtX3Nlc3Npb25JRC5pc1ZhbGlkKCkgJiYgbV9zZXNzaW9uSUQgIT0gV2ViQ29yZTo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKKyAgICBpZiAobV9zZXNzaW9uSUQuaXNWYWxpZCgp
ICYmIG1fc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsK
ICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9j
ZXNzUG9vbHMoKSkKICAgICAgICAgICAgIHByb2Nlc3NQb29sLT5zZW5kVG9OZXR3b3JraW5nUHJv
Y2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lTZXNzaW9uKG1fc2Vzc2lvbklE
KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDgwZThmMDdlMjUwLi4wMmYxMTMzNzkzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
U2V0Lmg+CkBAIC04MSwxMyArODEsMTMgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgY29va2ll
U3RvcmFnZUZpbGU7CiAgICAgfTsKICAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNy
ZWF0ZU5vblBlcnNpc3RlbnQoKTsKLSAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNy
ZWF0ZShDb25maWd1cmF0aW9uLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyBSZWY8
V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEKTsK
ICAgICB2aXJ0dWFsIH5XZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICB1aW50NjRfdCBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKICAgICBib29sIGlzUGVyc2lz
dGVudCgpIGNvbnN0IHsgcmV0dXJuICFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOyB9Ci0gICAg
V2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQ7IH0KIAogICAgIGJvb2wgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25z
dDsKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wpOwpAQCAt
MTMxLDggKzEzMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3NBbmRTZXRUZXN0aW5nQ2FsbGJhY2soRnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJik+
JiYgY2FsbGJhY2spOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYnNpdGVEYXRhU3RvcmUo
V2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlKENvbmZp
Z3VyYXRpb24sIFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFT
dG9yZShQQUw6OlNlc3Npb25JRCk7CisgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZShDb25m
aWd1cmF0aW9uLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2b2lkIGZldGNoRGF0YUFuZEFwcGx5
KE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9w
dGlvbj4sIFJlZlB0cjxXb3JrUXVldWU+JiYsIEZ1bmN0aW9uPHZvaWQoVmVjdG9yPFdlYnNpdGVE
YXRhUmVjb3JkPik+JiYgYXBwbHkpOwogCkBAIC0xNTksNyArMTU5LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgdm9pZCByZW1vdmVNZWRpYUtleXMoY29uc3QgU3RyaW5nJiBtZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5LCBjb25zdCBIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4m
KTsKIAogICAgIGNvbnN0IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKLSAgICBjb25zdCBXZWJDb3Jl
OjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgY29uc3QgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CiAKICAgICBjb25zdCBDb25maWd1cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKICAgICBD
b25maWd1cmF0aW9uIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAppbmRleCAxMjEz
ZDNhODczYi4uOWRjNTc3MDU3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFdlYkNv
b2tpZU1hbmFnZXI6OldlYkNvb2tpZU1hbmFnZXIoQ2hpbGRQcm9jZXNzKiBwcm9jZXNzKQogICAg
IG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2Vy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5h
Z2VyOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldEhvc3RuYW1lc1dpdGhD
b29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogICAgIEhhc2hTZXQ8U3RyaW5nPiBob3N0bmFtZXM7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VT
ZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
KQpAQCAtNjYsMjAgKzY2LDIwIEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SG9zdG5hbWVz
V2l0aENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjCiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldEhvc3RuYW1l
c1dpdGhDb29raWVzKGhvc3RuYW1lTGlzdCwgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxl
dGVDb29raWVzRm9ySG9zdG5hbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGhvc3RuYW1lKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgV2ViQ29y
ZTo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcygqc3RvcmFnZVNlc3Npb24sIHsgaG9zdG5hbWUg
fSk7CiB9CiAKIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzKFNlc3Np
b25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lv
biA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAg
ICAgICAgV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcygqc3RvcmFnZVNlc3Npb24pOwogfQogCi12
b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZShTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBDb29raWUmIGNvb2tpZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBD
b29raWUmIGNvb2tpZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGlmIChhdXRvKiBz
dG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmRlbGV0ZUNvb2tpZShjb29raWUpOwpA
QCAtODcsNyArODcsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZShTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNvb2tpZSwgQwogICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWREZWxldGVDb29raWVzKGNh
bGxiYWNrSUQpLCAwKTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29r
aWVzTW9kaWZpZWRTaW5jZShTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjp0aW1lX3BvaW50IHRpbWUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IHRpbWUs
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24g
PSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAg
ICAgIFdlYkNvcmU6OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKCpzdG9yYWdlU2Vzc2lv
biwgdGltZSk7CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRl
QWxsQ29va2llc01vZGlmaWVkU2luY2UoU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpjCiAgICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZERlbGV0
ZUNvb2tpZXMoY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFdlYkNvb2tpZU1hbmFnZXI6Omdl
dEFsbENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQor
dm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFZlY3RvcjxDb29raWU+IGNvb2tp
ZXM7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6Z2V0QWxsQ29va2llcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVN
YW5hZ2VyUHJveHk6OkRpZEdldENvb2tpZXMoY29va2llcywgY2FsbGJhY2tJRCksIDApOwogfQog
Ci12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldENvb2tpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgVVJMJiB1cmwsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQ29va2llTWFu
YWdlcjo6Z2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJs
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgVmVjdG9yPENvb2tpZT4gY29va2llczsK
ICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0
b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpnZXRDb29raWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJs
LCBDYWxsYmFja0kKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6RGlkR2V0Q29va2llcyhjb29raWVzLCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKLXZv
aWQgV2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IENvb2tpZSYgY29va2llLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IENvb2tpZSYgY29va2llLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgaWYgKGF1dG8q
IHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihz
ZXNzaW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+c2V0Q29va2llKGNvb2tpZSk7CkBA
IC0xMjEsNyArMTIxLDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRDb29raWUoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb28KICAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkU2V0Q29va2llcyhjYWxs
YmFja0lEKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0Q29va2llcyhXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPiYgY29va2llcywg
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMLCBDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPiYgY29va2llcywgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7
CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
dG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+c2V0Q29v
a2llcyhjb29raWVzLCB1cmwsIG1haW5Eb2N1bWVudFVSTCk7CkBAIC0xMjksMTMgKzEyOSwxMyBA
QCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVmVjdG9yPENvbwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRTZXRDb29raWVzKGNhbGxiYWNrSUQpLCAwKTsKIH0K
IAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpub3RpZnlDb29raWVzRGlkQ2hhbmdlKFNlc3Npb25J
RCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6Om5vdGlmeUNvb2tpZXNEaWRDaGFu
Z2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OkNvb2tpZXNEaWRDaGFuZ2Uoc2Vzc2lvbklEKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ29va2ll
TWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFNlc3Npb25JRCBzZXNzaW9uSUQp
Cit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAg
ICAgIFdlYkNvcmU6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygqc3RvcmFnZVNlc3Npb24s
IFt0aGlzLCBzZXNzaW9uSURdIHsKQEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIH0KIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcyhTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYg
KGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vz
c2lvbihzZXNzaW9uSUQpKQogICAgICAgICBXZWJDb3JlOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hh
bmdlcygqc3RvcmFnZVNlc3Npb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCmluZGV4IDg0NGY3YTNiNDZkLi42ODc0MWFkMGU2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tp
ZU1hbmFnZXIuaApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzU3Vw
cGxlbWVudC5oIgogI2luY2x1ZGUgIk9wdGlvbmFsQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KQEAgLTY0LDMwICs2NCwzMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShjb25zdCBTdHJpbmcmIHN0b3JhZ2VQYXRoLCB1aW50
MzJfdCBzdG9yYWdlVHlwZSk7CiAjZW5kaWYKIAotICAgIHZvaWQgbm90aWZ5Q29va2llc0RpZENo
YW5nZShXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgbm90aWZ5Q29va2llc0RpZENoYW5n
ZShQQUw6OlNlc3Npb25JRCk7CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXZWJD
b3JlOjpTZXNzaW9uSUQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoUEFMOjpTZXNzaW9uSUQsIENhbGxiYWNrSUQpOwogCi0gICAgdm9pZCBkZWxldGVDb29r
aWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBDYWxsYmFja0lE
KTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShXZWJDb3JlOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZGVsZXRlQWxsQ29va2llcyhXZWJDb3JlOjpTZXNz
aW9uSUQpOwotICAgIHZvaWQgZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoV2ViQ29yZTo6
U2Vzc2lvbklELCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50LCBDYWxsYmFj
a0lEKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6Q29va2llJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5h
bWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGVsZXRlQWxsQ29v
a2llcyhQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkZWxldGVBbGxDb29raWVzTW9kaWZpZWRT
aW5jZShQQUw6OlNlc3Npb25JRCwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2lu
dCwgQ2FsbGJhY2tJRCk7CiAKLSAgICB2b2lkIHNldENvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgc2V0Q29va2ll
cyhXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgY29u
c3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBtYWluRG9jdW1lbnRVUkwsIENh
bGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0QWxsQ29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIENh
bGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlVSTCYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgc2V0Q29va2llKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIHNl
dENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jiwg
Y29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBtYWluRG9jdW1lbnRVUkws
IENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0QWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ2Fs
bGJhY2tJRCk7CisgICAgdm9pZCBnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpVUkwmLCBDYWxsYmFja0lEKTsKIAogICAgIHZvaWQgcGxhdGZvcm1TZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogICAgIHZvaWQgZ2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShDYWxsYmFja0lEKTsKICAgICBIVFRQQ29va2llQWNjZXB0UG9saWN5
IHBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpOwogCi0gICAgdm9pZCBzdGFydE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIHN0b3BP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBzdGFy
dE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgc3RvcE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgQ2hpbGRQcm9jZXNz
KiBtX3Byb2Nlc3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNWZlZWZhNzEy
YzguLjQzZjZhN2IyNzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI0LDIyICsy
NCwyMiBAQAogICovCiAgCiAgbWVzc2FnZXMgLT4gV2ViQ29va2llTWFuYWdlciB7Ci0gICAgdm9p
ZCBHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICB2b2lkIERlbGV0ZUNvb2tpZXNGb3JI
b3N0bmFtZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgaG9zdG5hbWUpCi0g
ICAgdm9pZCBEZWxldGVBbGxDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisg
ICAgdm9pZCBHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIHZvaWQgRGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGhvc3RuYW1lKQorICAg
IHZvaWQgRGVsZXRlQWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKLSAgICB2
b2lkIFNldENvb2tpZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViQ29y
ZTo6Q29va2llIGNvb2tpZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgdm9p
ZCBTZXRDb29raWVzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+IGNvb2tpZXMsIFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBtYWluRG9j
dW1lbnRVUkwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHZvaWQgR2V0QWxs
Q29va2llcyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKLSAgICB2b2lkIEdldENvb2tpZXMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6VVJMIHVybCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0g
ICAgdm9pZCBEZWxldGVDb29raWUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0
IFdlYkNvcmU6OkNvb2tpZSBjb29raWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQot
ICAgIHZvaWQgRGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCB0aW1lLCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICB2b2lkIFNldENvb2tpZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDb29raWUgY29va2llLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICB2b2lkIFNldENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzLCBXZWJDb3JlOjpV
UkwgdXJsLCBXZWJDb3JlOjpVUkwgbWFpbkRvY3VtZW50VVJMLCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKKyAgICB2b2lkIEdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICB2b2lkIEdldENvb2tpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgdXJsLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDb29raWUgY29va2llLCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9w
b2ludCB0aW1lLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAogICAgIHZvaWQgU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSh1aW50MzJfdCBwb2xpY3ksIFdlYktpdDo6T3B0aW9uYWxD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgdm9pZCBHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIAotICAgIHZvaWQgU3RhcnRPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgdm9p
ZCBTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQorICAgIHZvaWQgU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICB2b2lkIFN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKIAogI2lmIFVTRShTT1VQKQogICAgIFNldENvb2tpZVBlcnNpc3RlbnRT
dG9yYWdlKFN0cmluZyBzdG9yYWdlUGF0aCwgdWludDMyX3Qgc3RvcmFnZVR5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCA0ZDc2ZmJiNDNl
MC4uYzE4M2M1NDk1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyLmNwcApAQCAtNTUsMTIgKzU1LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoU2Vzc2lvbklEIHNlc3Npb25JRCkKK1JlZjxX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoc2Vzc2lvbklEKSk7CiB9CiAKLVdlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKFNlc3Npb25JRCBzZXNzaW9uSUQp
CitXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CiAg
ICAgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGM3OWUwNDFkNGYxLi4yOTc1NTk1NjJmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTMwLDcgKzMwLDcg
QEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lv
bi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSURCQ29ubmVjdGlvblRvU2VydmVyLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9u
SUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgV2Vi
SURCUmVzdWx0OwogCiBjbGFzcyBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgZmluYWwgOiBwdWJs
aWMgV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSwgcHVi
bGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI+IGNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyBSZWY8V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdmlydHVh
bCB+V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKCk7CiAKQEAgLTEwOSwxNCArMTA5LDE0IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoKTsKIAogcHJpdmF0ZToKLSAg
ICBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgSVBDOjpDb25uZWN0
aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFsOwogCiAgICAgdWludDY0X3QgbV9p
ZGVudGlmaWVyIHsgMCB9OwogICAgIGJvb2wgbV9pc09wZW5JblNlcnZlciB7IGZhbHNlIH07CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyPiBtX2Nv
bm5lY3Rpb25Ub1NlcnZlcjsKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Cisg
ICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0
YWJhc2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dl
YkRhdGFiYXNlUHJvdmlkZXIuY3BwCmluZGV4IDJiODdiYWY5NGU3Li5lYjE1MWVkZDJmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVBy
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRh
dGFiYXNlUHJvdmlkZXIuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNs
dWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAKQEAgLTY5LDcgKzY5LDcgQEAgV2ViRGF0YWJhc2VQcm92aWRlcjo6fldlYkRh
dGFiYXNlUHJvdmlkZXIoKQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKLVdlYkNv
cmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBXZWJEYXRhYmFzZVByb3ZpZGVy
OjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25J
RCYgc2Vzc2lvbklEKQorV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXIm
IFdlYkRhdGFiYXNlUHJvdmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29u
c3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkKIHsKICAgICBpZiAoc2Vzc2lvbklELmlzRXBo
ZW1lcmFsKCkpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBtX2lkYkVwaGVtZXJhbENvbm5lY3Rp
b25NYXAuYWRkKHNlc3Npb25JRC5zZXNzaW9uSUQoKSwgbnVsbHB0cik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5o
CmluZGV4IGI3MmIyMzRmZjFmLi5mOWRhYWYxMWFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKQEAgLTM4
LDcgKzM4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYkRhdGFiYXNlUHJvdmlkZXIoKTsK
IAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIFdlYkNvcmU6OklEQkNsaWVudDo6
SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNv
bnN0IFdlYkNvcmU6OlNlc3Npb25JRCYpIGZpbmFsOworICAgIFdlYkNvcmU6OklEQkNsaWVudDo6
SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNv
bnN0IFBBTDo6U2Vzc2lvbklEJikgZmluYWw7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwCmluZGV4IDlhOGE2MGMxNTA5Li40ZWIwMTU5ZTFjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwCkBAIC03MSwxMSArNzEsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRy
b2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckdl
c3R1cmVJbmRpY2F0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTY3JpcHQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIv
U2Vzc2lvbklELmg+CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmgiCkBAIC0zMTksOSArMzE5LDkgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdy
b3VwLCBib28KIHsKICAgICBpZiAoZW5hYmxlZCkgewogICAgICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uSW5OZXR3b3JrUHJvY2Vz
cygpOwotICAgICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAgICAg
ICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKICAgICB9IGVsc2UK
LSAgICAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5
UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAgICAgICAgU2Vzc2lvblRyYWNrZXI6OmRlc3Ryb3lTZXNz
aW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogCiAgICAgY29u
c3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3Vw
LT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJh
dG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBhMjM5MzAyN2FkMS4uZGQ3ODYwYjUyOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtNDEsOCArNDEsOCBAQAogI2luY2x1ZGUgIldl
YlNvY2tldFN0cmVhbU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJj
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW5jbHVk
ZSA8cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGUKIH0KIAogI2lm
IEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCi12b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkK
K3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYg
aGFuZGxlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlID0gTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLnJlc291cmNlRm9yUmVxdWVzdChy
ZXF1ZXN0LCBzZXNzaW9uSUQpOwogICAgIGlmICghcmVzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5oCmluZGV4IGZiMzAxNTZlODQ1Li41NmFjYThiZjRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmgKQEAgLTM1LDExICszNSwxNCBAQCBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIERhdGFSZWZlcmVu
Y2U7CiB9CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0
OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFNlc3Npb25JRDsKIH0KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC03Myw3ICs3Niw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoU0hB
UkVBQkxFX1JFU09VUkNFKQogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRD
YWNoZVJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNoYXJl
YWJsZVJlc291cmNlOjpIYW5kbGUmLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgZGlk
Q2FjaGVSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFy
ZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgUEFMOjpTZXNzaW9uSUQpOwogI2VuZGlmCiAKICAgICAv
LyBUaGUgY29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgbmV0d29yayBwcm9j
ZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGE0ZmM0
MjZkODA0Li4yM2EyZWNhMDE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0Up
Ci0gICAgRGlkQ2FjaGVSZXNvdXJjZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
V2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNlLCBXZWJDb3JlOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQorICAgIERpZENhY2hlUmVzb3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSByZXNvdXJj
ZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlmCiAKICAgICBEaWRXcml0ZUJsb2Jz
VG9UZW1wb3JhcnlGaWxlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFN0cmlu
Zz4gZmlsZW5hbWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDlkOTc3NWIwNDhmLi40YTc1Y2ZjNzc1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcApAQCAtNTksOSArNTksOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJy
ZXJQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3Vi
cmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAg
LTIyMiw3ICsyMjIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVz
b3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIGxvYWRQYXJhbWV0
ZXJzLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJ
RCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMu
d2ViRnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9h
ZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDog
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lv
bklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVzb3VyY2VM
b2FkZXIucmVxdWVzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGlj
eSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzID0gYWxsb3dTdG9yZWRDcmVkZW50aWFsczsKQEAgLTM2Niw3ICszNjYsNyBA
QCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0LCB1bgogICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIg
PSByZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9
IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2Vi
RnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBh
cmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAg
ICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBTbmlmZkNvbnRlbnQ7CiAg
ICAgbG9hZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IHN0b3JlZENyZWRlbnRp
YWxzOwpAQCAtNDAxLDcgKzQwMSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBp
bmdIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBSCiAgICAgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CiAgICAgbG9hZFBhcmFt
ZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2lu
ID0gV1RGTW92ZShzb3VyY2VPcmlnaW4pOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9
IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdl
LT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAg
bG9hZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IG9wdGlvbnMuY3JlZGVudGlh
bHMgPT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCA/IERvTm90QWxsb3dTdG9yZWRD
cmVkZW50aWFscyA6IEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiAgICAgbG9hZFBhcmFtZXRlcnMu
bW9kZSA9IG9wdGlvbnMubW9kZTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRGb2xsb3dSZWRp
cmVjdHMgPSBvcHRpb25zLnJlZGlyZWN0ID09IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxv
dzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dFByb3ZpZGVyLmNwcAppbmRleCBlMzMzZjY0YTFiZC4uOTg3NjA5Mjc0ZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5j
cHAKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1SZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBXZWJTb2NrZXRQcm92aWRlcjo6
Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQmIGNsaWVudCwgU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVk
ZW50aWFsUGFydGl0aW9uKQorUmVmPFNvY2tldFN0cmVhbUhhbmRsZT4gV2ViU29ja2V0UHJvdmlk
ZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFt
SGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKQogewogICAgIHJldHVybiBXZWJTb2NrZXRTdHJlYW06
OmNyZWF0ZSh1cmwsIGNsaWVudCwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92
aWRlci5oCmluZGV4IGE0YTE4MmMyZGZkLi4wMjQ0ZTVmMmM4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oCkBAIC0zMiw3
ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViU29ja2V0UHJvdmlkZXIgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6U29ja2V0UHJvdmlkZXIgewogcHVibGljOgogICAgIHN0YXRp
YyBSZWY8V2ViU29ja2V0UHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViU29ja2V0UHJvdmlkZXIpOyB9Ci0gICAgUmVmPFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRs
ZT4gY3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6
OlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKSBmaW5hbDsKKyAgICBSZWY8V2ViQ29yZTo6U29ja2V0
U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgV2ViQ29yZTo6VVJM
JiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbikgZmluYWw7CiAgICAgdmlydHVhbCB+V2Vi
U29ja2V0UHJvdmlkZXIoKSB7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0uY3BwCmluZGV4IDhmMjQzNWFmMWRlLi5jOWY1
NzljYzkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRTdHJlYW0uY3BwCkBAIC0zMiw5ICszMiw5IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nv
Y2tldFN0cmVhbU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1FcnJvci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIv
U2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpAQCAtNjUsMTIgKzY1LDEyIEBAIHZvaWQgV2ViU29ja2V0U3RyZWFt
OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQogICAgIGdsb2JhbFdlYlNvY2tldFN0cmVhbU1hcCgp
LmNsZWFyKCk7CiB9CiAKLVJlZjxXZWJTb2NrZXRTdHJlYW0+IFdlYlNvY2tldFN0cmVhbTo6Y3Jl
YXRlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgU2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKQorUmVm
PFdlYlNvY2tldFN0cmVhbT4gV2ViU29ja2V0U3RyZWFtOjpjcmVhdGUoY29uc3QgVVJMJiB1cmws
IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbikKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJTb2NrZXRTdHJlYW0odXJsLCBjbGllbnQsIHNlc3Npb25JRCwgY3JlZGVu
dGlhbFBhcnRpdGlvbikpOwogfQogCi1XZWJTb2NrZXRTdHJlYW06OldlYlNvY2tldFN0cmVhbShj
b25zdCBXZWJDb3JlOjpVUkwmIHVybCwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
JiBjbGllbnQsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY2Fj
aGVQYXJ0aXRpb24pCitXZWJTb2NrZXRTdHJlYW06OldlYlNvY2tldFN0cmVhbShjb25zdCBXZWJD
b3JlOjpVUkwmIHVybCwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQs
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbikK
ICAgICA6IFNvY2tldFN0cmVhbUhhbmRsZSh1cmwsIGNsaWVudCkKICAgICAsIG1faWRlbnRpZmll
cihuZXh0QXZhaWxhYmxlSWRlbnRpZmllcisrKQogICAgICwgbV9jbGllbnQoY2xpZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0U3RyZWFt
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRTdHJlYW0uaApp
bmRleCBlZGE3NTc4YjBkNC4uZTk2ODRhZDRiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFN0cmVhbS5oCkBAIC0yNyw4ICsyNyw4IEBACiAK
ICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvY2tl
dFN0cmVhbUhhbmRsZS5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgog
CiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CkBAIC00NCw3ICs0NCw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJTb2NrZXRTdHJlYW0gOiBwdWJsaWMgSVBDOjpN
ZXNzYWdlU2VuZGVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3Jl
OjpTb2NrZXRTdHJlYW1IYW5kbGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViU29ja2V0
U3RyZWFtPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFt
SGFuZGxlQ2xpZW50JiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRp
YWxQYXJ0aXRpb24pOworICAgIHN0YXRpYyBSZWY8V2ViU29ja2V0U3RyZWFtPiBjcmVhdGUoY29u
c3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbik7CiAgICAgc3Rh
dGljIHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVkKCk7CiAgICAgc3RhdGljIFdlYlNvY2tldFN0
cmVhbSogc3RyZWFtV2l0aElkZW50aWZpZXIodWludDY0X3QpOwogICAgIApAQCAtNzAsNyArNzAs
NyBAQCBwcml2YXRlOgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBmaW5hbDsKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGZp
bmFsOwogCi0gICAgV2ViU29ja2V0U3RyZWFtKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6
OlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiBjcmVkZW50aWFsUGFydGl0aW9uKTsKKyAgICBXZWJTb2NrZXRTdHJlYW0oY29uc3QgV2Vi
Q29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbik7CiAgICAgfldlYlNvY2tl
dFN0cmVhbSgpOwogCiAgICAgc2l6ZV90IG1fYnVmZmVyZWRBbW91bnQgeyAwIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0
b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNmIyN2Q3ODFkMmQuLmFiZWE4MWQyM2Yx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3Jh
Z2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC03Nyw3ICs3Nyw3IEBA
IHZvaWQgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJCiB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLVdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rp
b246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgU2Vzc2lvbklEJiBzZXNz
aW9uSUQpCitXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25u
ZWN0aW9uOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lv
bklEJiBzZXNzaW9uSUQpCiB7CiAgICAgYXV0byByZXN1bHQgPSBtX3dlYklEQkNvbm5lY3Rpb25z
QnlTZXNzaW9uLmFkZChzZXNzaW9uSUQsIG51bGxwdHIpOwogICAgIGlmIChyZXN1bHQuaXNOZXdF
bnRyeSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
VG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMjQyNmU2Y2FmYjIu
LmIwMzNiNGYwZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTI5LDEw
ICsyOSwxMCBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCiAjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCi0jaW5jbHVkZSA8
V2ViQ29yZS9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Citu
YW1lc3BhY2UgUEFMIHsKIGNsYXNzIFNlc3Npb25JRDsKIH0KIApAQCAtNDksNyArNDksNyBAQCBw
dWJsaWM6CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25u
ZWN0aW9uLmdldCgpOyB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29u
c3QgV2ViQ29yZTo6U2Vzc2lvbklEJik7CisgICAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyJiBp
ZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7CiAj
ZW5kaWYKIAogcHJpdmF0ZToKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBD
OjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcj4+IG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb247CisgICAgSGFzaE1hcDxQ
QUw6OlNlc3Npb25JRCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4+IG1fd2ViSURC
Q29ubmVjdGlvbnNCeVNlc3Npb247CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcj4+IG1fd2ViSURCQ29ubmVjdGlvbnNCeUlkZW50aWZpZXI7CiAj
ZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA1ODUyOWRiNjM3
MS4uOTFlY2E5Njc5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTQ0
MSw3ICsxNDQxLDcgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQ2FjaGVQYWdlKCkg
Y29uc3QKICAgICByZXR1cm4gIW1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXI7CiB9CiAK
LXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3du
bG9hZChEb2N1bWVudExvYWRlciAqZG9jdW1lbnRMb2FkZXIsIFNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNl
TG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIgKmRvY3VtZW50TG9hZGVyLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgbV9mcmFtZS0+Y29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKGRvY3VtZW50TG9hZGVyLCBzZXNzaW9uSUQsIHJlcXVlc3QsIHJl
c3BvbnNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjYwMGI5ZmMzYTcu
LjFhOWRjZTBhMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjcsNyArMjcs
NyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5oPgogCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7CituYW1lc3BhY2UgUEFMIHsKIGNsYXNzIFNlc3Npb25JRDsKIH0KIApAQCAt
MTk2LDcgKzE5Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KGJvb2wpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1
bWVudExvYWRlciosIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOworICAgIHZv
aWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKIAogICAgIFJlZlB0cjxXZWJD
b3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIHJl
ZmVycmVyLCBib29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2lu
SGVpZ2h0KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA4
MjE0MDgyODJiZC4uYWU2NDA4MzNmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCkBAIC01OSwxMCArNTksMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVi
b2FyZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvZ3Jlc3NUcmFja2VyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VOYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KKyNpbmNsdWRlIDxw
YWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogCiAj
aWYgUExBVEZPUk0oTUFDKQpAQCAtMTM1LDcgKzEzNSw3IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9y
YWdlCiAgICAgcmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24uc2Vz
c2lvbklEKCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCiB7CiAg
ICAgU3RyaW5nIHJlc3VsdDsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdv
cmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lv
bklELCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlOjpSZXBseShyZXN1bHQpLCAwKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCA2MjhkODcwZDM2MC4uZTE2YmVhNDgy
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2Vi
Q29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBjb29raWVzRW5h
YmxlZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwogICAgIFN0
cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYpIG92ZXJyaWRlOwotICAgIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwogICAgIGJvb2wgZ2V0UmF3
Q29va2llcyhjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5jcHAKaW5kZXggMGZmNWZjMmM3NTAu
LjU1MTQ4ODAyMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBi
b29sIFdlYlBsdWdJbkNsaWVudDo6c2hvdWxkQXV0b1N0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJp
bmcmIHBhZ2VPcmlnaW4sIGNvbnN0CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnNob3VsZFBsdWdJbkF1dG9TdGFydEZyb21PcmlnaW4obV93ZWJQYWdlLCBwYWdlT3JpZ2luLCBw
bHVnaW5PcmlnaW4sIG1pbWVUeXBlKTsKIH0KIAotdm9pZCBXZWJQbHVnSW5DbGllbnQ6OmRpZFN0
YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1
Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQordm9pZCBXZWJQbHVnSW5DbGllbnQ6OmRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBT
dHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGx1Z0luRGlkU3RhcnRGcm9tT3JpZ2luKHBhZ2VPcmlnaW4sIHBsdWdp
bk9yaWdpbiwgbWltZVR5cGUsIHNlc3Npb25JRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmgKaW5kZXgg
OTNmOTY5OGE5ZmEuLjY3NzhiMzY4OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5oCkBAIC0yNyw3ICsy
Nyw3IEBACiAjZGVmaW5lIFdlYlBsdWdJbkNsaWVudF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL1Bs
dWdJbkNsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8
cGFsL2lkZW50aWZpZXIvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00
MSw3ICs0MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRBdXRvU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmlu
ZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0
cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIFdlYkNvcmU6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRT
dGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBs
dWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUEFMOjpTZXNzaW9uSUQpIG92ZXJy
aWRlOwogCiAgICAgV2ViUGFnZSYgbV93ZWJQYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggYjNkOWJjOTc0YmMuLmU0NjI5Y2I0MzJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjksNyAr
MjksNyBAQAogI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8cGFsL2lkZW50aWZpZXIv
U2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Myw3ICs0Myw3IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICAvLyBGSVhNRTogcmVtb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNv
ZGUgYW5kIHVzZSBTZXNzaW9uVHJhY2tlcgotICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgdm9p
ZCBlbnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vzc2lvbihXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyYmKTsKIAogICAgIHN0YXRpYyB2b2lkIHNldENvb2tpZUFjY2VwdFBvbGljeUZvckFsbENvbnRl
eHRzKEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IGRkN2Q1YmY1ZDdmLi4yNjM5OTIzNWVlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtNDcsNyArNDcs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAg
Ci12b2lkIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oU2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCA4MjhkMjY4MmQxOC4u
N2FkNzk3MDAzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuY3BwCkBAIC0zMywxNSArMzMsMTUgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Nlc3Np
b24uaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNl
c3Npb25JRCkKK3ZvaWQgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDgzZjY1
OWIyMmQ4Li5hNjZlODQ3NjU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaApAQCAtMjgsNyArMjgsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nl
c3Npb25JRC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6
OlNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihQQUw6OlNlc3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQgZW5zdXJlV2Vic2l0ZURhdGFTdG9y
ZVNlc3Npb24oV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJik7CiAKICAgICBXZWJGcmFtZUxv
YWRlckNsaWVudCogd2ViRnJhbWVMb2FkZXJDbGllbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBiYmU4YTUyMzYwYy4uMjJh
YmMyMDg4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAKQEAgLTI2NCwxMSArMjY0LDExIEBAIHZvaWQgV2ViRnJhbWU6OnN0YXJ0RG93bmxvYWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpCiAgICAg
bV9wb2xpY3lEb3dubG9hZElEID0geyB9OwogCiAgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpOwotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBwYWdlKCkgPyBw
YWdlKCktPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gcGFnZSgpID8gcGFnZSgpLT5zZXNzaW9uSUQoKSA6
IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgd2ViUHJvY2Vzcy5uZXR3
b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6U3RhcnREb3dubG9hZChzZXNzaW9uSUQsIHBvbGljeURvd25sb2Fk
SUQsIHJlcXVlc3QsIHN1Z2dlc3RlZE5hbWUpLCAwKTsKIH0KIAotdm9pZCBXZWJGcmFtZTo6Y29u
dmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExv
YWRlciwgU2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgV2ViRnJhbWU6OmNvbnZl
cnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2Fk
ZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBBU1NFUlQobV9w
b2xpY3lEb3dubG9hZElELmRvd25sb2FkSUQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IGYyYjA2MmZmYjcxLi5kZmU5NWM2MTU4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC00MiwxMyAr
NDIsMTYgQEAgbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBcnJheTsKIH0KIAorbmFtZXNwYWNlIFBB
TCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTEZyYW1lT3duZXJFbGVtZW50
OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRSZWN0OwotY2xhc3MgU2Vzc2lvbklEOwogY2xh
c3MgVVJMOwogfQogCkBAIC04NCw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2Vp
dmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lBY3Rp
b24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCk7CiAKICAgICB2b2lkIHN0YXJ0
RG93bmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWROYW1lID0geyB9KTsKLSAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdlYkNvcmU6OlNlc3Npb25JRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpOworICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAogICAgIFN0
cmluZyBzb3VyY2UoKSBjb25zdDsKICAgICBTdHJpbmcgY29udGVudHNBc1N0cmluZygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAz
MjM5NzZkMmRhMC4uOTZjZGY0ODcwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNzcsNyArMTc3LDYgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NoYWRvd1Jvb3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5oPgpAQCAtMTkzLDYgKzE5Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJHTFN0YXRlVHJh
Y2tlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvbWFya3VwLmg+CiAjaW5jbHVkZSA8YmluZGluZ3Mv
U2NyaXB0VmFsdWUuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmllci9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDxwcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9K
U0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CkBAIC0yNzE0LDcg
KzI3MTQsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5n
TW9kZSBsYXllckhvc3RpbmdNb2RlKQogICAgICAgICBwbHVnaW5WaWV3LT5zZXRMYXllckhvc3Rp
bmdNb2RlKG1fbGF5ZXJIb3N0aW5nTW9kZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0U2Vzc2lv
bklEKFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgp
KQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKHNlc3Npb25JRCk7CkBAIC0zMDQ5LDkgKzMwNDksOSBAQCB2b2lkIFdlYlBhZ2U6OnVw
ZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNl
dHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZyhzdGF0aWNfY2FzdDxXZWJDb3JlOjpGcmFtZUZsYXR0
ZW5pbmc+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmcmFt
ZUZsYXR0ZW5pbmdLZXkoKSkpKTsKICAgICBzZXR0aW5ncy5zZXRBc3luY0ZyYW1lU2Nyb2xsaW5n
RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFzeW5j
RnJhbWVTY3JvbGxpbmdFbmFibGVkS2V5KCkpKTsKICAgICBpZiAoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpICYm
ICF1c2VzRXBoZW1lcmFsU2Vzc2lvbigpKQotICAgICAgICBzZXRTZXNzaW9uSUQoU2Vzc2lvbklE
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwotICAgIGVsc2UgaWYgKCFzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXko
KSkgJiYgc2Vzc2lvbklEKCkgPT0gU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkp
Ci0gICAgICAgIHNldFNlc3Npb25JRChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7Cisg
ICAgICAgIHNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpKTsKKyAgICBlbHNlIGlmICghc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpICYmIHNlc3Npb25JRCgpID09IFBB
TDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpCisgICAgICAgIHNldFNlc3Np
b25JRChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICBzZXR0aW5ncy5z
ZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Mu
c2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFncyhSdW50aW1lRmxhZ3Moc3RvcmUuZ2V0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFTY3JpcHRSdW50aW1lRmxhZ3NLZXkoKSkp
KTsKICAgICBzZXR0aW5ncy5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0ZXh0QXJlYXNBcmVSZXNpemFibGVLZXkoKSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDZiYzM3
MWUyMGZjLi40YTZiZDllN2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMjMwLDEwICsyMzAsMTAgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6
UGFnZSogY29yZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KICAgICB1aW50
NjRfdCBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UtPnNlc3Npb25JRCgpOyB9
CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLT5z
ZXNzaW9uSUQoKTsgfQogICAgIGJvb2wgdXNlc0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2UtPnVzZXNFcGhlbWVyYWxTZXNzaW9uKCk7IH0KIAotICAgIHZvaWQgc2V0U2Vz
c2lvbklEKFdlYkNvcmU6OlNlc3Npb25JRCk7CisgICAgdm9pZCBzZXRTZXNzaW9uSUQoUEFMOjpT
ZXNzaW9uSUQpOwogCiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsK
ICAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3
U2l6ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDg3MGYz
Y2RlODUzLi41NGQzMWM1MzQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtMTkzLDcgKzE5Myw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIGFk
ZFN1cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI+KCk7CiAjZW5kaWYKIAotICAgIG1f
cGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKTsKKyAgICBtX3BsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFz
aE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKTsKIAogICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpz
aGFyZWQoKS5zZXROb3RpZmljYXRpb25DYWxsYmFjayhbdGhpc10gKFZlY3RvcjxSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzPiYmIHN0YXRpc3RpY3MpIHsKICAgICAgICAgQVNTRVJUKCFzdGF0aXN0aWNz
LmlzRW1wdHkoKSk7CkBAIC01MDMsNyArNTAzLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpmdWxsS2V5
Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAg
ICAgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkID0gZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxl
ZDsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNl
c3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKIH0K
QEAgLTUxMyw3ICs1MTMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUo
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVTZXNzaW9uKFdURk1vdmUocGFy
YW1ldGVycykpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25J
RCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKIHsKICAgICBTZXNzaW9uVHJhY2tlcjo6ZGVzdHJveVNlc3Npb24oc2Vz
c2lvbklEKTsKIH0KQEAgLTgwMCw5ICs4MDAsOSBAQCBzdGF0aWMgdW5zaWduZWQgaGFzaEZvclBs
dWdJbk9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Zwog
ICAgIHJldHVybiBoYXNoZXIuaGFzaCgpOwogfQogCi1ib29sIFdlYlByb2Nlc3M6OmlzUGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBTZXNzaW9uSUQg
c2Vzc2lvbklEKQorYm9vbCBXZWJQcm9jZXNzOjppc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2go
dW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewot
ICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+
Pjo6Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoZXMuZmluZChzZXNzaW9uSUQpOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhh
c2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3Ig
PSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7CiAgICAgSGFz
aE1hcDx1bnNpZ25lZCwgZG91YmxlPjo6Y29uc3RfaXRlcmF0b3IgaXQ7CiAgICAgYm9vbCBjb250
YWlucyA9IGZhbHNlOwogCkBAIC04MTEsNyArODExLDcgQEAgYm9vbCBXZWJQcm9jZXNzOjppc1Bs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgU2Vzc2lv
bkkKICAgICAgICAgY29udGFpbnMgPSBpdCAhPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmVuZCgp
OwogICAgIH0KICAgICBpZiAoIWNvbnRhaW5zKSB7Ci0gICAgICAgIHNlc3Npb25JdGVyYXRvciA9
IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpOworICAgICAgICBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlcy5maW5kKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAg
ICAgICBpdCA9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZmluZChwbHVnSW5PcmlnaW5IYXNoKTsK
ICAgICAgICAgaWYgKGl0ID09IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC04MzYsNyArODM2LDcgQEAgYm9vbCBXZWJQcm9jZXNzOjpz
aG91bGRQbHVnSW5BdXRvU3RhcnRGcm9tT3JpZ2luKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFN0
cmluZyYKICAgICByZXR1cm4gaXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKGhhc2hGb3JQbHVn
SW5PcmlnaW4ocGFnZU9yaWdpbiwgcGx1Z2luT3JpZ2luLCBtaW1lVHlwZSksIHdlYlBhZ2Uuc2Vz
c2lvbklEKCkpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdp
bihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9j
ZXNzOjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBj
b25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIGlmIChwYWdlT3JpZ2luLmlzRW1wdHkoKSkgewog
ICAgICAgICBMT0coUGx1Z2lucywgIk5vdCBhZGRpbmcgZW1wdHkgcGFnZSBvcmlnaW4iKTsKQEAg
LTg1OCw3ICs4NTgsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdp
bihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZwogICAgIHBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpBZGRQbHVnSW5B
dXRvU3RhcnRPcmlnaW5IYXNoKHBhZ2VPcmlnaW4sIHBsdWdJbk9yaWdpbkhhc2gsIHNlc3Npb25J
RCksIDApOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdp
bkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lLCBT
ZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIGRvdWJsZSBleHBpcmF0aW9u
VGltZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIFdoZW4gY2FsbGVkLCBz
b21lIHdlYiBwcm9jZXNzICh3aGljaCBhbHNvIG1pZ2h0IGJlIHRoaXMgb25lKSBhZGRlZCB0aGUg
b3JpZ2luIGZvciBhdXRvLXN0YXJ0aW5nLAogICAgIC8vIG9yIHJlY2VpdmVkIHVzZXIgaW50ZXJh
Y3Rpb24uCkBAIC04NjksMTUgKzg2OSwxNSBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZEFkZFBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgZG91Ygogdm9p
ZCBXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoY29u
c3QgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPiYgaGFzaGVzKQogewogICAgIG1fcGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaGVzLmNsZWFyKCk7Ci0gICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXMuYWRkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVk
LCBkb3VibGU+KCkpLml0ZXJhdG9yLT52YWx1ZS5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDx1bnNp
Z25lZCwgZG91YmxlPiY+KGhhc2hlcykpOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aGVzLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2ln
bmVkLCBkb3VibGU+KCkpLml0ZXJhdG9yLT52YWx1ZS5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDx1
bnNpZ25lZCwgZG91YmxlPiY+KGhhc2hlcykpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OnJlc2V0
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKGNvbnN0IEhhc2hNYXA8U2Vzc2lvbklELCBIYXNo
TWFwPHVuc2lnbmVkLCBkb3VibGU+PiYgaGFzaGVzKQordm9pZCBXZWJQcm9jZXNzOjpyZXNldFBs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBI
YXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiYgaGFzaGVzKQogewotICAgIG1fcGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaGVzLnN3YXAoY29uc3RfY2FzdDxIYXNoTWFwPFNlc3Npb25JRCwgSGFzaE1h
cDx1bnNpZ25lZCwgZG91YmxlPj4mPihoYXNoZXMpKTsKKyAgICBtX3BsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlcy5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1h
cDx1bnNpZ25lZCwgZG91YmxlPj4mPihoYXNoZXMpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpw
bHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFNlc3Np
b25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50
ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9y
aWdpbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ewogICAgIGlmIChwYWdlT3JpZ2luLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtODg2
LDcgKzg4Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFj
dGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0CiAgICAgaWYgKCFwbHVnSW5Pcmln
aW5IYXNoKQogICAgICAgICByZXR1cm47CiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25J
RCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25JdGVy
YXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoc2Vzc2lvbklEKTsKKyAg
ICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Pjo6Y29u
c3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
ZXMuZmluZChzZXNzaW9uSUQpOwogICAgIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT46OmNvbnN0
X2l0ZXJhdG9yIGl0OwogICAgIGJvb2wgY29udGFpbnMgPSBmYWxzZTsKICAgICBpZiAoc2Vzc2lv
bkl0ZXJhdG9yICE9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmVuZCgpKSB7CkBAIC04
OTQsNyArODk0LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVy
YWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QKICAgICAgICAgY29udGFpbnMg
PSBpdCAhPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmVuZCgpOwogICAgIH0KICAgICBpZiAoIWNv
bnRhaW5zKSB7Ci0gICAgICAgIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luSGFzaGVzLmZpbmQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgICAgICBz
ZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgICAgICBpdCA9IHNlc3Npb25JdGVy
YXRvci0+dmFsdWUuZmluZChwbHVnSW5PcmlnaW5IYXNoKTsKICAgICAgICAgaWYgKGl0ID09IHNl
c3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMjMy
LDcgKzEyMzIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUoKQogICAgIFBh
Z2VDYWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNvbjo6TWVt
b3J5UHJlc3N1cmUpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vi
c2l0ZURhdGFUeXBlcywgV2Vic2l0ZURhdGEmIHdlYnNpdGVEYXRhKQordm9pZCBXZWJQcm9jZXNz
OjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2Vic2l0ZURhdGEmIHdlYnNpdGVEYXRh
KQogewogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6
TWVtb3J5Q2FjaGUpKSB7CiAgICAgICAgIGZvciAoYXV0byYgb3JpZ2luIDogTWVtb3J5Q2FjaGU6
OnNpbmdsZXRvbigpLm9yaWdpbnNXaXRoQ2FjaGUoc2Vzc2lvbklEKSkKQEAgLTEyNDUsNyArMTI0
NSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0CiAgICAgfQogfQogCi12b2lkIFdlYlByb2Nl
c3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6
OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0
ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50
IG1vZGlmaWVkU2luY2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1vZGlmaWVkU2luY2UpOwogCkBA
IC0xMjYyLDcgKzEyNjIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFNl
c3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cAogICAgIH0KIH0KIAot
dm9pZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFU
eXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRh
dGFzKQordm9pZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0
YVR5cGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lu
RGF0YXMpCiB7CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpNZW1vcnlDYWNoZSkpIHsKICAgICAgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmln
aW4+PiBvcmlnaW5zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggMTIz
YzRiYjE5OGMuLjNiNTMzMGQyNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKQEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNw
YXRjaGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9IeXN0ZXJlc2lzQWN0aXZpdHkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KKyNpbmNsdWRlIDxwYWwvaWRlbnRpZmll
ci9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTU2LDEzICs1NiwxNiBAQCBu
YW1lc3BhY2UgQVBJIHsKIGNsYXNzIE9iamVjdDsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFz
cyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlOwogY2xhc3MgQ1BVTW9uaXRvcjsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsK
IGNsYXNzIFBhZ2VHcm91cDsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKLWNsYXNzIFNlc3Npb25J
RDsKIGNsYXNzIFVzZXJHZXN0dXJlVG9rZW47CiBzdHJ1Y3QgUGx1Z2luSW5mbzsKIHN0cnVjdCBT
ZWN1cml0eU9yaWdpbkRhdGE7CkBAIC0xMjYsOCArMTI5LDggQEAgcHVibGljOgogI2VuZGlmCiAK
ICAgICBib29sIHNob3VsZFBsdWdJbkF1dG9TdGFydEZyb21PcmlnaW4oV2ViUGFnZSYsIGNvbnN0
IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUpOwotICAgIHZvaWQgcGx1Z0luRGlkU3RhcnRGcm9tT3JpZ2luKGNvbnN0
IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBwbHVnSW5EaWRS
ZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OlNlc3Np
b25JRCk7CisgICAgdm9pZCBwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBw
YWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgUEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgcGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRl
cmFjdGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBz
ZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3QgcG9saWN5LCBjb25zdCBTdHJpbmcmIGhv
c3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9u
U3RyaW5nKTsKICAgICB2b2lkIHJlc2V0UGx1Z2luTG9hZENsaWVudFBvbGljaWVzKGNvbnN0IEhh
c2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4m
KTsKICAgICB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKTsKQEAgLTE3MCwxMCArMTcz
LDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CiAKLSAg
ICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsK
KyAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwog
ICAgIHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nl
c3MoKTsKICAgICB2b2lkIGFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMmJik7Ci0gICAgdm9pZCBkZXN0cm95U2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9uSUQpOwor
ICAgIHZvaWQgZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBwYWdl
RGlkRW50ZXJXaW5kb3codWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHBhZ2VXaWxsTGVhdmVX
aW5kb3codWludDY0X3QgcGFnZUlEKTsKQEAgLTI2MiwxMCArMjY1LDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3RyaW5n
PiYpIGNvbnN0OwogICAgIHZvaWQgZnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBm
dWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKTsKIAotICAgIGJvb2wgaXNQbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7
Ci0gICAgdm9pZCBkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJ
bk9yaWdpbkhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgV2ViQ29yZTo6U2Vzc2lvbklEKTsK
KyAgICBib29sIGlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5Pcmln
aW5IYXNoLCBQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkaWRBZGRQbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGlt
ZSwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgcmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5E
ZWZhdWx0SGFzaGVzKGNvbnN0IEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4mIGhhc2hlcyk7Ci0g
ICAgdm9pZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFdl
YkNvcmU6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4mIGhhc2hlcyk7Cisg
ICAgdm9pZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiYgaGFzaGVzKTsKIAogICAg
IHZvaWQgcGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpOwogCkBAIC0yOTMsOSArMjk2
LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVsZWFzZVBhZ2VDYWNoZSgpOwogCi0gICAgdm9p
ZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIFdlYnNpdGVEYXRhJik7Ci0gICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJD
b3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6
c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpOwotICAgIHZvaWQgZGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBv
cmlnaW5zKTsKKyAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBXZWJzaXRlRGF0YSYpOworICAgIHZvaWQgZGVsZXRlV2Vi
c2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6
OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpOworICAgIHZv
aWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YT4mIG9yaWdpbnMpOwogCiAgICAgdm9pZCBzZXRNZW1vcnlDYWNoZURpc2FibGVkKGJvb2wpOwog
CkBAIC0zNTUsNyArMzU4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIFJlZlB0cjxXZWJJbnNw
ZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyPiBtX3dlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNo
ZXI7CiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwg
ZG91YmxlPj4gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CisgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4gbV9wbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
czsKIAogICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggODFmODg3ZDFi
NGUuLjA4ZjY5NzEzNzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtNDcsMTQgKzQ3LDE0IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQ2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAKLSAg
ICBFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCisgICAgRW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiAgICAgQWRkV2Vic2l0ZURhdGFTdG9yZShzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyB3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyk7Ci0gICAgRGVzdHJv
eVNlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBEZXN0cm95U2Vzc2lv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKICAgICAjIFBsdWctaW5zLgotICAgIERpZEFk
ZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godWludDMyX3QgaGFzaCwgZG91YmxlIGV4cGlyYXRp
b25UaW1lLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIERpZEFkZFBsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2godWludDMyX3QgaGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgUmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5E
ZWZhdWx0SGFzaGVzKEhhc2hNYXA8dWludDMyX3QsZG91YmxlPiBoYXNoZXMpCi0gICAgUmVzZXRQ
bHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIEhh
c2hNYXA8dWludDMyX3QsZG91YmxlPj4gaGFzaGVzKQorICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzKEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dWludDMyX3QsZG91
YmxlPj4gaGFzaGVzKQogICAgIFNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3kodWludDhfdCBwb2xp
Y3ksIFN0cmluZyBob3N0LCBTdHJpbmcgYnVuZGxlSWRlbnRpZmllciwgU3RyaW5nIHZlcnNpb25T
dHJpbmcpCiAgICAgUmVzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMoSGFzaE1hcDxTdHJpbmcs
IEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgdWludDhfdD4+PiBwbHVnaW5Mb2FkQ2xp
ZW50UG9saWNpZXMpCiAgICAgQ2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpCkBAIC03Nyw5ICs3
Nyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgUmVs
ZWFzZVBhZ2VDYWNoZSgpCiAKLSAgICBGZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQotICAg
IERlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlKSAtPiAoKQotICAgIERlbGV0
ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpIC0+ICgpCisgICAgRmV0Y2hXZWJz
aXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVE
YXRhIHdlYnNpdGVEYXRhKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2Up
IC0+ICgpCisgICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSAtPiAoKQog
CiAgICAgU2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1p
bGxpc2Vjb25kcykKICAgICBTZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wgZmxhZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggMGI2OWI0NDE4MDMuLmYzMTVjMTk5MjE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA4LTE2ICBEb24gT2xtc3RlYWQg
IDxkb24ub2xtc3RlYWRAc29ueS5jb20+CisKKyAgICAgICAgW1BBTF0gTW92ZSBTZXNzaW9uSUQg
aW50byBQQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NDE5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkRhdGFiYXNl
UHJvdmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAqIFN0
b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oOgorCiAyMDE3LTA4LTE2ICBZb3NoaWFraSBKaXRz
dWthd2EgIDxZb3NoaWFraS5KaXRzdWthd2FAc29ueS5jb20+CiAKICAgICAgICAgW1BBTF0gTW92
ZSBzcGkvaW9zIGFuZCBzcGkvd2luIGRpcmVjdG9yaWVzIGludG8gUEFMCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggNGQ5
NTk2NzA4ZDQuLmQzNzEyM2NmZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0
b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9T
dG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNs
dWRlICJXZWJEYXRhYmFzZVByb3ZpZGVyLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgorI2luY2x1ZGUgPHBhbC9pZGVudGlmaWVyL1Nlc3Npb25JRC5oPgogCiBXZWJEYXRhYmFz
ZVByb3ZpZGVyJiBXZWJEYXRhYmFzZVByb3ZpZGVyOjpzaW5nbGV0b24oKQogewpAQCAtNDMsNyAr
NDMsNyBAQCBXZWJEYXRhYmFzZVByb3ZpZGVyOjp+V2ViRGF0YWJhc2VQcm92aWRlcigpCiB9CiAK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLVdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29u
bmVjdGlvblRvU2VydmVyJiBXZWJEYXRhYmFzZVByb3ZpZGVyOjppZGJDb25uZWN0aW9uVG9TZXJ2
ZXJGb3JTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQorV2ViQ29y
ZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYkRhdGFiYXNlUHJvdmlkZXI6
OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNl
c3Npb25JRCkKIHsKICAgICBhdXRvIHJlc3VsdCA9IG1faWRiU2VydmVyTWFwLmFkZChzZXNzaW9u
SUQuc2Vzc2lvbklEKCksIG51bGxwdHIpOwogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlk
ZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgK
aW5kZXggMmE0ZWI5NDZlZjYuLjNmNTA2ZDc2YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfldlYkRhdGFiYXNlUHJvdmlkZXIoKTsKIAogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQotICAgIFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRv
U2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNl
c3Npb25JRCYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlv
blRvU2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFBBTDo6U2Vz
c2lvbklEJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRlbGV0ZUFsbERhdGFiYXNlcygpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNWQxOGMzZDJmNjEuLjM1NGQ4Yjc4
YzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTct
MDgtMTYgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KKworICAgICAgICBb
UEFMXSBNb3ZlIFNlc3Npb25JRCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBNaXNjL1dlYkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJD
YWNoZSBpbWFnZUZvclVSTDpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24gY29uc3QpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAqIFdlYktp
dFByZWZpeC5oOgorCiAyMDE3LTA4LTE2ICBZb3NoaWFraSBKaXRzdWthd2EgIDxZb3NoaWFraS5K
aXRzdWthd2FAc29ueS5jb20+CiAKICAgICAgICAgW1BBTF0gTW92ZSBzcGkvaW9zIGFuZCBzcGkv
d2luIGRpcmVjdG9yaWVzIGludG8gUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1dlYkNhY2hlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJD
YWNoZS5tbQppbmRleCAyZjUwODI4NzUwZC4uMjQxYmEyZjcxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9XZWJDYWNoZS5tbQpAQCAtMTkxLDcgKzE5MSw3IEBACiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIAogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KHVybCk7Ci0gICAgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0
LCBXZWJDb3JlOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CisgICAgV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnNp
bmdsZXRvbigpLnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LCBQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKTsKICAgICBpZiAoIWlzPFdlYkNvcmU6OkNhY2hlZEltYWdlPihjYWNo
ZWRSZXNvdXJjZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFdlYkNvcmU6OkNhY2hl
ZEltYWdlJiBjYWNoZWRJbWFnZSA9IGRvd25jYXN0PFdlYkNvcmU6OkNhY2hlZEltYWdlPigqY2Fj
aGVkUmVzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMGZmNzdjMGJmNWEu
Ljc3ZWZkMTJmNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM4LDYgKzM4LDEw
IEBACiBAY2xhc3MgV2ViSGlzdG9yeUl0ZW07CiBAY2xhc3MgV2ViUmVzb3VyY2U7CiAKK25hbWVz
cGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKIGNsYXNzIENhY2hlZEZyYW1lOwpAQCAtNDUs
NyArNDksNiBAQCBjbGFzcyBIaXN0b3J5SXRlbTsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNs
YXNzIFJlc291cmNlTG9hZGVyOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotY2xhc3MgU2Vzc2lv
bklEOwogfQogCiBjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudCB7CkBAIC03MSw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
ZXRhY2hlZEZyb21QYXJlbnQyKCkgZmluYWw7CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQz
KCkgZmluYWw7CiAKLSAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciosIFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZp
bmFsOworICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKIAogICAg
IHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDI4Mjlm
ZTkwNzVlLi43NTc5YWYyNDhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTI4
Niw3ICsyODYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJl
bnQzKCkKICAgICBtX3dlYkZyYW1lLT5fcHJpdmF0ZS0+d2ViRnJhbWVWaWV3ID0gbmlsOwogfQog
Ci12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93
bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBTZXNzaW9uSUQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Cit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93
bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdl
dCgpKTsKICAgICBTdWJyZXNvdXJjZUxvYWRlciogbWFpblJlc291cmNlTG9hZGVyID0gZG9jdW1l
bnRMb2FkZXItPm1haW5SZXNvdXJjZUxvYWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0KaW5kZXggMTg2NWNhOTlmZDIuLmJhMjgxMTI3YzgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTMyLDggKzMyLDggQEAKICNpbXBvcnQgPFdl
YkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotI2ltcG9ydCA8V2ViQ29yZS9TZXNz
aW9uSUQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbXBvcnQgPHBhbC9pZGVu
dGlmaWVyL1Nlc3Npb25JRC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4K
IAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTQ2LDE0ICs0NiwxNCBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCksIFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0pOwotICAgIHJldHVybiAqTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQoKSk7CisgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCksIFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0pOworICAgIHJldHVybiAqTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0
cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRl
c3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwog
fQogCiBib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoKSBjb25zdApAQCAtOTQsNyArOTQsNyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCkt
PnBhZ2UoKS0+c2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkgewotICAgICAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oU2Vzc2lvbklE
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKQorICAgICAgICBpZiAoYXV0byogc2Vzc2lvbiA9
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpCiAgICAgICAgICAgICByZXR1cm4gKnNlc3Npb247CiAg
ICAgICAgIC8vIFNvbWUgcmVxdWVzdHMgbWF5IHN0aWxsIGJlIGNvbWluZyBzaG9ydGx5IGJlZm9y
ZSBXZWJDb3JlIHVwZGF0ZXMgdGhlIHNlc3Npb24gSUQgYW5kIGFmdGVyIFdlYktpdCBkZXN0cm95
cyB0aGUgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9uLgogICAgICAgICBMT0dfRVJST1IoIkludmFs
aWQgc2Vzc2lvbiBJRC4gUGxlYXNlIGZpbGUgYSBidWcgdW5sZXNzIHlvdSBqdXN0IGRpc2FibGVk
IHByaXZhdGUgYnJvd3NpbmcsIGluIHdoaWNoIGNhc2UgaXQncyBhbiBleHBlY3RlZCByYWNlLiIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCBhYjI2NGE2ZDIxYy4uZjkwZmNmMDJh
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNv
cmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIGJvb2wgY29va2llc0VuYWJs
ZWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKICAgICBTdHJp
bmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJD
b3JlOjpVUkwmKSBvdmVycmlkZTsKLSAgICBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOworICAgIFN0cmluZyBjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKICAgICBib29sIGdldFJhd0Nv
b2tpZXMoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29y
ZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6
Q29va2llPiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggOWFhZmE1
MWZmMWMuLjFhYzJlMWVjMGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC05
Myw3ICs5Myw3IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlCiAgICAgcmV0dXJuIFdlYkNvcmU6
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCk7
CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKFNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgVVJMJiB1cmwpCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgYXV0byYgc2Vzc2lvbiA9IHNlc3Npb25J
RC5pc0VwaGVtZXJhbCgpID8gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbigpIDogTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFn
ZVNlc3Npb24oKTsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYktpdFByZWZpeC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
S2l0UHJlZml4LmgKaW5kZXggNzUzZDk3N2JiODIuLjNkYmQyYTg2MzUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJLaXRQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJLaXRQcmVmaXguaApAQCAtODMsNyArODMsNyBAQCB0eXBlZGVmIGZsb2F0
IENHRmxvYXQ7CiAjZW5kaWYKICNlbmRpZgogCi0jaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+Cisj
aW5jbHVkZSA8cGFsL0V4cG9ydE1hY3Jvcy5oPgogI2luY2x1ZGUgPHd0Zi9FeHBvcnRNYWNyb3Mu
aD4KICNpbmNsdWRlIDxydW50aW1lL0pTRXhwb3J0TWFjcm9zLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4
IGNmNjYyNWY5YjFmLi5jOTMyNzU4ZmY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDE3LTA4LTE2ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRA
c29ueS5jb20+CisKKyAgICAgICAgW1BBTF0gTW92ZSBTZXNzaW9uSUQgaW50byBQQUwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDE5MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OnNldENvb2tpZUFjY2VwdFBvbGljeUZvckFsbENvbnRleHRzKToKKyAgICAg
ICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24pOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZGVzdHJveVByaXZhdGVC
cm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3Rv
cmFnZVNlc3Npb24gY29uc3QpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaDoKKwogMjAxNy0wOC0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NhY2hlIEFQSV0gQWRkaW5nIGdlbmVyaWMgc3VwcG9ydCBm
b3IgQ2FjaGVTdG9yYWdlIGFuZCBDYWNoZSBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKaW5kZXggMzJhYjgyZTY0NDcuLmRlMjg2MTQ3MDI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGV0YWNoZWRGcm9tUGFyZW50MygpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwgU2Vzc2lvbklELCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CiB7CiAgICAgQ09NUHRyPElXZWJEb3dubG9hZERlbGVnYXRlPiBkb3dubG9hZERlbGVnYXRlOwog
ICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IGZmMGQ5NGU4NmUyLi5hZDNkNjZlMDkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDIo
KSBvdmVycmlkZTsKICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDMoKSBvdmVycmlkZTsKIAot
ICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKiwgV2ViQ29yZTo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgYXNz
aWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNw
b25zZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmlu
ZGV4IDA5MDNiODY1ZDY5Li44NTkzYjJiMDAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpzZXRDb29raWVBY2NlcHRQb2xpY3lGb3JBbGxDb250ZXh0cyhXZWJLaXRDb29raWUK
ICAgICBpZiAoUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+IGNvb2tpZVN0b3JhZ2Ug
PSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0
b3JhZ2UoKSkKICAgICAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVNldENvb2tpZUFjY2VwdFBvbGlj
eShjb29raWVTdG9yYWdlLmdldCgpLCBwb2xpY3kpOwogCi0gICAgaWYgKGF1dG8gcHJpdmF0ZVNl
c3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKSkKKyAgICBpZiAoYXV0byBwcml2YXRlU2Vzc2lvbiA9
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpCiAgICAgICAgIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRD
b29raWVBY2NlcHRQb2xpY3kocHJpdmF0ZVNlc3Npb24tPmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwg
cG9saWN5KTsKIH0KICNlbmRpZgpAQCAtNzAsNyArNzAsNyBAQCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oKQogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIAotICAgIGlmIChhdXRvIHByaXZhdGVTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSkpCisg
ICAgaWYgKGF1dG8gcHJpdmF0ZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3Jh
Z2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpKQogICAg
ICAgICByZXR1cm4gKnByaXZhdGVTZXNzaW9uOwogCiAgICAgU3RyaW5nIGJhc2U7CkBAIC04MSwx
NyArODEsMTcgQEAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKICAgICB9IGVsc2UKICAgICAgICAg
YmFzZSA9IGlkZW50aWZpZXJCYXNlKCk7CiAKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lv
bklEKCksIGJhc2UpOworICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpLCBi
YXNlKTsKIAogI2VuZGlmCi0gICAgcmV0dXJuICpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3Jh
Z2VTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAgICByZXR1
cm4gKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKLSAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlc3Ryb3lTZXNz
aW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAgICBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKCkpOwogfQogCiBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CkBA
IC0xMDQsNyArMTA0LDcgQEAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKIAogICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKS0+dXNlc0VwaGVtZXJh
bFNlc3Npb24oKSkKLSAgICAgICAgcmV0dXJuICpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3Jh
Z2VTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpKTsKKyAgICAgICAg
cmV0dXJuICpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpOwogCiAgICAgcmV0dXJuIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcAppbmRleCA0Y2U4Yzk5OGE0MS4uMWMzNDYxODc1MGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtOTAsNyArOTAsNyBAQCBTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3Jr
U3RvcmFnZQogICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQorU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYg
dXJsKQogewogICAgIGF1dG8mIHNlc3Npb24gPSBzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSA/IFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSA6
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiAgICAgcmV0
dXJuIFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0
UGFydHksIHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDJjMTM5MjcwNWVl
Li4xNjQzN2Y1NTBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3Qg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFs
IGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKFdlYkNvcmU6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKTsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKTsKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+Jik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShj
b25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwm
LCBjb25zdCBTdHJpbmcmKTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>