<?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>175885</bug_id>
          
          <creation_ts>2017-08-23 09:18:06 -0700</creation_ts>
          <short_desc>[CacheAPI] Introduce a WebKit::CacheStorage namespace</short_desc>
          <delta_ts>2017-08-23 12:46:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1341558</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-23 09:18:06 -0700</bug_when>
    <thetext>This will allow splitting CacheStorageEngine implementation in smaller more manageable files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341565</commentid>
    <comment_count>1</comment_count>
      <attachid>318877</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-23 09:36:42 -0700</bug_when>
    <thetext>Created attachment 318877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341589</commentid>
    <comment_count>2</comment_count>
      <attachid>318877</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-23 10:26:03 -0700</bug_when>
    <thetext>Comment on attachment 318877
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.h:37
&gt; +    uint64_t identifier;

This could have a default initializer, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341597</commentid>
    <comment_count>3</comment_count>
      <attachid>318883</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-23 10:31:15 -0700</bug_when>
    <thetext>Created attachment 318883
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341598</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-23 10:31:29 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 318877 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=318877&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.h:37
&gt; &gt; +    uint64_t identifier;
&gt; 
&gt; This could have a default initializer, too.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341608</commentid>
    <comment_count>5</comment_count>
      <attachid>318877</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-08-23 10:39:43 -0700</bug_when>
    <thetext>Comment on attachment 318877
Patch

Can we make this a sub-namespace of WebCore so we don&apos;t have to Webcore::?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341634</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-23 10:51:52 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #5)
&gt; Comment on attachment 318877 [details]
&gt; Patch
&gt; 
&gt; Can we make this a sub-namespace of WebCore so we don&apos;t have to Webcore::?

I plan to unify WebCore CacheStorageConnection and WebKit CacheStorageEngine declarations.
That will probably mean doing what you suggest.

WebCore has a CacheStorage class so we might want to pick a different name for this namespace.
Not sure what is best here, maybe CacheAPI?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341643</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-08-23 10:57:12 -0700</bug_when>
    <thetext>&gt; WebCore has a CacheStorage class so we might want to pick a different name
&gt; for this namespace.
&gt; Not sure what is best here, maybe CacheAPI?

Maybe DOMCache? We often prefix generic DOM API names with &quot;DOM&quot;. Search for files beginning with &quot;DOM&quot; and you&apos;ll see lots of examples. DOMMatrix, DOMURL, DOMWindow, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341645</commentid>
    <comment_count>8</comment_count>
      <attachid>318883</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-23 10:58:04 -0700</bug_when>
    <thetext>Comment on attachment 318883
Patch for landing

Rejecting attachment 318883 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 318883, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 221084 = 1903c78e15a8e72758925da3b9f7b04e15f94b25
r221085 = ec9d3e1d36d094891e4287fa2d96a4ddf080ea68
r221086 = a480fc02bee91b1bdb9c7aa0abdc6e3089431179
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/4369417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341649</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-23 11:02:41 -0700</bug_when>
    <thetext>DOMCache seems good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341650</commentid>
    <comment_count>10</comment_count>
      <attachid>318883</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-23 11:03:17 -0700</bug_when>
    <thetext>Comment on attachment 318883
Patch for landing

Rejecting attachment 318883 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 318883, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:

patching file Source/WebKit/NetworkProcess/cache/CacheStorageEngineConnection.cpp
patching file Source/WebKit/WebKit.xcodeproj/project.pbxproj
patching file Source/WebKit/WebProcess/Cache/WebCacheStorageConnection.cpp
patching file Source/WebKit/WebProcess/Cache/WebCacheStorageConnection.h
patching file Source/WebKit/WebProcess/Cache/WebCacheStorageConnection.messages.in

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/4369451</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341684</commentid>
    <comment_count>11</comment_count>
      <attachid>318894</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-23 12:04:25 -0700</bug_when>
    <thetext>Created attachment 318894
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341716</commentid>
    <comment_count>12</comment_count>
      <attachid>318894</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-23 12:45:52 -0700</bug_when>
    <thetext>Comment on attachment 318894
Patch for landing

Clearing flags on attachment: 318894

Committed r221093: &lt;http://trac.webkit.org/changeset/221093&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341717</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-23 12:45:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341722</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-23 12:46:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/34041453&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318877</attachid>
            <date>2017-08-23 09:36:42 -0700</date>
            <delta_ts>2017-08-23 10:31:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175885-20170823093642.patch</filename>
            <type>text/plain</type>
            <size>39683</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRiMGUxNWUyNjEwZjEwZDE3
NTU2MTk1NWM5YzNlMzY2MTUyMTRmZWYuLjE4ZTE4Mzg1MDhiNjFiZTgwYWRkMzlmZjVjNzFlMGRi
ZjAwZWM1NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTctMDgtMjMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFtDYWNoZUFQSV0gSW50cm9kdWNl
IGEgV2ViS2l0OjpDYWNoZVN0b3JhZ2UgbmFtZXNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2luZyBXZWJLaXQ6OkNhY2hlU3RvcmFn
ZSBuYW1lc3BhY2UuCisgICAgICAgIFNwbGl0dGluZyBDYWNoZVN0b3JhZ2VFbmdpbmUuaCBpbiB0
aHJlZSBmaWxlcy4KKyAgICAgICAgVXBkYXRpbmcgY2xpZW50IGNvZGUgYWNjb3JkaW5nbHkuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2UuaDogQWRkZWQuCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpnbG9iYWxFbmdpbmVNYXApOgorICAgICAgICAo
V2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6ZnJvbSk6CisgICAgICAgIChXZWJLaXQ6OkNh
Y2hlU3RvcmFnZTo6RW5naW5lOjpkZXN0cm95RW5naW5lKToKKyAgICAgICAgKFdlYktpdDo6Q2Fj
aGVTdG9yYWdlOjpFbmdpbmU6OmRlZmF1bHRFbmdpbmUpOgorICAgICAgICAoV2ViS2l0OjpDYWNo
ZVN0b3JhZ2U6OkVuZ2luZTo6b3Blbik6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6
RW5naW5lOjpyZW1vdmUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6
cmV0cmlldmVDYWNoZXMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6
cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6
OnB1dFJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6ZGVs
ZXRlTWF0Y2hpbmdSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdp
bmU6OndyaXRlQ2FjaGVzVG9EaXNrKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpF
bmdpbmU6OnJlYWRDYWNoZXNGcm9tRGlzayk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFn
ZTo6RW5naW5lOjpyZWFkQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVu
Z2luZTo6d3JpdGVDYWNoZVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6
OkVuZ2luZTo6cmVtb3ZlQ2FjaGVSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9y
YWdlOjpFbmdpbmU6OmNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdp
bmU6OmNhY2hlcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5l
OjpxdWVyeUNhY2hlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3Jh
Z2VFbmdpbmVDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6b3Blbik6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb246OnJlbW92ZSk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb246OmNhY2hlcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb246OnJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0
b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpkZWxldGVNYXRjaGluZ1JlY29yZHMpOgorICAgICAgICAo
V2ViS2l0OjpDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpwdXRSZWNvcmRzKToKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpvcGVuQ29tcGxldGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlQ29tcGxldGVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6dXBkYXRlQ2FjaGVzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6dXBkYXRlUmVjb3Jkcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRlbGV0ZVJlY29y
ZHNDb21wbGV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
OjpwdXRSZWNvcmRzQ29tcGxldGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKwogMjAxNy0wOC0yMiAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBfV0tUaHVtYm5haWxWaWV3IHNob3VsZCB1
c2UgdGhlIHNjcmVlbiBjb2xvciBzcGFjZSBpbnN0ZWFkIG9mIHNSR0IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3
NGY2NzFmMzg5NTgwYTE2NzlkZDdiMzIxMTFiZGFiY2E0NmFmZWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZS5oCkBAIC0w
LDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCituYW1lc3BhY2UgQ2FjaGVTdG9yYWdlIHsKKworZW51bSBjbGFzcyBFcnJvciB7CisgICAg
SW50ZXJuYWwKK307CisKK3VzaW5nIFJlY29yZCA9IFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OlJlY29yZDsKKwordXNpbmcgQ2FjaGVJZGVudGlmaWVyT3JFcnJvciA9IEV4cGVjdGVk
PHVpbnQ2NF90LCBFcnJvcj47Cit1c2luZyBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayA9IEZ1bmN0
aW9uPHZvaWQoQ2FjaGVJZGVudGlmaWVyT3JFcnJvciYmKT47CisKK3VzaW5nIENhY2hlSW5mb3NP
ckVycm9yID0gRXhwZWN0ZWQ8VmVjdG9yPFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246
OkNhY2hlSW5mbz4sIEVycm9yPjsKK3VzaW5nIENhY2hlSW5mb3NDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoQ2FjaGVJbmZvc09yRXJyb3ImJik+OworCit1c2luZyBSZWNvcmRzT3JFcnJvciA9IEV4
cGVjdGVkPFZlY3RvcjxSZWNvcmQ+LCBFcnJvcj47Cit1c2luZyBSZWNvcmRzQ2FsbGJhY2sgPSBG
dW5jdGlvbjx2b2lkKFJlY29yZHNPckVycm9yJiYpPjsKKwordXNpbmcgUmVjb3JkSWRlbnRpZmll
cnNPckVycm9yID0gRXhwZWN0ZWQ8VmVjdG9yPHVpbnQ2NF90PiwgRXJyb3I+OwordXNpbmcgUmVj
b3JkSWRlbnRpZmllcnNDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoUmVjb3JkSWRlbnRpZmllcnNP
ckVycm9yJiYpPjsKKwordXNpbmcgQ29tcGxldGlvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChz
dGQ6Om9wdGlvbmFsPEVycm9yPiYmKT47CisKK30gLy8gbmFtZXNwYWNlIENhY2hlU3RvcmFnZQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworbmFtZXNwYWNlIFdURiB7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFcnJvcj4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFcnJv
ciwKKyAgICAgICAgV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVycm9yOjpJbnRlcm5hbAorICAgID47
Cit9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDVkNTc4N2JmN2M5ODI4MWQwNTE0YjQyODMw
NzAyMjBhMDJiOWQ0NDIuLjEzODk5ODNmNDJhZjllMzMyZjEwY2VhNWM5M2ZkY2IxZjIwMTYwNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTM0LDM1ICszNCwzNyBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotc3RhdGljIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxD
YWNoZVN0b3JhZ2VFbmdpbmU+PiYgZ2xvYmFsRW5naW5lTWFwKCkKK25hbWVzcGFjZSBDYWNoZVN0
b3JhZ2UgeworCitzdGF0aWMgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRy
PEVuZ2luZT4+JiBnbG9iYWxFbmdpbmVNYXAoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVTdG9yYWdlRW5n
aW5lPj4+IG1hcDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxQQUw6OlNlc3Np
b25JRCwgc3RkOjp1bmlxdWVfcHRyPEVuZ2luZT4+PiBtYXA7CiAgICAgcmV0dXJuIG1hcDsKIH0K
IAotQ2FjaGVTdG9yYWdlRW5naW5lJiBDYWNoZVN0b3JhZ2VFbmdpbmU6OmZyb20oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQorRW5naW5lJiBFbmdpbmU6OmZyb20oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewogICAgIGlmIChzZXNzaW9uSUQgPT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSkKICAgICAgICAgcmV0dXJuIGRlZmF1bHRFbmdpbmUoKTsKIAogICAgIHJldHVy
biAqZ2xvYmFsRW5naW5lTWFwKCkuZW5zdXJlKHNlc3Npb25JRCwgW10gewotICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxDYWNoZVN0b3JhZ2VFbmdpbmU+KCk7CisgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPEVuZ2luZT4oKTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiB9
CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpkZXN0cm95RW5naW5lKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKK3ZvaWQgRW5naW5lOjpkZXN0cm95RW5naW5lKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpOwogICAgIGdsb2JhbEVuZ2luZU1hcCgpLnJlbW92ZShzZXNzaW9uSUQp
OwogfQogCi1DYWNoZVN0b3JhZ2VFbmdpbmUmIENhY2hlU3RvcmFnZUVuZ2luZTo6ZGVmYXVsdEVu
Z2luZSgpCitFbmdpbmUmIEVuZ2luZTo6ZGVmYXVsdEVuZ2luZSgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxDYWNoZVN0b3JhZ2VFbmdpbmU+PiBkZWZhdWx0
RW5naW5lID0geyBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlU3RvcmFnZUVuZ2luZT4oKSB9OworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8RW5naW5lPj4gZGVmYXVsdEVu
Z2luZSA9IHsgc3RkOjptYWtlX3VuaXF1ZTxFbmdpbmU+KCkgfTsKICAgICByZXR1cm4gKmRlZmF1
bHRFbmdpbmUuZ2V0KCk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpvcGVuKGNvbnN0
IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSwgQ2FjaGVJZGVudGlmaWVy
Q2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRW5naW5lOjpvcGVuKGNvbnN0IFN0cmluZyYgb3Jp
Z2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSwgQ2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJiBj
YWxsYmFjaykKIHsKICAgICByZWFkQ2FjaGVzRnJvbURpc2soW3RoaXMsIG9yaWdpbiwgY2FjaGVO
YW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShzdGQ6Om9wdGlvbmFsPEVycm9yPiYm
IGVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yKSB7CkBAIC05MSw3ICs5Myw3IEBA
IHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpvcGVuKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25z
dCBTdHJpbmcmIGNhY2hlTmFtZSwgQ2FjCiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdl
RW5naW5lOjpyZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNoZUlkZW50aWZpZXJD
YWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBFbmdpbmU6OnJlbW92ZSh1aW50NjRfdCBjYWNoZUlk
ZW50aWZpZXIsIENhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgc3Rk
OjpvcHRpb25hbDxDYWNoZT4gcmVtb3ZlZENhY2hlOwogICAgIGZvciAoYXV0byYgY2FjaGVzIDog
bV9jYWNoZXMudmFsdWVzKCkpIHsKQEAgLTExNiw3ICsxMTgsNyBAQCB2b2lkIENhY2hlU3RvcmFn
ZUVuZ2luZTo6cmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVJZGVudGlmaWVy
Q2FsbGJhYwogICAgIH0pOwogfQogCi12b2lkIENhY2hlU3RvcmFnZUVuZ2luZTo6cmV0cmlldmVD
YWNoZXMoY29uc3QgU3RyaW5nJiBvcmlnaW4sIENhY2hlSW5mb3NDYWxsYmFjayYmIGNhbGxiYWNr
KQordm9pZCBFbmdpbmU6OnJldHJpZXZlQ2FjaGVzKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBDYWNo
ZUluZm9zQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICByZWFkQ2FjaGVzRnJvbURpc2soW3Ro
aXMsIG9yaWdpbiwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oc3RkOjpvcHRpb25hbDxF
cnJvcj4mJiBlcnJvcikgbXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJvcikgewpAQCAtMTI3LDcg
KzEyOSw3IEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpyZXRyaWV2ZUNhY2hlcyhjb25zdCBT
dHJpbmcmIG9yaWdpbiwgQ2FjaGVJbmZvc0NhbGxiYWNrCiAgICAgfSk7CiB9CiAKLXZvaWQgQ2Fj
aGVTdG9yYWdlRW5naW5lOjpyZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVy
LCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRW5naW5lOjpyZXRyaWV2ZVJlY29y
ZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykK
IHsKICAgICByZWFkQ2FjaGUoY2FjaGVJZGVudGlmaWVyLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0oQ2FjaGVPckVycm9yJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFy
ZXN1bHQuaGFzVmFsdWUoKSkgewpAQCAtMTQ2LDcgKzE0OCw3IEBAIHZvaWQgQ2FjaGVTdG9yYWdl
RW5naW5lOjpyZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBSZWNvcmRz
Q2FsbGJhCiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpwdXRSZWNvcmRz
KHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFJlY29yZD4mJiByZWNvcmRzLCBSZWNv
cmRJZGVudGlmaWVyc0NhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEVuZ2luZTo6cHV0UmVjb3Jk
cyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxSZWNvcmQ+JiYgcmVjb3JkcywgUmVj
b3JkSWRlbnRpZmllcnNDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIHJlYWRDYWNoZShjYWNo
ZUlkZW50aWZpZXIsIFt0aGlzLCBjYWNoZUlkZW50aWZpZXIsIHJlY29yZHMgPSBXVEZNb3ZlKHJl
Y29yZHMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShDYWNoZU9yRXJyb3ImJiByZXN1
bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdC5oYXNWYWx1ZSgpKSB7CkBAIC0xNjAs
NyArMTYyLDcgQEAgdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnB1dFJlY29yZHModWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8UmVjb3JkPiYmIHIKICAgICAgICAgVmVjdG9yPHVpbnQ2
NF90PiByZWNvcmRJZGVudGlmaWVyczsKICAgICAgICAgcmVjb3JkSWRlbnRpZmllcnMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShyZWNvcmRzLnNpemUoKSk7CiAgICAgICAgIGZvciAoYXV0byYgcmVj
b3JkIDogcmVjb3JkcykgewotICAgICAgICAgICAgYXV0byBtYXRjaGluZ1JlY29yZHMgPSBDYWNo
ZVN0b3JhZ2VFbmdpbmU6OnF1ZXJ5Q2FjaGUoY2FjaGUucmVjb3JkcywgcmVjb3JkLnJlcXVlc3Qs
IG9wdGlvbnMpOworICAgICAgICAgICAgYXV0byBtYXRjaGluZ1JlY29yZHMgPSBFbmdpbmU6OnF1
ZXJ5Q2FjaGUoY2FjaGUucmVjb3JkcywgcmVjb3JkLnJlcXVlc3QsIG9wdGlvbnMpOwogICAgICAg
ICAgICAgaWYgKG1hdGNoaW5nUmVjb3Jkcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBy
ZWNvcmQuaWRlbnRpZmllciA9ICsrY2FjaGUubmV4dFJlY29yZElkZW50aWZpZXI7CiAgICAgICAg
ICAgICAgICAgcmVjb3JkSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKHJlY29yZC5pZGVudGlm
aWVyKTsKQEAgLTE4NSw3ICsxODcsNyBAQCB2b2lkIENhY2hlU3RvcmFnZUVuZ2luZTo6cHV0UmVj
b3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxSZWNvcmQ+JiYgcgogICAgIH0p
OwogfQogCi12b2lkIENhY2hlU3RvcmFnZUVuZ2luZTo6ZGVsZXRlTWF0Y2hpbmdSZWNvcmRzKHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBSZWNvcmRJZGVudGlmaWVy
c0NhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEVuZ2luZTo6ZGVsZXRlTWF0Y2hpbmdSZWNvcmRz
KHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBSZWNvcmRJZGVudGlm
aWVyc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgcmVhZENhY2hlKGNhY2hlSWRlbnRpZmll
ciwgW3RoaXMsIGNhY2hlSWRlbnRpZmllciwgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIG9w
dGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShD
YWNoZU9yRXJyb3ImJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdC5oYXNW
YWx1ZSgpKSB7CkBAIC0yMjQsMTkgKzIyNiwxOSBAQCB2b2lkIENhY2hlU3RvcmFnZUVuZ2luZTo6
ZGVsZXRlTWF0Y2hpbmdSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZQog
ICAgIH0pOwogfQogCi12b2lkIENhY2hlU3RvcmFnZUVuZ2luZTo6d3JpdGVDYWNoZXNUb0Rpc2so
RnVuY3Rpb248dm9pZChzdGQ6Om9wdGlvbmFsPEVycm9yPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQg
RW5naW5lOjp3cml0ZUNhY2hlc1RvRGlzayhGdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJy
b3I+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgd3JpdGluZy4K
ICAgICBjYWxsYmFjayhzdGQ6Om51bGxvcHQpOwogfQogCi12b2lkIENhY2hlU3RvcmFnZUVuZ2lu
ZTo6cmVhZENhY2hlc0Zyb21EaXNrKENvbXBsZXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQordm9p
ZCBFbmdpbmU6OnJlYWRDYWNoZXNGcm9tRGlzayhDb21wbGV0aW9uQ2FsbGJhY2smJiBjYWxsYmFj
aykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHJlYWRpbmcuCiAgICAgY2FsbGJhY2soc3Rk
OjpudWxsb3B0KTsKIH0KIAotdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnJlYWRDYWNoZSh1aW50
NjRfdCBjYWNoZUlkZW50aWZpZXIsIENhY2hlQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRW5n
aW5lOjpyZWFkQ2FjaGUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNoZUNhbGxiYWNrJiYg
Y2FsbGJhY2spCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCByZWFkaW5nLgogICAgIGF1dG8q
IGNhY2hlID0gdGhpcy0+Y2FjaGUoY2FjaGVJZGVudGlmaWVyKTsKQEAgLTI0NywxOSArMjQ5LDE5
IEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpyZWFkQ2FjaGUodWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyLCBDYWNoZUNhbGxiYWNrJiYgY2FsCiAgICAgY2FsbGJhY2soc3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxDYWNoZT4geyAqY2FjaGUgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5l
Ojp3cml0ZUNhY2hlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3Rvcjx1aW50
NjRfdD4mJiByZWNvcmRzSWRlbnRpZmllcnMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3ZvaWQgRW5naW5lOjp3cml0ZUNhY2hlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlk
ZW50aWZpZXIsIFZlY3Rvcjx1aW50NjRfdD4mJiByZWNvcmRzSWRlbnRpZmllcnMsIFJlY29yZElk
ZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHdyaXRpbmcuCiAgICAgY2FsbGJhY2soV1RGTW92ZShyZWNvcmRzSWRlbnRpZmllcnMpKTsKIH0K
IAotdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnJlbW92ZUNhY2hlUmVjb3Jkcyh1aW50NjRfdCBj
YWNoZUlkZW50aWZpZXIsIFZlY3Rvcjx1aW50NjRfdD4mJiByZWNvcmRzSWRlbnRpZmllcnMsIFJl
Y29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRW5naW5lOjpyZW1vdmVD
YWNoZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8dWludDY0X3Q+JiYg
cmVjb3Jkc0lkZW50aWZpZXJzLCBSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYgY2FsbGJhY2sp
CiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB3cml0aW5nLgogICAgIGNhbGxiYWNrKFdURk1v
dmUocmVjb3Jkc0lkZW50aWZpZXJzKSk7CiB9CiAKLUNhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGUq
IENhY2hlU3RvcmFnZUVuZ2luZTo6Y2FjaGUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKQorQ2Fj
aGUqIEVuZ2luZTo6Y2FjaGUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKQogewogICAgIENhY2hl
KiByZXN1bHQgPSBudWxscHRyOwogICAgIGZvciAoYXV0byYgY2FjaGVzIDogbV9jYWNoZXMudmFs
dWVzKCkpIHsKQEAgLTI3Nyw3ICsyNzksNyBAQCBDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlKiBD
YWNoZVN0b3JhZ2VFbmdpbmU6OmNhY2hlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1WZWN0b3I8V2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6Q2FjaGVJbmZvPiBDYWNoZVN0b3JhZ2VFbmdpbmU6OmNhY2hlcyhjb25zdCBTdHJpbmcmIG9y
aWdpbikgY29uc3QKK1ZlY3RvcjxXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpDYWNo
ZUluZm8+IEVuZ2luZTo6Y2FjaGVzKGNvbnN0IFN0cmluZyYgb3JpZ2luKSBjb25zdAogewogICAg
IGF1dG8gaXRlcmF0b3IgPSBtX2NhY2hlcy5maW5kKG9yaWdpbik7CiAgICAgaWYgKGl0ZXJhdG9y
ID09IG1fY2FjaGVzLmVuZCgpKQpAQCAtMjkxLDcgKzI5Myw3IEBAIFZlY3RvcjxXZWJDb3JlOjpD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpDYWNoZUluZm8+IENhY2hlU3RvcmFnZUVuZ2luZTo6Y2Fj
aGVzKGNvCiAgICAgcmV0dXJuIGNhY2hlc0luZm87CiB9CiAKLVZlY3Rvcjx1aW50NjRfdD4gQ2Fj
aGVTdG9yYWdlRW5naW5lOjpxdWVyeUNhY2hlKGNvbnN0IFZlY3RvcjxSZWNvcmQ+JiByZWNvcmRz
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6
OkNhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zKQorVmVjdG9yPHVpbnQ2NF90PiBFbmdpbmU6OnF1
ZXJ5Q2FjaGUoY29uc3QgVmVjdG9yPFJlY29yZD4mIHJlY29yZHMsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMm
IG9wdGlvbnMpCiB7CiAgICAgaWYgKCFvcHRpb25zLmlnbm9yZU1ldGhvZCAmJiByZXF1ZXN0Lmh0
dHBNZXRob2QoKSAhPSAiR0VUIikKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTMwNCw0ICszMDYs
NyBAQCBWZWN0b3I8dWludDY0X3Q+IENhY2hlU3RvcmFnZUVuZ2luZTo6cXVlcnlDYWNoZShjb25z
dCBWZWN0b3I8UmVjb3JkPiYgcmVjb3JkcywgYwogICAgIHJldHVybiByZXN1bHRzOwogfQogCi19
Cit9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZS5oCmluZGV4IDdjMjIzNGEwZWRkY2Q1Mjc4MzMzOTY2ZGEwMmY4ZGU4MjZmMDJm
ZGIuLjgyZDRhNDBhYjM0MzZhMzAyOWQxZGJjMWYyZDM3MjFiMDM5OGVhZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmUuaApAQCAtMjUsMTIgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgIkNhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJ
UEMgewogY2xhc3MgQ29ubmVjdGlvbjsKQEAgLTQyLDMyICszOCwxMyBAQCBjbGFzcyBTZXNzaW9u
SUQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzczsKK25hbWVzcGFjZSBDYWNoZVN0b3JhZ2UgewogCi1jbGFzcyBDYWNoZVN0b3JhZ2VF
bmdpbmUgeworY2xhc3MgRW5naW5lIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FjaGVTdG9yYWdl
RW5naW5lJiBmcm9tKFBBTDo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgRW5naW5lJiBmcm9tKFBB
TDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95RW5naW5lKFBBTDo6U2Vzc2lv
bklEKTsKIAotICAgIGVudW0gY2xhc3MgRXJyb3IgewotICAgICAgICBJbnRlcm5hbAotICAgIH07
Ci0gICAgdXNpbmcgUmVjb3JkID0gV2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6UmVj
b3JkOwotCi0gICAgdXNpbmcgQ2FjaGVJZGVudGlmaWVyT3JFcnJvciA9IEV4cGVjdGVkPHVpbnQ2
NF90LCBFcnJvcj47Ci0gICAgdXNpbmcgQ2FjaGVJZGVudGlmaWVyQ2FsbGJhY2sgPSBGdW5jdGlv
bjx2b2lkKENhY2hlSWRlbnRpZmllck9yRXJyb3ImJik+OwotCi0gICAgdXNpbmcgQ2FjaGVJbmZv
c09yRXJyb3IgPSBFeHBlY3RlZDxWZWN0b3I8V2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6Q2FjaGVJbmZvPiwgRXJyb3I+OwotICAgIHVzaW5nIENhY2hlSW5mb3NDYWxsYmFjayA9IEZ1
bmN0aW9uPHZvaWQoQ2FjaGVJbmZvc09yRXJyb3ImJik+OwotCi0gICAgdXNpbmcgUmVjb3Jkc09y
RXJyb3IgPSBFeHBlY3RlZDxWZWN0b3I8UmVjb3JkPiwgRXJyb3I+OwotICAgIHVzaW5nIFJlY29y
ZHNDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoUmVjb3Jkc09yRXJyb3ImJik+OwotCi0gICAgdXNp
bmcgUmVjb3JkSWRlbnRpZmllcnNPckVycm9yID0gRXhwZWN0ZWQ8VmVjdG9yPHVpbnQ2NF90Piwg
RXJyb3I+OwotICAgIHVzaW5nIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2sgPSBGdW5jdGlvbjx2
b2lkKFJlY29yZElkZW50aWZpZXJzT3JFcnJvciYmKT47Ci0KLSAgICB1c2luZyBDb21wbGV0aW9u
Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPjsKLQogICAg
IHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBjYWNoZU5hbWUs
IENhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpOwogICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90IGNh
Y2hlSWRlbnRpZmllciwgQ2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJik7CiAgICAgdm9pZCByZXRy
aWV2ZUNhY2hlcyhjb25zdCBTdHJpbmcmIG9yaWdpbiwgQ2FjaGVJbmZvc0NhbGxiYWNrJiYpOwpA
QCAtNzcsMTggKzU0LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZU1hdGNoaW5nUmVjb3Jk
cyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYp
OwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBDYWNoZVN0b3JhZ2VFbmdpbmUmIGRlZmF1bHRFbmdp
bmUoKTsKKyAgICBzdGF0aWMgRW5naW5lJiBkZWZhdWx0RW5naW5lKCk7CiAKICAgICB2b2lkIHdy
aXRlQ2FjaGVzVG9EaXNrKENvbXBsZXRpb25DYWxsYmFjayYmKTsKICAgICB2b2lkIHJlYWRDYWNo
ZXNGcm9tRGlzayhDb21wbGV0aW9uQ2FsbGJhY2smJik7CiAKLSAgICBzdHJ1Y3QgQ2FjaGUgewot
ICAgICAgICB1aW50NjRfdCBpZGVudGlmaWVyOwotICAgICAgICBTdHJpbmcgbmFtZTsKLSAgICAg
ICAgVmVjdG9yPFJlY29yZD4gcmVjb3JkczsKLSAgICAgICAgdWludDY0X3QgbmV4dFJlY29yZElk
ZW50aWZpZXIgeyAwIH07Ci0gICAgfTsKLQogICAgIHVzaW5nIENhY2hlT3JFcnJvciA9IEV4cGVj
dGVkPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Q2FjaGU+LCBFcnJvcj47CiAgICAgdXNpbmcgQ2Fj
aGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoQ2FjaGVPckVycm9yJiYpPjsKIApAQCAtMTA3LDEz
ICs3Nyw2IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9uZXh0Q2FjaGVJZGVudGlmaWVyIHsg
MCB9OwogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgQ2FjaGVTdG9yYWdlCiAKLW5hbWVzcGFjZSBX
VEYgewotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkNhY2hlU3RvcmFnZUVu
Z2luZTo6RXJyb3I+IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBX
ZWJLaXQ6OkNhY2hlU3RvcmFnZUVuZ2luZTo6RXJyb3IsCi0gICAgICAgIFdlYktpdDo6Q2FjaGVT
dG9yYWdlRW5naW5lOjpFcnJvcjo6SW50ZXJuYWwKLSAgICA+OwotfTsKLX0KK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkMDQ5ZGVlNWFh
ZTQ4YjA1NzVkNzIzZDQzMTRlYzU1ZjhmNDllOTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmgKQEAg
LTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ2Fj
aGVTdG9yYWdlLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIENhY2hlU3Rv
cmFnZSB7CisKK3N0cnVjdCBDYWNoZSB7CisgICAgdWludDY0X3QgaWRlbnRpZmllcjsKKyAgICBT
dHJpbmcgbmFtZTsKKyAgICBWZWN0b3I8UmVjb3JkPiByZWNvcmRzOworICAgIHVpbnQ2NF90IG5l
eHRSZWNvcmRJZGVudGlmaWVyIHsgMCB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgQ2FjaGVTdG9y
YWdlCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbi5jcHAKaW5kZXggYmE1MDYyN2E3ZWFlM2FiZDMzNmI5NzIyNWY5YTYwMThhMjhlOTVhZS4u
N2ZlMjlhMWRkNDhkNzBiZWJkMjVmODAxMzg3MWE1YTk0OWY2YzU3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwCkBAIC0yOSw5ICsyOSwxMCBAQAogCiAjaW5jbHVkZSAi
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlUXVlcnlPcHRpb25zLmg+CiAKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ6OkNhY2hlU3RvcmFnZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIENhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24oTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCkBAIC00MSw0MiArNDIsNDIg
QEAgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2UKIAogdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uOjpvcGVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSkK
IHsKLSAgICBDYWNoZVN0b3JhZ2VFbmdpbmU6OmZyb20oc2Vzc2lvbklEKS5vcGVuKG9yaWdpbiwg
Y2FjaGVOYW1lLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzZXNzaW9u
SUQsIHJlcXVlc3RJZGVudGlmaWVyXShDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSWRlbnRpZmll
ck9yRXJyb3ImJiByZXN1bHQpIHsKKyAgICBFbmdpbmU6OmZyb20oc2Vzc2lvbklEKS5vcGVuKG9y
aWdpbiwgY2FjaGVOYW1lLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBz
ZXNzaW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyXShDYWNoZUlkZW50aWZpZXJPckVycm9yJiYgcmVz
dWx0KSB7CiAgICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6T3BlbkNvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmll
ciwgcmVzdWx0KSwgc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKICAgICB9KTsKIH0KIAogdm9pZCBD
YWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpyZW1vdmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVy
KQogewotICAgIENhY2hlU3RvcmFnZUVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLnJlbW92ZShjYWNo
ZUlkZW50aWZpZXIsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXMsIHNlc3Np
b25JRCwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJZGVudGlm
aWVyT3JFcnJvciYmIHJlc3VsdCkgeworICAgIEVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLnJlbW92
ZShjYWNoZUlkZW50aWZpZXIsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXMs
IHNlc3Npb25JRCwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlSWRlbnRpZmllck9yRXJyb3ImJiBy
ZXN1bHQpIHsKICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVDb21wbGV0ZWQocmVxdWVzdElkZW50
aWZpZXIsIHJlc3VsdCksIHNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CiAgICAgfSk7CiB9CiAKIHZv
aWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Y2FjaGVzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
KQogewotICAgIENhY2hlU3RvcmFnZUVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLnJldHJpZXZlQ2Fj
aGVzKG9yaWdpbiwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgc2Vzc2lv
bklELCBvcmlnaW4sIHJlcXVlc3RJZGVudGlmaWVyXShDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hl
SW5mb3NPckVycm9yJiYgcmVzdWx0KSB7CisgICAgRW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmV0
cmlldmVDYWNoZXMob3JpZ2luLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlz
LCBzZXNzaW9uSUQsIG9yaWdpbiwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlSW5mb3NPckVycm9y
JiYgcmVzdWx0KSB7CiAgICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6VXBkYXRlQ2FjaGVzKHJlcXVlc3RJZGVu
dGlmaWVyLCByZXN1bHQpLCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwogICAgIH0pOwogfQogCiB2
b2lkIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OnJlY29yZHMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyKQogewotICAgIENhY2hlU3RvcmFnZUVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLnJldHJp
ZXZlUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIHRoaXMsIHNlc3Npb25JRCwgY2FjaGVJZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllcl0o
Q2FjaGVTdG9yYWdlRW5naW5lOjpSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkgeworICAgIEVuZ2lu
ZTo6ZnJvbShzZXNzaW9uSUQpLnJldHJpZXZlUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXMsIHNlc3Npb25JRCwgY2FjaGVJZGVudGlm
aWVyLCByZXF1ZXN0SWRlbnRpZmllcl0oUmVjb3Jkc09yRXJyb3ImJiByZXN1bHQpIHsKICAgICAg
ICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjpVcGRhdGVSZWNvcmRzKHJlcXVlc3RJZGVudGlmaWVyLCByZXN1bHQpLCBz
ZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwogICAgIH0pOwogfQogCiB2b2lkIENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb246OmRlbGV0ZU1hdGNoaW5nUmVjb3JkcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdlYkNvcmU6OkNhY2hlUXVl
cnlPcHRpb25zJiYgb3B0aW9ucykKIHsKLSAgICBDYWNoZVN0b3JhZ2VFbmdpbmU6OmZyb20oc2Vz
c2lvbklEKS5kZWxldGVNYXRjaGluZ1JlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBXVEZNb3ZlKHJl
cXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCB0aGlzLCBzZXNzaW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyXShDYWNoZVN0b3JhZ2VFbmdpbmU6
OlJlY29yZElkZW50aWZpZXJzT3JFcnJvciYmIHJlc3VsdCkgeworICAgIEVuZ2luZTo6ZnJvbShz
ZXNzaW9uSUQpLmRlbGV0ZU1hdGNoaW5nUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIFdURk1vdmUo
cmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIHRoaXMsIHNlc3Npb25JRCwgcmVxdWVzdElkZW50aWZpZXJdKFJlY29yZElkZW50aWZpZXJz
T3JFcnJvciYmIHJlc3VsdCkgewogICAgICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkRlbGV0ZVJlY29yZHNDb21w
bGV0ZWQocmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCksIHNlc3Npb25JRC5zZXNzaW9uSUQoKSk7
CiAgICAgfSk7CiB9CiAKIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cHV0UmVj
b3JkcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVy
LCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpSZWNvcmQ+JiYgcmVjb3JkcykKIHsKLSAgICBDYWNoZVN0b3JhZ2VFbmdpbmU6
OmZyb20oc2Vzc2lvbklEKS5wdXRSZWNvcmRzKGNhY2hlSWRlbnRpZmllciwgV1RGTW92ZShyZWNv
cmRzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgc2Vzc2lvbklELCBy
ZXF1ZXN0SWRlbnRpZmllcl0oQ2FjaGVTdG9yYWdlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc09y
RXJyb3ImJiByZXN1bHQpIHsKKyAgICBFbmdpbmU6OmZyb20oc2Vzc2lvbklEKS5wdXRSZWNvcmRz
KGNhY2hlSWRlbnRpZmllciwgV1RGTW92ZShyZWNvcmRzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgdGhpcywgc2Vzc2lvbklELCByZXF1ZXN0SWRlbnRpZmllcl0oUmVjb3JkSWRl
bnRpZmllcnNPckVycm9yJiYgcmVzdWx0KSB7CiAgICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6UHV0UmVjb3Jk
c0NvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0KSwgc2Vzc2lvbklELnNlc3Npb25J
RCgpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGY5ZWE5ZjQ5NmVhY2IzZGQzZDFhMTIxZWU0NjBkY2ExOWI3M2Y5
NmYuLjYyOTliNGIzMWE1N2E2MGExYzZmMWI4ODg1YmE3OWU1MDcyZmMxZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTA2LDYgKzkw
Niw4IEBACiAJCTQxREM0NTlFMUUzREJEQTEwMEIxMUY1MSAvKiBXZWJSVENTb2NrZXQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OUQxRTNE
QkNGMDAwQjExRjUxIC8qIFdlYlJUQ1NvY2tldC5jcHAgKi87IH07CiAJCTQxREM0NTlGMUUzREJE
QTUwMEIxMUY1MSAvKiBXZWJSVENTb2NrZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUYzMUUzQkZFN0YwMDFBRTY3OCAvKiBXZWJSVENTb2Nr
ZXQuaCAqLzsgfTsKIAkJNDFEQzQ1QTExRTNEQzUzRjAwQjExRjUxIC8qIFdlYlJUQ1Jlc29sdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0
NUEwMUUzREM1M0MwMEIxMUY1MSAvKiBXZWJSVENSZXNvbHZlci5jcHAgKi87IH07CisJCTQxRkFC
RDI5MUY0REUwMDEwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFCRDI3MUY0RERGREMwMDZBNkM5NyAvKiBD
YWNoZVN0b3JhZ2UuaCAqLzsgfTsKKwkJNDFGQUJEMkExRjRERTAwMTAwNkE2Qzk3IC8qIENhY2hl
U3RvcmFnZUVuZ2luZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUZBQkQyODFGNERERkRDMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5naW5l
Q2FjaGUuaCAqLzsgfTsKIAkJNDFGQUY1RjUxRTNDMDY0OTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29s
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZB
RjVGNDFFM0MwNjQxMDAxQUU2NzggLyogV2ViUlRDUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDFGQUY1
RjgxRTNDMTAyMTAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGNjFFM0MwQjQ3MDAxQUU2Nzgg
LyogTGliV2ViUlRDUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDFGQUY1RjkxRTNDMTAyNTAwMUFFNjc4
IC8qIExpYldlYlJUQ1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY3MUUzQzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNv
bHZlci5jcHAgKi87IH07CkBAIC0xMDM0LDggKzEwMzYsOCBAQAogCQk1MTdBNTMwQjFGNDc5RTM2
MDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwNzFGNDc5RTMxMDBEQ0RDMEEgLyogV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmggKi87IH07CiAJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAv
KiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMEUxRjQ3QTg0MzAwRENEQzBB
IC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUx
N0E1MzEwMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMEQx
RjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07
Ci0JCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUw
RCAvKiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMw
MEMyOTUwRCAvKiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKKwkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2QzAw
QzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTEx
NjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OwogCQk1MTdERDVCRTE4MERBN0QzMDA4MTY2MEIg
LyogU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogU3RvcmFnZVByb2Nl
c3NQcm94eS5jcHAgKi87IH07CkBAIC0zMTc3LDYgKzMxNzksOCBAQAogCQk0MURDNDU5QTFFM0RC
QjI0MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1NvY2tldENsaWVudC5oOyBwYXRoID0gTmV0d29ya1By
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MURDNDU5RDFFM0RCQ0YwMDBCMTFGNTEgLyogV2ViUlRDU29ja2V0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlJUQ1NvY2tldC5jcHA7IHBh
dGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MURDNDVBMDFFM0RDNTNDMDBCMTFGNTEgLyogV2ViUlRDUmVzb2x2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUlRDUmVzb2x2ZXIuY3Bw
OyBwYXRoID0gTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MUZBQkQyNzFGNERERkRDMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlU3RvcmFnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZBQkQyODFGNERERkRDMDA2QTZDOTcgLyogQ2Fj
aGVTdG9yYWdlRW5naW5lQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDFGQUY1RjMxRTNCRkU3RjAwMUFFNjc4IC8qIFdlYlJUQ1NvY2tldC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSVENTb2NrZXQuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRj
L1dlYlJUQ1NvY2tldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBRjVGNDFF
M0MwNjQxMDAxQUU2NzggLyogV2ViUlRDUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViUlRDUmVzb2x2ZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL1dlYlJU
Q1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkFGNUY2MUUzQzBC
NDcwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBMaWJXZWJSVENSZXNvbHZlci5oOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGli
V2ViUlRDUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMTksOCAr
MzMyMyw4IEBACiAJCTUxN0E1MzBDMUY0NzlFOTcwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDbGllbnRDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdBNTMw
RDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3QTUzMEUxRjQ3QTg0MzAwRENE
QzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTdDRjBFMTE2M0E0
ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRCAvKiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkNhY2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdD
RjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3REQ1QkMxODBE
QTdEMzAwODE2NjBCIC8qIFN0b3JhZ2VQcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZVByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC04MTkwLDggKzgxOTQsMTAgQEAKIAkJRTQ4OUQyODIxQTBBMkJF
ODAwNzhDMDZBIC8qIGNhY2hlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk0MUZBQkQyNzFGNERERkRDMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlLmggKi8s
CiAJCQkJNDE4OTdFRDYxRjQxNUQ4NjAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZS5jcHAg
Ki8sCiAJCQkJNDE4OTdFRDIxRjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZS5o
ICovLAorCQkJCTQxRkFCRDI4MUY0RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVD
YWNoZS5oICovLAogCQkJCTQxODk3RUQzMUY0MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk0MTg5N0VENDFGNDE1RDg1MDAxNkZBNDIgLyog
Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oICovLAogCQkJCTQxODk3RUQ1MUY0MTVEODUw
MDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLApA
QCAtODQyNCw3ICs4NDMwLDkgQEAKIAkJCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxv
Y2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NzA1MTExQkU0MTBFNjAw
ODc0QUYxIC8qIEJsb2NrU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzMwNjVGQTEyNTkzNDRF
MDBFNzEyNzggLyogQ2FjaGVNb2RlbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFGQUJEMjkxRjRE
RTAwMTAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTdF
RDgxRjQxNUQ4QTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDFGQUJEMkExRjRERTAwMTAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5N0VEQTFGNDE1RDhBMDAxNkZBNDIgLyogQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBMkU1MUQxMkU0
QzA1RTAwQkM0OTY2IC8qIENHVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTJEOTU2
RjEyODQ4NTY0MDAxRUI5NjIgLyogQ2hpbGRQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAppbmRleCAyOWRiYjY0YTE3Mzg4ZWU4ZmI3OTQxMjk1YWVmNWE5Yzdm
ZjlkYTMwLi41YzI4MmJlZWY3YjVlMjY2MWU5MWI5NzZjYjgwNmFiMTU2YjQ0YjU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ6OkNhY2hlU3RvcmFnZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oV2ViQ2FjaGVTdG9yYWdlUHJv
dmlkZXImIHByb3ZpZGVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCkBAIC04MiwzMiArODQs
MzIgQEAgdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb0JhdGNoUHV0T3BlcmF0aW9u
KHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLAogICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpQdXRSZWNvcmRzKG1fc2Vzc2lvbklE
LCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCByZWNvcmRzKSwgMCk7CiB9CiAK
LXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6b3BlbkNvbXBsZXRlZCh1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJPckVy
cm9yJiYgcmVzdWx0KQordm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpvcGVuQ29tcGxl
dGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZUlkZW50aWZpZXJPckVycm9yJiYg
cmVzdWx0KQogewogICAgIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246Om9wZW5Db21wbGV0ZWQocmVx
dWVzdElkZW50aWZpZXIsIHJlc3VsdC5oYXNWYWx1ZSgpID8gcmVzdWx0LnZhbHVlKCkgOiAwLCAh
cmVzdWx0Lmhhc1ZhbHVlKCkgPyBFcnJvcjo6SW50ZXJuYWwgOiBFcnJvcjo6Tm9uZSk7CiB9CiAK
LXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlQ29tcGxldGVkKHVpbnQ2NF90
IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSWRlbnRpZmllck9y
RXJyb3ImJiByZXN1bHQpCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUNv
bXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVJZGVudGlmaWVyT3JFcnJv
ciYmIHJlc3VsdCkKIHsKICAgICBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVDb21wbGV0
ZWQocmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdC5oYXNWYWx1ZSgpID8gcmVzdWx0LnZhbHVlKCkg
OiAwLCAhcmVzdWx0Lmhhc1ZhbHVlKCkgPyBFcnJvcjo6SW50ZXJuYWwgOiBFcnJvcjo6Tm9uZSk7
CiB9CiAKLXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6dXBkYXRlQ2FjaGVzKHVpbnQ2
NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSW5mb3NPckVy
cm9yJiYgcmVzdWx0KQordm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp1cGRhdGVDYWNo
ZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0
KQogewogICAgIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnVwZGF0ZUNhY2hlcyhyZXF1ZXN0SWRl
bnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyByZXN1bHQudmFsdWUoKSA6IFZlY3RvcjxDYWNo
ZUluZm8+KCkpOwogfQogCi12b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnVwZGF0ZVJl
Y29yZHModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6UmVj
b3Jkc09yRXJyb3ImJiByZXN1bHQpCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnVw
ZGF0ZVJlY29yZHModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFJlY29yZHNPckVycm9yJiYg
cmVzdWx0KQogewogICAgIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnVwZGF0ZVJlY29yZHMocmVx
dWVzdElkZW50aWZpZXIsIHJlc3VsdC5oYXNWYWx1ZSgpID8gV1RGTW92ZShyZXN1bHQudmFsdWUo
KSkgOiBWZWN0b3I8UmVjb3JkPigpKTsKIH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpkZWxldGVSZWNvcmRzQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBD
YWNoZVN0b3JhZ2VFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzT3JFcnJvciYmIHJlc3VsdCkKK3Zv
aWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZGVsZXRlUmVjb3Jkc0NvbXBsZXRlZCh1aW50
NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgUmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYgcmVzdWx0
KQogewogICAgIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRlbGV0ZVJlY29yZHNDb21wbGV0ZWQo
cmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdC5oYXNWYWx1ZSgpID8gcmVzdWx0LnZhbHVlKCkgOiBW
ZWN0b3I8dWludDY0X3Q+KCksICFyZXN1bHQuaGFzVmFsdWUoKSA/IEVycm9yOjpJbnRlcm5hbCA6
IEVycm9yOjpOb25lKTsKIH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpwdXRS
ZWNvcmRzQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VF
bmdpbmU6OlJlY29yZElkZW50aWZpZXJzT3JFcnJvciYmIHJlc3VsdCkKK3ZvaWQgV2ViQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6cHV0UmVjb3Jkc0NvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllciwgUmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYgcmVzdWx0KQogewogICAgIENhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OnB1dFJlY29yZHNDb21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIs
IHJlc3VsdC5oYXNWYWx1ZSgpID8gcmVzdWx0LnZhbHVlKCkgOiBWZWN0b3I8dWludDY0X3Q+KCks
ICFyZXN1bHQuaGFzVmFsdWUoKSA/IEVycm9yOjpJbnRlcm5hbCA6IEVycm9yOjpOb25lKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDg2NDEyOWY5YjFjNDFjNDNjZTFhYTRlYTBlM2VjOTQ2
MmFlNzY3ZWQuLjczYzFkMzdhOTc4YjU3NDI1ZWI3NmVjMjJmNzQ0NTg5MTcyNTEyMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaApAQCAtMjUsMTEgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiQ2FjaGVTdG9yYWdlRW5naW5lLmgiCisjaW5jbHVkZSAiQ2FjaGVTdG9yYWdlLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOwogY2xh
c3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CkBAIC02MCwxMyArNjEsMTMgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRvQmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJikgZmluYWw7CiAgICAgdm9pZCBk
b0JhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBj
YWNoZUlkZW50aWZpZXIsIFZlY3RvcjxSZWNvcmQ+JiYpIGZpbmFsOwogCi0gICAgdm9pZCBvcGVu
Q29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6
OkNhY2hlSWRlbnRpZmllck9yRXJyb3ImJik7Ci0gICAgdm9pZCByZW1vdmVDb21wbGV0ZWQodWlu
dDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJZGVudGlm
aWVyT3JFcnJvciYmKTsKLSAgICB2b2lkIHVwZGF0ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllciwgQ2FjaGVTdG9yYWdlRW5naW5lOjpDYWNoZUluZm9zT3JFcnJvciYmKTsKKyAgICB2
b2lkIG9wZW5Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFn
ZTo6Q2FjaGVJZGVudGlmaWVyT3JFcnJvciYmKTsKKyAgICB2b2lkIHJlbW92ZUNvbXBsZXRlZCh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlOjpDYWNoZUlkZW50aWZpZXJP
ckVycm9yJiYpOworICAgIHZvaWQgdXBkYXRlQ2FjaGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBDYWNoZVN0b3JhZ2U6OkNhY2hlSW5mb3NPckVycm9yJiYpOwogCi0gICAgdm9pZCB1cGRh
dGVSZWNvcmRzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6
OlJlY29yZHNPckVycm9yJiYpOwotICAgIHZvaWQgZGVsZXRlUmVjb3Jkc0NvbXBsZXRlZCh1aW50
NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlRW5naW5lOjpSZWNvcmRJZGVudGlm
aWVyc09yRXJyb3ImJik7Ci0gICAgdm9pZCBwdXRSZWNvcmRzQ29tcGxldGVkKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzT3JF
cnJvciYmKTsKKyAgICB2b2lkIHVwZGF0ZVJlY29yZHModWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIsIENhY2hlU3RvcmFnZTo6UmVjb3Jkc09yRXJyb3ImJik7CisgICAgdm9pZCBkZWxldGVSZWNv
cmRzQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2U6OlJl
Y29yZElkZW50aWZpZXJzT3JFcnJvciYmKTsKKyAgICB2b2lkIHB1dFJlY29yZHNDb21wbGV0ZWQo
dWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFnZTo6UmVjb3JkSWRlbnRpZmll
cnNPckVycm9yJiYpOwogCiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXImIG1fcHJvdmlkZXI7
CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCmluZGV4IDg3NDRlNzZhZmYyNzc0MTIyMGM5OTE1NjIxN2JhYjFjZmIw
NDJmMDkuLmQzMDg2M2ZhNzdiMDA2ZTIyNTA0ZGVjNzBmNmM4NTFmZGYxYzFlYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yMSwxMSArMjEsMTEgQEAKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbiB7Ci0g
ICAgT3BlbkNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViS2l0OjpDYWNo
ZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSWRlbnRpZmllck9yRXJyb3IgcmVzdWx0KTsKLSAgICBSZW1v
dmVDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9y
YWdlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJPckVycm9yIHJlc3VsdCk7Ci0gICAgVXBkYXRlQ2Fj
aGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFnZUVuZ2lu
ZTo6Q2FjaGVJbmZvc09yRXJyb3IgcmVzdWx0KTsKKyAgICBPcGVuQ29tcGxldGVkKHVpbnQ2NF90
IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGVJZGVudGlmaWVy
T3JFcnJvciByZXN1bHQpOworICAgIFJlbW92ZUNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllciwgV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlSWRlbnRpZmllck9yRXJyb3IgcmVz
dWx0KTsKKyAgICBVcGRhdGVDYWNoZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktp
dDo6Q2FjaGVTdG9yYWdlOjpDYWNoZUluZm9zT3JFcnJvciByZXN1bHQpOwogCi0gICAgVXBkYXRl
UmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViS2l0OjpDYWNoZVN0b3JhZ2VF
bmdpbmU6OlJlY29yZHNPckVycm9yIHJlc3VsdCk7Ci0gICAgRGVsZXRlUmVjb3Jkc0NvbXBsZXRl
ZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViS2l0OjpDYWNoZVN0b3JhZ2VFbmdpbmU6
OlJlY29yZElkZW50aWZpZXJzT3JFcnJvciByZXN1bHQpOwotICAgIFB1dFJlY29yZHNDb21wbGV0
ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9yYWdlRW5naW5l
OjpSZWNvcmRJZGVudGlmaWVyc09yRXJyb3IgcmVzdWx0KTsKKyAgICBVcGRhdGVSZWNvcmRzKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6UmVjb3Jkc09y
RXJyb3IgcmVzdWx0KTsKKyAgICBEZWxldGVSZWNvcmRzQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVl
c3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6UmVjb3JkSWRlbnRpZmllcnNPckVy
cm9yIHJlc3VsdCk7CisgICAgUHV0UmVjb3Jkc0NvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllciwgV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OlJlY29yZElkZW50aWZpZXJzT3JFcnJvciBy
ZXN1bHQpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318883</attachid>
            <date>2017-08-23 10:31:15 -0700</date>
            <delta_ts>2017-08-23 12:04:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-175885-20170823103115.patch</filename>
            <type>text/plain</type>
            <size>39691</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRiMGUxNWUyNjEwZjEwZDE3
NTU2MTk1NWM5YzNlMzY2MTUyMTRmZWYuLjExM2IwZGNlYTY1ZTc4YjMwMTg0ZDFkMjg5NDNlNTBi
NzA2ZGJhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTctMDgtMjMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFtDYWNoZUFQSV0gSW50cm9kdWNl
IGEgV2ViS2l0OjpDYWNoZVN0b3JhZ2UgbmFtZXNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBB
bGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEludHJvZHVjaW5nIFdlYktpdDo6Q2FjaGVTdG9y
YWdlIG5hbWVzcGFjZS4KKyAgICAgICAgU3BsaXR0aW5nIENhY2hlU3RvcmFnZUVuZ2luZS5oIGlu
IHRocmVlIGZpbGVzLgorICAgICAgICBVcGRhdGluZyBjbGllbnQgY29kZSBhY2NvcmRpbmdseS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6Omdsb2JhbEVuZ2luZU1hcCk6CisgICAgICAg
IChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5lOjpmcm9tKToKKyAgICAgICAgKFdlYktpdDo6
Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OmRlc3Ryb3lFbmdpbmUpOgorICAgICAgICAoV2ViS2l0OjpD
YWNoZVN0b3JhZ2U6OkVuZ2luZTo6ZGVmYXVsdEVuZ2luZSk6CisgICAgICAgIChXZWJLaXQ6OkNh
Y2hlU3RvcmFnZTo6RW5naW5lOjpvcGVuKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdl
OjpFbmdpbmU6OnJlbW92ZSk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5l
OjpyZXRyaWV2ZUNhY2hlcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5l
OjpyZXRyaWV2ZVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2lu
ZTo6cHV0UmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5lOjpk
ZWxldGVNYXRjaGluZ1JlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVu
Z2luZTo6d3JpdGVDYWNoZXNUb0Rpc2spOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6
OkVuZ2luZTo6cmVhZENhY2hlc0Zyb21EaXNrKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9y
YWdlOjpFbmdpbmU6OnJlYWRDYWNoZSk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6
RW5naW5lOjp3cml0ZUNhY2hlUmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFn
ZTo6RW5naW5lOjpyZW1vdmVDYWNoZVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0
b3JhZ2U6OkVuZ2luZTo6Y2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVu
Z2luZTo6Y2FjaGVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdp
bmU6OnF1ZXJ5Q2FjaGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZUNhY2hlLmg6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hl
L0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpvcGVuKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Y2FjaGVzKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OmRlbGV0ZU1hdGNoaW5nUmVjb3Jkcyk6CisgICAgICAg
IChXZWJLaXQ6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OnB1dFJlY29yZHMpOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246Om9wZW5Db21wbGV0ZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVDb21wbGV0ZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp1cGRhdGVDYWNoZXMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp1cGRhdGVSZWNvcmRz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZGVsZXRlUmVj
b3Jkc0NvbXBsZXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b246OnB1dFJlY29yZHNDb21wbGV0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDE3LTA4LTIyICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIF9XS1RodW1ibmFpbFZpZXcgc2hvdWxk
IHVzZSB0aGUgc2NyZWVuIGNvbG9yIHNwYWNlIGluc3RlYWQgb2Ygc1JHQgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODc0ZjY3MWYzODk1ODBhMTY3OWRkN2IzMjExMWJkYWJjYTQ2YWZlZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlLmgKQEAg
LTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK25hbWVzcGFjZSBDYWNoZVN0b3JhZ2UgeworCitlbnVtIGNsYXNzIEVycm9yIHsKKyAg
ICBJbnRlcm5hbAorfTsKKwordXNpbmcgUmVjb3JkID0gV2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6UmVjb3JkOworCit1c2luZyBDYWNoZUlkZW50aWZpZXJPckVycm9yID0gRXhwZWN0
ZWQ8dWludDY0X3QsIEVycm9yPjsKK3VzaW5nIENhY2hlSWRlbnRpZmllckNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChDYWNoZUlkZW50aWZpZXJPckVycm9yJiYpPjsKKwordXNpbmcgQ2FjaGVJbmZv
c09yRXJyb3IgPSBFeHBlY3RlZDxWZWN0b3I8V2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6Q2FjaGVJbmZvPiwgRXJyb3I+OwordXNpbmcgQ2FjaGVJbmZvc0NhbGxiYWNrID0gRnVuY3Rp
b248dm9pZChDYWNoZUluZm9zT3JFcnJvciYmKT47CisKK3VzaW5nIFJlY29yZHNPckVycm9yID0g
RXhwZWN0ZWQ8VmVjdG9yPFJlY29yZD4sIEVycm9yPjsKK3VzaW5nIFJlY29yZHNDYWxsYmFjayA9
IEZ1bmN0aW9uPHZvaWQoUmVjb3Jkc09yRXJyb3ImJik+OworCit1c2luZyBSZWNvcmRJZGVudGlm
aWVyc09yRXJyb3IgPSBFeHBlY3RlZDxWZWN0b3I8dWludDY0X3Q+LCBFcnJvcj47Cit1c2luZyBS
ZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrID0gRnVuY3Rpb248dm9pZChSZWNvcmRJZGVudGlmaWVy
c09yRXJyb3ImJik+OworCit1c2luZyBDb21wbGV0aW9uQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lk
KHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPjsKKworfSAvLyBuYW1lc3BhY2UgQ2FjaGVTdG9yYWdl
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsKK3RlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVycm9yPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVy
cm9yLAorICAgICAgICBXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RXJyb3I6OkludGVybmFsCisgICAg
PjsKK307Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKaW5kZXggNWQ1Nzg3YmY3Yzk4MjgxZDA1MTRiNDI4
MzA3MDIyMGEwMmI5ZDQ0Mi4uMTM4OTk4M2Y0MmFmOWUzMzJmMTBjZWE1YzkzZmRjYjFmMjAxNjA0
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcApAQCAtMzQsMzUgKzM0LDM3IEBACiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1zdGF0aWMgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRy
PENhY2hlU3RvcmFnZUVuZ2luZT4+JiBnbG9iYWxFbmdpbmVNYXAoKQorbmFtZXNwYWNlIENhY2hl
U3RvcmFnZSB7CisKK3N0YXRpYyBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9w
dHI8RW5naW5lPj4mIGdsb2JhbEVuZ2luZU1hcCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZVN0b3JhZ2VF
bmdpbmU+Pj4gbWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFBBTDo6U2Vz
c2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8RW5naW5lPj4+IG1hcDsKICAgICByZXR1cm4gbWFwOwog
fQogCi1DYWNoZVN0b3JhZ2VFbmdpbmUmIENhY2hlU3RvcmFnZUVuZ2luZTo6ZnJvbShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCitFbmdpbmUmIEVuZ2luZTo6ZnJvbShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCiB7CiAgICAgaWYgKHNlc3Npb25JRCA9PSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpKQogICAgICAgICByZXR1cm4gZGVmYXVsdEVuZ2luZSgpOwogCiAgICAgcmV0
dXJuICpnbG9iYWxFbmdpbmVNYXAoKS5lbnN1cmUoc2Vzc2lvbklELCBbXSB7Ci0gICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlU3RvcmFnZUVuZ2luZT4oKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8RW5naW5lPigpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsK
IH0KIAotdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OmRlc3Ryb3lFbmdpbmUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQordm9pZCBFbmdpbmU6OmRlc3Ryb3lFbmdpbmUoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQogewogICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgZ2xvYmFsRW5naW5lTWFwKCkucmVtb3ZlKHNlc3Npb25J
RCk7CiB9CiAKLUNhY2hlU3RvcmFnZUVuZ2luZSYgQ2FjaGVTdG9yYWdlRW5naW5lOjpkZWZhdWx0
RW5naW5lKCkKK0VuZ2luZSYgRW5naW5lOjpkZWZhdWx0RW5naW5lKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPENhY2hlU3RvcmFnZUVuZ2luZT4+IGRlZmF1
bHRFbmdpbmUgPSB7IHN0ZDo6bWFrZV91bmlxdWU8Q2FjaGVTdG9yYWdlRW5naW5lPigpIH07Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxFbmdpbmU+PiBkZWZhdWx0
RW5naW5lID0geyBzdGQ6Om1ha2VfdW5pcXVlPEVuZ2luZT4oKSB9OwogICAgIHJldHVybiAqZGVm
YXVsdEVuZ2luZS5nZXQoKTsKIH0KIAotdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6Om9wZW4oY29u
c3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lLCBDYWNoZUlkZW50aWZp
ZXJDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBFbmdpbmU6Om9wZW4oY29uc3QgU3RyaW5nJiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lLCBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYm
IGNhbGxiYWNrKQogewogICAgIHJlYWRDYWNoZXNGcm9tRGlzayhbdGhpcywgb3JpZ2luLCBjYWNo
ZU5hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKHN0ZDo6b3B0aW9uYWw8RXJyb3I+
JiYgZXJyb3IpIG11dGFibGUgewogICAgICAgICBpZiAoZXJyb3IpIHsKQEAgLTkxLDcgKzkzLDcg
QEAgdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6Om9wZW4oY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNv
bnN0IFN0cmluZyYgY2FjaGVOYW1lLCBDYWMKICAgICB9KTsKIH0KIAotdm9pZCBDYWNoZVN0b3Jh
Z2VFbmdpbmU6OnJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIENhY2hlSWRlbnRpZmll
ckNhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEVuZ2luZTo6cmVtb3ZlKHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgQ2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBz
dGQ6Om9wdGlvbmFsPENhY2hlPiByZW1vdmVkQ2FjaGU7CiAgICAgZm9yIChhdXRvJiBjYWNoZXMg
OiBtX2NhY2hlcy52YWx1ZXMoKSkgewpAQCAtMTE2LDcgKzExOCw3IEBAIHZvaWQgQ2FjaGVTdG9y
YWdlRW5naW5lOjpyZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNoZUlkZW50aWZp
ZXJDYWxsYmFjCiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpyZXRyaWV2
ZUNhY2hlcyhjb25zdCBTdHJpbmcmIG9yaWdpbiwgQ2FjaGVJbmZvc0NhbGxiYWNrJiYgY2FsbGJh
Y2spCit2b2lkIEVuZ2luZTo6cmV0cmlldmVDYWNoZXMoY29uc3QgU3RyaW5nJiBvcmlnaW4sIENh
Y2hlSW5mb3NDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIHJlYWRDYWNoZXNGcm9tRGlzayhb
dGhpcywgb3JpZ2luLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShzdGQ6Om9wdGlvbmFs
PEVycm9yPiYmIGVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yKSB7CkBAIC0xMjcs
NyArMTI5LDcgQEAgdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnJldHJpZXZlQ2FjaGVzKGNvbnN0
IFN0cmluZyYgb3JpZ2luLCBDYWNoZUluZm9zQ2FsbGJhY2sKICAgICB9KTsKIH0KIAotdm9pZCBD
YWNoZVN0b3JhZ2VFbmdpbmU6OnJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBFbmdpbmU6OnJldHJpZXZlUmVj
b3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNr
KQogewogICAgIHJlYWRDYWNoZShjYWNoZUlkZW50aWZpZXIsIFtjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShDYWNoZU9yRXJyb3ImJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAo
IXJlc3VsdC5oYXNWYWx1ZSgpKSB7CkBAIC0xNDYsNyArMTQ4LDcgQEAgdm9pZCBDYWNoZVN0b3Jh
Z2VFbmdpbmU6OnJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFJlY29y
ZHNDYWxsYmEKICAgICB9KTsKIH0KIAotdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnB1dFJlY29y
ZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8UmVjb3JkPiYmIHJlY29yZHMsIFJl
Y29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRW5naW5lOjpwdXRSZWNv
cmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFJlY29yZD4mJiByZWNvcmRzLCBS
ZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgcmVhZENhY2hlKGNh
Y2hlSWRlbnRpZmllciwgW3RoaXMsIGNhY2hlSWRlbnRpZmllciwgcmVjb3JkcyA9IFdURk1vdmUo
cmVjb3JkcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKENhY2hlT3JFcnJvciYmIHJl
c3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0Lmhhc1ZhbHVlKCkpIHsKQEAgLTE2
MCw3ICsxNjIsNyBAQCB2b2lkIENhY2hlU3RvcmFnZUVuZ2luZTo6cHV0UmVjb3Jkcyh1aW50NjRf
dCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxSZWNvcmQ+JiYgcgogICAgICAgICBWZWN0b3I8dWlu
dDY0X3Q+IHJlY29yZElkZW50aWZpZXJzOwogICAgICAgICByZWNvcmRJZGVudGlmaWVycy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KHJlY29yZHMuc2l6ZSgpKTsKICAgICAgICAgZm9yIChhdXRvJiBy
ZWNvcmQgOiByZWNvcmRzKSB7Ci0gICAgICAgICAgICBhdXRvIG1hdGNoaW5nUmVjb3JkcyA9IENh
Y2hlU3RvcmFnZUVuZ2luZTo6cXVlcnlDYWNoZShjYWNoZS5yZWNvcmRzLCByZWNvcmQucmVxdWVz
dCwgb3B0aW9ucyk7CisgICAgICAgICAgICBhdXRvIG1hdGNoaW5nUmVjb3JkcyA9IEVuZ2luZTo6
cXVlcnlDYWNoZShjYWNoZS5yZWNvcmRzLCByZWNvcmQucmVxdWVzdCwgb3B0aW9ucyk7CiAgICAg
ICAgICAgICBpZiAobWF0Y2hpbmdSZWNvcmRzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAg
IHJlY29yZC5pZGVudGlmaWVyID0gKytjYWNoZS5uZXh0UmVjb3JkSWRlbnRpZmllcjsKICAgICAg
ICAgICAgICAgICByZWNvcmRJZGVudGlmaWVycy51bmNoZWNrZWRBcHBlbmQocmVjb3JkLmlkZW50
aWZpZXIpOwpAQCAtMTg1LDcgKzE4Nyw3IEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpwdXRS
ZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFJlY29yZD4mJiByCiAgICAg
fSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpkZWxldGVNYXRjaGluZ1JlY29yZHMo
dWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZElkZW50aWZp
ZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRW5naW5lOjpkZWxldGVNYXRjaGluZ1JlY29y
ZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZElkZW50
aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICByZWFkQ2FjaGUoY2FjaGVJZGVudGlm
aWVyLCBbdGhpcywgY2FjaGVJZGVudGlmaWVyLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KSwg
b3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KENhY2hlT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0Lmhh
c1ZhbHVlKCkpIHsKQEAgLTIyNCwxOSArMjI2LDE5IEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5l
OjpkZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3Jl
CiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjp3cml0ZUNhY2hlc1RvRGlz
ayhGdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPiYmIGNhbGxiYWNrKQordm9p
ZCBFbmdpbmU6OndyaXRlQ2FjaGVzVG9EaXNrKEZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxF
cnJvcj4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB3cml0aW5n
LgogICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5n
aW5lOjpyZWFkQ2FjaGVzRnJvbURpc2soQ29tcGxldGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCit2
b2lkIEVuZ2luZTo6cmVhZENhY2hlc0Zyb21EaXNrKENvbXBsZXRpb25DYWxsYmFjayYmIGNhbGxi
YWNrKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcmVhZGluZy4KICAgICBjYWxsYmFjayhz
dGQ6Om51bGxvcHQpOwogfQogCi12b2lkIENhY2hlU3RvcmFnZUVuZ2luZTo6cmVhZENhY2hlKHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBF
bmdpbmU6OnJlYWRDYWNoZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIENhY2hlQ2FsbGJhY2sm
JiBjYWxsYmFjaykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHJlYWRpbmcuCiAgICAgYXV0
byogY2FjaGUgPSB0aGlzLT5jYWNoZShjYWNoZUlkZW50aWZpZXIpOwpAQCAtMjQ3LDE5ICsyNDks
MTkgQEAgdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnJlYWRDYWNoZSh1aW50NjRfdCBjYWNoZUlk
ZW50aWZpZXIsIENhY2hlQ2FsbGJhY2smJiBjYWwKICAgICBjYWxsYmFjayhzdGQ6OnJlZmVyZW5j
ZV93cmFwcGVyPENhY2hlPiB7ICpjYWNoZSB9KTsKIH0KIAotdm9pZCBDYWNoZVN0b3JhZ2VFbmdp
bmU6OndyaXRlQ2FjaGVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPHVp
bnQ2NF90PiYmIHJlY29yZHNJZGVudGlmaWVycywgUmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYm
IGNhbGxiYWNrKQordm9pZCBFbmdpbmU6OndyaXRlQ2FjaGVSZWNvcmRzKHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgVmVjdG9yPHVpbnQ2NF90PiYmIHJlY29yZHNJZGVudGlmaWVycywgUmVjb3Jk
SWRlbnRpZmllcnNDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgd3JpdGluZy4KICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlY29yZHNJZGVudGlmaWVycykpOwog
fQogCi12b2lkIENhY2hlU3RvcmFnZUVuZ2luZTo6cmVtb3ZlQ2FjaGVSZWNvcmRzKHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPHVpbnQ2NF90PiYmIHJlY29yZHNJZGVudGlmaWVycywg
UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBFbmdpbmU6OnJlbW92
ZUNhY2hlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3Rvcjx1aW50NjRfdD4m
JiByZWNvcmRzSWRlbnRpZmllcnMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFj
aykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHdyaXRpbmcuCiAgICAgY2FsbGJhY2soV1RG
TW92ZShyZWNvcmRzSWRlbnRpZmllcnMpKTsKIH0KIAotQ2FjaGVTdG9yYWdlRW5naW5lOjpDYWNo
ZSogQ2FjaGVTdG9yYWdlRW5naW5lOjpjYWNoZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCitD
YWNoZSogRW5naW5lOjpjYWNoZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiB7CiAgICAgQ2Fj
aGUqIHJlc3VsdCA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvJiBjYWNoZXMgOiBtX2NhY2hlcy52
YWx1ZXMoKSkgewpAQCAtMjc3LDcgKzI3OSw3IEBAIENhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGUq
IENhY2hlU3RvcmFnZUVuZ2luZTo6Y2FjaGUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKQogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLVZlY3RvcjxXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpDYWNoZUluZm8+IENhY2hlU3RvcmFnZUVuZ2luZTo6Y2FjaGVzKGNvbnN0IFN0cmluZyYg
b3JpZ2luKSBjb25zdAorVmVjdG9yPFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkNh
Y2hlSW5mbz4gRW5naW5lOjpjYWNoZXMoY29uc3QgU3RyaW5nJiBvcmlnaW4pIGNvbnN0CiB7CiAg
ICAgYXV0byBpdGVyYXRvciA9IG1fY2FjaGVzLmZpbmQob3JpZ2luKTsKICAgICBpZiAoaXRlcmF0
b3IgPT0gbV9jYWNoZXMuZW5kKCkpCkBAIC0yOTEsNyArMjkzLDcgQEAgVmVjdG9yPFdlYkNvcmU6
OkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OkNhY2hlSW5mbz4gQ2FjaGVTdG9yYWdlRW5naW5lOjpj
YWNoZXMoY28KICAgICByZXR1cm4gY2FjaGVzSW5mbzsKIH0KIAotVmVjdG9yPHVpbnQ2NF90PiBD
YWNoZVN0b3JhZ2VFbmdpbmU6OnF1ZXJ5Q2FjaGUoY29uc3QgVmVjdG9yPFJlY29yZD4mIHJlY29y
ZHMsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29y
ZTo6Q2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMpCitWZWN0b3I8dWludDY0X3Q+IEVuZ2luZTo6
cXVlcnlDYWNoZShjb25zdCBWZWN0b3I8UmVjb3JkPiYgcmVjb3JkcywgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9u
cyYgb3B0aW9ucykKIHsKICAgICBpZiAoIW9wdGlvbnMuaWdub3JlTWV0aG9kICYmIHJlcXVlc3Qu
aHR0cE1ldGhvZCgpICE9ICJHRVQiKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtMzA0LDQgKzMw
Niw3IEBAIFZlY3Rvcjx1aW50NjRfdD4gQ2FjaGVTdG9yYWdlRW5naW5lOjpxdWVyeUNhY2hlKGNv
bnN0IFZlY3RvcjxSZWNvcmQ+JiByZWNvcmRzLCBjCiAgICAgcmV0dXJuIHJlc3VsdHM7CiB9CiAK
LX0KK30gLy8gbmFtZXNwYWNlIENhY2hlU3RvcmFnZQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lLmgKaW5kZXggN2MyMjM0YTBlZGRjZDUyNzgzMzM5NjZkYTAyZjhkZTgyNmYw
MmZkYi4uODJkNGE0MGFiMzQzNmEzMDI5ZDFkYmMxZjJkMzcyMWIwMzk4ZWFlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVu
Z2luZS5oCkBAIC0yNSwxMiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSAiQ2FjaGVTdG9y
YWdlRW5naW5lQ2FjaGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwpAQCAtNDIsMzIgKzM4LDEzIEBAIGNsYXNzIFNlc3Np
b25JRDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOworbmFtZXNwYWNlIENhY2hlU3RvcmFnZSB7CiAKLWNsYXNzIENhY2hlU3RvcmFn
ZUVuZ2luZSB7CitjbGFzcyBFbmdpbmUgewogcHVibGljOgotICAgIHN0YXRpYyBDYWNoZVN0b3Jh
Z2VFbmdpbmUmIGZyb20oUEFMOjpTZXNzaW9uSUQpOworICAgIHN0YXRpYyBFbmdpbmUmIGZyb20o
UEFMOjpTZXNzaW9uSUQpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lFbmdpbmUoUEFMOjpTZXNz
aW9uSUQpOwogCi0gICAgZW51bSBjbGFzcyBFcnJvciB7Ci0gICAgICAgIEludGVybmFsCi0gICAg
fTsKLSAgICB1c2luZyBSZWNvcmQgPSBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZWNvcmQ7Ci0KLSAgICB1c2luZyBDYWNoZUlkZW50aWZpZXJPckVycm9yID0gRXhwZWN0ZWQ8dWlu
dDY0X3QsIEVycm9yPjsKLSAgICB1c2luZyBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayA9IEZ1bmN0
aW9uPHZvaWQoQ2FjaGVJZGVudGlmaWVyT3JFcnJvciYmKT47Ci0KLSAgICB1c2luZyBDYWNoZUlu
Zm9zT3JFcnJvciA9IEV4cGVjdGVkPFZlY3RvcjxXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpDYWNoZUluZm8+LCBFcnJvcj47Ci0gICAgdXNpbmcgQ2FjaGVJbmZvc0NhbGxiYWNrID0g
RnVuY3Rpb248dm9pZChDYWNoZUluZm9zT3JFcnJvciYmKT47Ci0KLSAgICB1c2luZyBSZWNvcmRz
T3JFcnJvciA9IEV4cGVjdGVkPFZlY3RvcjxSZWNvcmQ+LCBFcnJvcj47Ci0gICAgdXNpbmcgUmVj
b3Jkc0NhbGxiYWNrID0gRnVuY3Rpb248dm9pZChSZWNvcmRzT3JFcnJvciYmKT47Ci0KLSAgICB1
c2luZyBSZWNvcmRJZGVudGlmaWVyc09yRXJyb3IgPSBFeHBlY3RlZDxWZWN0b3I8dWludDY0X3Q+
LCBFcnJvcj47Ci0gICAgdXNpbmcgUmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoUmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYpPjsKLQotICAgIHVzaW5nIENvbXBsZXRp
b25DYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxFcnJvcj4mJik+OwotCiAg
ICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFt
ZSwgQ2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJik7CiAgICAgdm9pZCByZW1vdmUodWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKTsKICAgICB2b2lkIHJl
dHJpZXZlQ2FjaGVzKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBDYWNoZUluZm9zQ2FsbGJhY2smJik7
CkBAIC03NywxOCArNTQsMTEgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlTWF0Y2hpbmdSZWNv
cmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IFdlYkNvcmU6OkNhY2hlUXVlcnlPcHRpb25zJiYsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2sm
Jik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIENhY2hlU3RvcmFnZUVuZ2luZSYgZGVmYXVsdEVu
Z2luZSgpOworICAgIHN0YXRpYyBFbmdpbmUmIGRlZmF1bHRFbmdpbmUoKTsKIAogICAgIHZvaWQg
d3JpdGVDYWNoZXNUb0Rpc2soQ29tcGxldGlvbkNhbGxiYWNrJiYpOwogICAgIHZvaWQgcmVhZENh
Y2hlc0Zyb21EaXNrKENvbXBsZXRpb25DYWxsYmFjayYmKTsKIAotICAgIHN0cnVjdCBDYWNoZSB7
Ci0gICAgICAgIHVpbnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgICAgIFN0cmluZyBuYW1lOwotICAg
ICAgICBWZWN0b3I8UmVjb3JkPiByZWNvcmRzOwotICAgICAgICB1aW50NjRfdCBuZXh0UmVjb3Jk
SWRlbnRpZmllciB7IDAgfTsKLSAgICB9OwotCiAgICAgdXNpbmcgQ2FjaGVPckVycm9yID0gRXhw
ZWN0ZWQ8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxDYWNoZT4sIEVycm9yPjsKICAgICB1c2luZyBD
YWNoZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChDYWNoZU9yRXJyb3ImJik+OwogCkBAIC0xMDcs
MTMgKzc3LDYgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX25leHRDYWNoZUlkZW50aWZpZXIg
eyAwIH07CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UKIAotbmFtZXNwYWNl
IFdURiB7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6Q2FjaGVTdG9yYWdl
RW5naW5lOjpFcnJvcj4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAg
IFdlYktpdDo6Q2FjaGVTdG9yYWdlRW5naW5lOjpFcnJvciwKLSAgICAgICAgV2ViS2l0OjpDYWNo
ZVN0b3JhZ2VFbmdpbmU6OkVycm9yOjpJbnRlcm5hbAotICAgID47Ci19OwotfQorfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ4ZjExOWE2
ZTkxM2Y2NDlmZGMzM2RhMzM1OGU4NmVkYjZkN2Y2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaApA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJD
YWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgQ2FjaGVT
dG9yYWdlIHsKKworc3RydWN0IENhY2hlIHsKKyAgICB1aW50NjRfdCBpZGVudGlmaWVyIHsgMCB9
OworICAgIFN0cmluZyBuYW1lOworICAgIFZlY3RvcjxSZWNvcmQ+IHJlY29yZHM7CisgICAgdWlu
dDY0X3QgbmV4dFJlY29yZElkZW50aWZpZXIgeyAwIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBD
YWNoZVN0b3JhZ2UKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uLmNwcAppbmRleCBiYTUwNjI3YTdlYWUzYWJkMzM2Yjk3MjI1ZjlhNjAxOGEy
OGU5NWFlLi43ZmUyOWExZGQ0OGQ3MGJlYmQyNWY4MDEzODcxYTVhOTQ5ZjZjNTdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5jcHAKQEAgLTI5LDkgKzI5LDEwIEBACiAKICNp
bmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVRdWVyeU9wdGlvbnMuaD4KIAordXNp
bmcgbmFtZXNwYWNlIFdlYktpdDo6Q2FjaGVTdG9yYWdlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKQEAgLTQxLDQy
ICs0Miw0MiBAQCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpDYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZQogCiB2b2lkIENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb246Om9wZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgY2Fj
aGVOYW1lKQogewotICAgIENhY2hlU3RvcmFnZUVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLm9wZW4o
b3JpZ2luLCBjYWNoZU5hbWUsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXMs
IHNlc3Npb25JRCwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJ
ZGVudGlmaWVyT3JFcnJvciYmIHJlc3VsdCkgeworICAgIEVuZ2luZTo6ZnJvbShzZXNzaW9uSUQp
Lm9wZW4ob3JpZ2luLCBjYWNoZU5hbWUsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHRoaXMsIHNlc3Npb25JRCwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlSWRlbnRpZmllck9yRXJy
b3ImJiByZXN1bHQpIHsKICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpPcGVuQ29tcGxldGVkKHJlcXVlc3RJ
ZGVudGlmaWVyLCByZXN1bHQpLCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwogICAgIH0pOwogfQog
CiB2b2lkIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OnJlbW92ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlk
ZW50aWZpZXIpCiB7Ci0gICAgQ2FjaGVTdG9yYWdlRW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmVt
b3ZlKGNhY2hlSWRlbnRpZmllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhp
cywgc2Vzc2lvbklELCByZXF1ZXN0SWRlbnRpZmllcl0oQ2FjaGVTdG9yYWdlRW5naW5lOjpDYWNo
ZUlkZW50aWZpZXJPckVycm9yJiYgcmVzdWx0KSB7CisgICAgRW5naW5lOjpmcm9tKHNlc3Npb25J
RCkucmVtb3ZlKGNhY2hlSWRlbnRpZmllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgdGhpcywgc2Vzc2lvbklELCByZXF1ZXN0SWRlbnRpZmllcl0oQ2FjaGVJZGVudGlmaWVyT3JF
cnJvciYmIHJlc3VsdCkgewogICAgICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUNvbXBsZXRlZChyZXF1
ZXN0SWRlbnRpZmllciwgcmVzdWx0KSwgc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKICAgICB9KTsK
IH0KIAogdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpjYWNoZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBvcmlnaW4pCiB7Ci0gICAgQ2FjaGVTdG9yYWdlRW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmV0
cmlldmVDYWNoZXMob3JpZ2luLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlz
LCBzZXNzaW9uSUQsIG9yaWdpbiwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlU3RvcmFnZUVuZ2lu
ZTo6Q2FjaGVJbmZvc09yRXJyb3ImJiByZXN1bHQpIHsKKyAgICBFbmdpbmU6OmZyb20oc2Vzc2lv
bklEKS5yZXRyaWV2ZUNhY2hlcyhvcmlnaW4sIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIHRoaXMsIHNlc3Npb25JRCwgb3JpZ2luLCByZXF1ZXN0SWRlbnRpZmllcl0oQ2FjaGVJbmZv
c09yRXJyb3ImJiByZXN1bHQpIHsKICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpVcGRhdGVDYWNoZXMocmVx
dWVzdElkZW50aWZpZXIsIHJlc3VsdCksIHNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CiAgICAgfSk7
CiB9CiAKIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmVjb3JkcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBj
YWNoZUlkZW50aWZpZXIpCiB7Ci0gICAgQ2FjaGVTdG9yYWdlRW5naW5lOjpmcm9tKHNlc3Npb25J
RCkucmV0cmlldmVSZWNvcmRzKGNhY2hlSWRlbnRpZmllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgdGhpcywgc2Vzc2lvbklELCBjYWNoZUlkZW50aWZpZXIsIHJlcXVlc3RJZGVu
dGlmaWVyXShDYWNoZVN0b3JhZ2VFbmdpbmU6OlJlY29yZHNPckVycm9yJiYgcmVzdWx0KSB7Cisg
ICAgRW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmV0cmlldmVSZWNvcmRzKGNhY2hlSWRlbnRpZmll
ciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgc2Vzc2lvbklELCBjYWNo
ZUlkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkg
ewogICAgICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OldlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OlVwZGF0ZVJlY29yZHMocmVxdWVzdElkZW50aWZpZXIsIHJl
c3VsdCksIHNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CiAgICAgfSk7CiB9CiAKIHZvaWQgQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6ZGVsZXRlTWF0Y2hpbmdSZWNvcmRzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6
Q2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIENhY2hlU3RvcmFnZUVuZ2luZTo6
ZnJvbShzZXNzaW9uSUQpLmRlbGV0ZU1hdGNoaW5nUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHRoaXMsIHNlc3Npb25JRCwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlU3RvcmFn
ZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYgcmVzdWx0KSB7CisgICAgRW5naW5l
Ojpmcm9tKHNlc3Npb25JRCkuZGVsZXRlTWF0Y2hpbmdSZWNvcmRzKGNhY2hlSWRlbnRpZmllciwg
V1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgdGhpcywgc2Vzc2lvbklELCByZXF1ZXN0SWRlbnRpZmllcl0oUmVjb3JkSWRl
bnRpZmllcnNPckVycm9yJiYgcmVzdWx0KSB7CiAgICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RGVsZXRlUmVj
b3Jkc0NvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0KSwgc2Vzc2lvbklELnNlc3Np
b25JRCgpKTsKICAgICB9KTsKIH0KIAogdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9u
OjpwdXRSZWNvcmRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OlJlY29yZD4mJiByZWNvcmRzKQogewotICAgIENhY2hlU3RvcmFn
ZUVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLnB1dFJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBXVEZN
b3ZlKHJlY29yZHMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzZXNz
aW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyXShDYWNoZVN0b3JhZ2VFbmdpbmU6OlJlY29yZElkZW50
aWZpZXJzT3JFcnJvciYmIHJlc3VsdCkgeworICAgIEVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLnB1
dFJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBXVEZNb3ZlKHJlY29yZHMpLCBbcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzZXNzaW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyXShS
ZWNvcmRJZGVudGlmaWVyc09yRXJyb3ImJiByZXN1bHQpIHsKICAgICAgICAgbV9jb25uZWN0aW9u
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpQ
dXRSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJZGVudGlmaWVyLCByZXN1bHQpLCBzZXNzaW9uSUQu
c2Vzc2lvbklEKCkpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjllYTlmNDk2ZWFjYjNkZDNkMWExMjFlZTQ2MGRj
YTE5YjczZjk2Zi4uNjI5OWI0YjMxYTU3YTYwYTFjNmYxYjg4ODViYTc5ZTUwNzJmYzFkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05
MDYsNiArOTA2LDggQEAKIAkJNDFEQzQ1OUUxRTNEQkRBMTAwQjExRjUxIC8qIFdlYlJUQ1NvY2tl
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURD
NDU5RDFFM0RCQ0YwMDBCMTFGNTEgLyogV2ViUlRDU29ja2V0LmNwcCAqLzsgfTsKIAkJNDFEQzQ1
OUYxRTNEQkRBNTAwQjExRjUxIC8qIFdlYlJUQ1NvY2tldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjMxRTNCRkU3RjAwMUFFNjc4IC8qIFdl
YlJUQ1NvY2tldC5oICovOyB9OwogCQk0MURDNDVBMTFFM0RDNTNGMDBCMTFGNTEgLyogV2ViUlRD
UmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFEQzQ1QTAxRTNEQzUzQzAwQjExRjUxIC8qIFdlYlJUQ1Jlc29sdmVyLmNwcCAqLzsgfTsK
KwkJNDFGQUJEMjkxRjRERTAwMTAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUJEMjcxRjREREZEQzAwNkE2
Qzk3IC8qIENhY2hlU3RvcmFnZS5oICovOyB9OworCQk0MUZBQkQyQTFGNERFMDAxMDA2QTZDOTcg
LyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFCRDI4MUY0RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0b3Jh
Z2VFbmdpbmVDYWNoZS5oICovOyB9OwogCQk0MUZBRjVGNTFFM0MwNjQ5MDAxQUU2NzggLyogV2Vi
UlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxRkFGNUY0MUUzQzA2NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oICovOyB9Owog
CQk0MUZBRjVGODFFM0MxMDIxMDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY2MUUzQzBCNDcw
MDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oICovOyB9OwogCQk0MUZBRjVGOTFFM0MxMDI1
MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjcxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldl
YlJUQ1Jlc29sdmVyLmNwcCAqLzsgfTsKQEAgLTEwMzQsOCArMTAzNiw4IEBACiAJCTUxN0E1MzBC
MUY0NzlFMzYwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzA3MUY0NzlFMzEwMERDREMw
QSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTE3QTUzMEYxRjQ3QTg2MjAw
RENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwRTFGNDdBODQz
MDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJNTE3QTUzMTAxRjQ3QTg2MjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMu
aCAqLzsgfTsKLQkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2
QzAwQzI5NTBEIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTEx
NjNBNDg2QzAwQzI5NTBEIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OworCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFMzE2
M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CiAJCTUxN0RENUJFMTgwREE3RDMw
MDgxNjYwQiAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBTdG9y
YWdlUHJvY2Vzc1Byb3h5LmNwcCAqLzsgfTsKQEAgLTMxNzcsNiArMzE3OSw4IEBACiAJCTQxREM0
NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDU29ja2V0Q2xpZW50Lmg7IHBhdGggPSBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxREM0NTlEMUUzREJDRjAwMEIxMUY1MSAvKiBXZWJSVENTb2Nr
ZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUlRDU29ja2V0
LmNwcDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxREM0NUEwMUUzREM1M0MwMEIxMUY1MSAvKiBXZWJSVENSZXNv
bHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSVENSZXNv
bHZlci5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkFCRDI3MUY0RERGREMwMDZBNkM5NyAvKiBDYWNo
ZVN0b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVTdG9yYWdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkFCRDI4MUY0RERGREMwMDZBNkM5
NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MUZBRjVGMzFFM0JGRTdGMDAxQUU2NzggLyogV2ViUlRDU29ja2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJUQ1NvY2tldC5oOyBwYXRoID0gTmV0d29y
ay93ZWJydGMvV2ViUlRDU29ja2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
RkFGNUY0MUUzQzA2NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSVENSZXNvbHZlci5oOyBwYXRoID0gTmV0d29yay93ZWJy
dGMvV2ViUlRDUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQUY1
RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1Jlc29sdmVyLmg7IHBhdGggPSBOZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzMxOSw4ICszMzIzLDggQEAKIAkJNTE3QTUzMEMxRjQ3OUU5NzAwRENEQzBBIC8qIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0Ns
aWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxN0E1MzBEMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rp
b25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdBNTMwRTFGNDdB
ODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ2xpZW50Q29ubmVjdGlv
bk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxN0NG
MEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBEIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAw
QzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5l
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdE
RDVCQzE4MERBN0QzMDA4MTY2MEIgLyogU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgxOTAsOCArODE5NCwxMCBAQAogCQlFNDg5RDI4
MjFBMEEyQkU4MDA3OEMwNkEgLyogY2FjaGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTQxRkFCRDI3MUY0RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0b3Jh
Z2UuaCAqLywKIAkJCQk0MTg5N0VENjFGNDE1RDg2MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5n
aW5lLmNwcCAqLywKIAkJCQk0MTg5N0VEMjFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdl
RW5naW5lLmggKi8sCisJCQkJNDFGQUJEMjgxRjREREZEQzAwNkE2Qzk3IC8qIENhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlLmggKi8sCiAJCQkJNDE4OTdFRDMxRjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwICovLAogCQkJCTQxODk3RUQ0MUY0MTVEODUwMDE2
RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmggKi8sCiAJCQkJNDE4OTdFRDUx
RjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCkBAIC04NDI0LDcgKzg0MzAsOSBAQAogCQkJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRF
MCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU3MDUxMTFC
RTQxMEU2MDA4NzRBRjEgLyogQmxvY2tTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzA2NUZB
MTI1OTM0NEUwMEU3MTI3OCAvKiBDYWNoZU1vZGVsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MUZB
QkQyOTFGNERFMDAxMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTg5N0VEODFGNDE1RDhBMDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MUZBQkQyQTFGNERFMDAxMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5n
aW5lQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODk3RURBMUY0MTVEOEEwMDE2RkE0MiAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUEy
RTUxRDEyRTRDMDVFMDBCQzQ5NjYgLyogQ0dVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBMkQ5NTZGMTI4NDg1NjQwMDFFQjk2MiAvKiBDaGlsZFByb2Nlc3MuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDI5ZGJiNjRhMTczODhlZThmYjc5NDEyOTVh
ZWY1YTljN2ZmOWRhMzAuLjVjMjgyYmVlZjdiNWUyNjYxZTkxYjk3NmNiODA2YWIxNTZiNDRiNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDo6Q2FjaGVTdG9yYWdlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihXZWJDYWNoZVN0
b3JhZ2VQcm92aWRlciYgcHJvdmlkZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKQEAgLTgy
LDMyICs4NCwzMiBAQCB2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvQmF0Y2hQdXRP
cGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsCiAgICAgY29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OlB1dFJlY29yZHMobV9z
ZXNzaW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlY29yZHMpLCAw
KTsKIH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpvcGVuQ29tcGxldGVkKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSWRlbnRp
Zmllck9yRXJyb3ImJiByZXN1bHQpCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246Om9w
ZW5Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlSWRlbnRpZmllck9y
RXJyb3ImJiByZXN1bHQpCiB7CiAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6b3BlbkNvbXBs
ZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyByZXN1bHQudmFsdWUo
KSA6IDAsICFyZXN1bHQuaGFzVmFsdWUoKSA/IEVycm9yOjpJbnRlcm5hbCA6IEVycm9yOjpOb25l
KTsKIH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVDb21wbGV0ZWQo
dWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJZGVu
dGlmaWVyT3JFcnJvciYmIHJlc3VsdCkKK3ZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
cmVtb3ZlQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZUlkZW50aWZp
ZXJPckVycm9yJiYgcmVzdWx0KQogewogICAgIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92
ZUNvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyByZXN1bHQu
dmFsdWUoKSA6IDAsICFyZXN1bHQuaGFzVmFsdWUoKSA/IEVycm9yOjpJbnRlcm5hbCA6IEVycm9y
OjpOb25lKTsKIH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp1cGRhdGVDYWNo
ZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJ
bmZvc09yRXJyb3ImJiByZXN1bHQpCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnVw
ZGF0ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVJbmZvc09yRXJyb3Im
JiByZXN1bHQpCiB7CiAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6dXBkYXRlQ2FjaGVzKHJl
cXVlc3RJZGVudGlmaWVyLCByZXN1bHQuaGFzVmFsdWUoKSA/IHJlc3VsdC52YWx1ZSgpIDogVmVj
dG9yPENhY2hlSW5mbz4oKSk7CiB9CiAKLXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
dXBkYXRlUmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlRW5n
aW5lOjpSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkKK3ZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjo6dXBkYXRlUmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgUmVjb3Jkc09y
RXJyb3ImJiByZXN1bHQpCiB7CiAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6dXBkYXRlUmVj
b3JkcyhyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyBXVEZNb3ZlKHJlc3Vs
dC52YWx1ZSgpKSA6IFZlY3RvcjxSZWNvcmQ+KCkpOwogfQogCi12b2lkIFdlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OmRlbGV0ZVJlY29yZHNDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYgcmVz
dWx0KQordm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkZWxldGVSZWNvcmRzQ29tcGxl
dGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBSZWNvcmRJZGVudGlmaWVyc09yRXJyb3Im
JiByZXN1bHQpCiB7CiAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZGVsZXRlUmVjb3Jkc0Nv
bXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyByZXN1bHQudmFs
dWUoKSA6IFZlY3Rvcjx1aW50NjRfdD4oKSwgIXJlc3VsdC5oYXNWYWx1ZSgpID8gRXJyb3I6Oklu
dGVybmFsIDogRXJyb3I6Ok5vbmUpOwogfQogCi12b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b246OnB1dFJlY29yZHNDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hl
U3RvcmFnZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYgcmVzdWx0KQordm9pZCBX
ZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpwdXRSZWNvcmRzQ29tcGxldGVkKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBSZWNvcmRJZGVudGlmaWVyc09yRXJyb3ImJiByZXN1bHQpCiB7CiAg
ICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cHV0UmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0SWRl
bnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyByZXN1bHQudmFsdWUoKSA6IFZlY3Rvcjx1aW50
NjRfdD4oKSwgIXJlc3VsdC5oYXNWYWx1ZSgpID8gRXJyb3I6OkludGVybmFsIDogRXJyb3I6Ok5v
bmUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9X
ZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggODY0MTI5ZjliMWM0MWM0M2NlMWFhNGVh
MGUzZWM5NDYyYWU3NjdlZC4uNzNjMWQzN2E5NzhiNTc0MjVlYjc2ZWMyMmY3NDQ1ODkxNzI1MTIw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0yNSwxMSArMjUsMTIgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJDYWNoZVN0b3JhZ2VFbmdpbmUuaCIKKyNpbmNsdWRlICJDYWNoZVN0
b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rp
b247CiBjbGFzcyBEZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0KQEAgLTYwLDEzICs2MSwxMyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZG9CYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCByZXF1
ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyYmKSBmaW5hbDsKICAg
ICB2b2lkIGRvQmF0Y2hQdXRPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFJlY29yZD4mJikgZmluYWw7CiAKLSAgICB2
b2lkIG9wZW5Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFn
ZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyT3JFcnJvciYmKTsKLSAgICB2b2lkIHJlbW92ZUNvbXBs
ZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlRW5naW5lOjpDYWNo
ZUlkZW50aWZpZXJPckVycm9yJiYpOwotICAgIHZvaWQgdXBkYXRlQ2FjaGVzKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSW5mb3NPckVycm9yJiYp
OworICAgIHZvaWQgb3BlbkNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2Fj
aGVTdG9yYWdlOjpDYWNoZUlkZW50aWZpZXJPckVycm9yJiYpOworICAgIHZvaWQgcmVtb3ZlQ29t
cGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2U6OkNhY2hlSWRl
bnRpZmllck9yRXJyb3ImJik7CisgICAgdm9pZCB1cGRhdGVDYWNoZXModWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIENhY2hlU3RvcmFnZTo6Q2FjaGVJbmZvc09yRXJyb3ImJik7CiAKLSAgICB2
b2lkIHVwZGF0ZVJlY29yZHModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFn
ZUVuZ2luZTo6UmVjb3Jkc09yRXJyb3ImJik7Ci0gICAgdm9pZCBkZWxldGVSZWNvcmRzQ29tcGxl
dGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6OlJlY29y
ZElkZW50aWZpZXJzT3JFcnJvciYmKTsKLSAgICB2b2lkIHB1dFJlY29yZHNDb21wbGV0ZWQodWlu
dDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6UmVjb3JkSWRlbnRp
ZmllcnNPckVycm9yJiYpOworICAgIHZvaWQgdXBkYXRlUmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlOjpSZWNvcmRzT3JFcnJvciYmKTsKKyAgICB2b2lkIGRl
bGV0ZVJlY29yZHNDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3Rv
cmFnZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYpOworICAgIHZvaWQgcHV0UmVjb3Jkc0Nv
bXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlOjpSZWNvcmRJ
ZGVudGlmaWVyc09yRXJyb3ImJik7CiAKICAgICBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlciYgbV9w
cm92aWRlcjsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggODc0NGU3NmFmZjI3NzQxMjIwYzk5MTU2MjE3
YmFiMWNmYjA0MmYwOS4uZDMwODYzZmE3N2IwMDZlMjI1MDRkZWM3MGY2Yzg1MWZkZjFjMWVhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nh
Y2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTIxLDExICsyMSwx
MSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uIHsKLSAgICBPcGVuQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJL
aXQ6OkNhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyT3JFcnJvciByZXN1bHQpOwot
ICAgIFJlbW92ZUNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViS2l0OjpD
YWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSWRlbnRpZmllck9yRXJyb3IgcmVzdWx0KTsKLSAgICBV
cGRhdGVDYWNoZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9y
YWdlRW5naW5lOjpDYWNoZUluZm9zT3JFcnJvciByZXN1bHQpOworICAgIE9wZW5Db21wbGV0ZWQo
dWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpDYWNoZUlk
ZW50aWZpZXJPckVycm9yIHJlc3VsdCk7CisgICAgUmVtb3ZlQ29tcGxldGVkKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGVJZGVudGlmaWVyT3JF
cnJvciByZXN1bHQpOworICAgIFVwZGF0ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciwgV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlSW5mb3NPckVycm9yIHJlc3VsdCk7CiAKLSAg
ICBVcGRhdGVSZWNvcmRzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hl
U3RvcmFnZUVuZ2luZTo6UmVjb3Jkc09yRXJyb3IgcmVzdWx0KTsKLSAgICBEZWxldGVSZWNvcmRz
Q29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFn
ZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCk7Ci0gICAgUHV0UmVjb3Jk
c0NvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViS2l0OjpDYWNoZVN0b3Jh
Z2VFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzT3JFcnJvciByZXN1bHQpOworICAgIFVwZGF0ZVJl
Y29yZHModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpS
ZWNvcmRzT3JFcnJvciByZXN1bHQpOworICAgIERlbGV0ZVJlY29yZHNDb21wbGV0ZWQodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpSZWNvcmRJZGVudGlm
aWVyc09yRXJyb3IgcmVzdWx0KTsKKyAgICBQdXRSZWNvcmRzQ29tcGxldGVkKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6UmVjb3JkSWRlbnRpZmllcnNP
ckVycm9yIHJlc3VsdCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318894</attachid>
            <date>2017-08-23 12:04:25 -0700</date>
            <delta_ts>2017-08-23 12:45:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-175885-20170823120424.patch</filename>
            <type>text/plain</type>
            <size>39349</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4NzI0NTI1OGNiMTg5OGZk
OGExNjI0NTI2OTI0OTAwYzcxMmY0YzYuLjg2ZjllNmY4OTRiOWI4MmNjOGU3ZWE2MTJjOThkNmMx
YTY2NzE3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTQgQEAKIDIwMTctMDgtMjMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCisgICAgICAgIFtDYWNoZUFQSV0gSW50cm9kdWNl
IGEgV2ViS2l0OjpDYWNoZVN0b3JhZ2UgbmFtZXNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBB
bGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEludHJvZHVjaW5nIFdlYktpdDo6Q2FjaGVTdG9y
YWdlIG5hbWVzcGFjZS4KKyAgICAgICAgU3BsaXR0aW5nIENhY2hlU3RvcmFnZUVuZ2luZS5oIGlu
IHRocmVlIGZpbGVzLgorICAgICAgICBVcGRhdGluZyBjbGllbnQgY29kZSBhY2NvcmRpbmdseS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6Omdsb2JhbEVuZ2luZU1hcCk6CisgICAgICAg
IChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5lOjpmcm9tKToKKyAgICAgICAgKFdlYktpdDo6
Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OmRlc3Ryb3lFbmdpbmUpOgorICAgICAgICAoV2ViS2l0OjpD
YWNoZVN0b3JhZ2U6OkVuZ2luZTo6ZGVmYXVsdEVuZ2luZSk6CisgICAgICAgIChXZWJLaXQ6OkNh
Y2hlU3RvcmFnZTo6RW5naW5lOjpvcGVuKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdl
OjpFbmdpbmU6OnJlbW92ZSk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5l
OjpyZXRyaWV2ZUNhY2hlcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5l
OjpyZXRyaWV2ZVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2lu
ZTo6cHV0UmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5lOjpk
ZWxldGVNYXRjaGluZ1JlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVu
Z2luZTo6d3JpdGVDYWNoZXNUb0Rpc2spOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6
OkVuZ2luZTo6cmVhZENhY2hlc0Zyb21EaXNrKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9y
YWdlOjpFbmdpbmU6OnJlYWRDYWNoZSk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6
RW5naW5lOjp3cml0ZUNhY2hlUmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFn
ZTo6RW5naW5lOjpyZW1vdmVDYWNoZVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0
b3JhZ2U6OkVuZ2luZTo6Y2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVu
Z2luZTo6Y2FjaGVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdp
bmU6OnF1ZXJ5Q2FjaGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZUNhY2hlLmg6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hl
L0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpvcGVuKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Y2FjaGVzKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OmRlbGV0ZU1hdGNoaW5nUmVjb3Jkcyk6CisgICAgICAg
IChXZWJLaXQ6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OnB1dFJlY29yZHMpOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246Om9wZW5Db21wbGV0ZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVDb21wbGV0ZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp1cGRhdGVDYWNoZXMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp1cGRhdGVSZWNvcmRz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZGVsZXRlUmVj
b3Jkc0NvbXBsZXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b246OnB1dFJlY29yZHNDb21wbGV0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorCisyMDE3LTA4LTIzICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKwogICAgICAgICBbQ2FjaGUgQVBJXSBFbmFibGUgcGVyc2lzdGVu
dCBjb2RlciB0byBlbmNvZGUgRmV0Y2hPcHRpb25zCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU4ODMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc0ZjY3MWYzODk1
ODBhMTY3OWRkN2IzMjExMWJkYWJjYTQ2YWZlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlLmgKQEAgLTAsMCArMSw2NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg+Cisj
aW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVz
cGFjZSBDYWNoZVN0b3JhZ2UgeworCitlbnVtIGNsYXNzIEVycm9yIHsKKyAgICBJbnRlcm5hbAor
fTsKKwordXNpbmcgUmVjb3JkID0gV2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6UmVj
b3JkOworCit1c2luZyBDYWNoZUlkZW50aWZpZXJPckVycm9yID0gRXhwZWN0ZWQ8dWludDY0X3Qs
IEVycm9yPjsKK3VzaW5nIENhY2hlSWRlbnRpZmllckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChD
YWNoZUlkZW50aWZpZXJPckVycm9yJiYpPjsKKwordXNpbmcgQ2FjaGVJbmZvc09yRXJyb3IgPSBF
eHBlY3RlZDxWZWN0b3I8V2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Q2FjaGVJbmZv
PiwgRXJyb3I+OwordXNpbmcgQ2FjaGVJbmZvc0NhbGxiYWNrID0gRnVuY3Rpb248dm9pZChDYWNo
ZUluZm9zT3JFcnJvciYmKT47CisKK3VzaW5nIFJlY29yZHNPckVycm9yID0gRXhwZWN0ZWQ8VmVj
dG9yPFJlY29yZD4sIEVycm9yPjsKK3VzaW5nIFJlY29yZHNDYWxsYmFjayA9IEZ1bmN0aW9uPHZv
aWQoUmVjb3Jkc09yRXJyb3ImJik+OworCit1c2luZyBSZWNvcmRJZGVudGlmaWVyc09yRXJyb3Ig
PSBFeHBlY3RlZDxWZWN0b3I8dWludDY0X3Q+LCBFcnJvcj47Cit1c2luZyBSZWNvcmRJZGVudGlm
aWVyc0NhbGxiYWNrID0gRnVuY3Rpb248dm9pZChSZWNvcmRJZGVudGlmaWVyc09yRXJyb3ImJik+
OworCit1c2luZyBDb21wbGV0aW9uQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9u
YWw8RXJyb3I+JiYpPjsKKworfSAvLyBuYW1lc3BhY2UgQ2FjaGVTdG9yYWdlCisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVycm9yPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVycm9yLAorICAgICAg
ICBXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RXJyb3I6OkludGVybmFsCisgICAgPjsKK307Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFn
ZUVuZ2luZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZS5jcHAKaW5kZXggNWU4OTJiZWQ2Zjk3MTQ1NmU1YmE4NTYyNTljMjk1ZGYxYTY0
MzJiMC4uMzZhYTY3M2I0MzUzNDgxODgwMjc3YjJlNjI5NzFlNDRhZjljNDJlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lLmNwcApAQCAtMzQsMzUgKzM0LDM3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1z
dGF0aWMgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPENhY2hlU3RvcmFn
ZUVuZ2luZT4+JiBnbG9iYWxFbmdpbmVNYXAoKQorbmFtZXNwYWNlIENhY2hlU3RvcmFnZSB7CisK
K3N0YXRpYyBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8RW5naW5lPj4m
IGdsb2JhbEVuZ2luZU1hcCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8
UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZVN0b3JhZ2VFbmdpbmU+Pj4gbWFw
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6
OnVuaXF1ZV9wdHI8RW5naW5lPj4+IG1hcDsKICAgICByZXR1cm4gbWFwOwogfQogCi1DYWNoZVN0
b3JhZ2VFbmdpbmUmIENhY2hlU3RvcmFnZUVuZ2luZTo6ZnJvbShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCitFbmdpbmUmIEVuZ2luZTo6ZnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
CiAgICAgaWYgKHNlc3Npb25JRCA9PSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
KQogICAgICAgICByZXR1cm4gZGVmYXVsdEVuZ2luZSgpOwogCiAgICAgcmV0dXJuICpnbG9iYWxF
bmdpbmVNYXAoKS5lbnN1cmUoc2Vzc2lvbklELCBbXSB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPENhY2hlU3RvcmFnZUVuZ2luZT4oKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8RW5naW5lPigpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KIAotdm9pZCBD
YWNoZVN0b3JhZ2VFbmdpbmU6OmRlc3Ryb3lFbmdpbmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQordm9pZCBFbmdpbmU6OmRlc3Ryb3lFbmdpbmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ewogICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSk7CiAgICAgZ2xvYmFsRW5naW5lTWFwKCkucmVtb3ZlKHNlc3Npb25JRCk7CiB9CiAKLUNh
Y2hlU3RvcmFnZUVuZ2luZSYgQ2FjaGVTdG9yYWdlRW5naW5lOjpkZWZhdWx0RW5naW5lKCkKK0Vu
Z2luZSYgRW5naW5lOjpkZWZhdWx0RW5naW5lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8c3RkOjp1bmlxdWVfcHRyPENhY2hlU3RvcmFnZUVuZ2luZT4+IGRlZmF1bHRFbmdpbmUgPSB7
IHN0ZDo6bWFrZV91bmlxdWU8Q2FjaGVTdG9yYWdlRW5naW5lPigpIH07CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxFbmdpbmU+PiBkZWZhdWx0RW5naW5lID0geyBz
dGQ6Om1ha2VfdW5pcXVlPEVuZ2luZT4oKSB9OwogICAgIHJldHVybiAqZGVmYXVsdEVuZ2luZS5n
ZXQoKTsKIH0KIAotdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6Om9wZW4oY29uc3QgU3RyaW5nJiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lLCBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYm
IGNhbGxiYWNrKQordm9pZCBFbmdpbmU6Om9wZW4oY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgY2FjaGVOYW1lLCBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmIGNhbGxiYWNrKQog
ewogICAgIHJlYWRDYWNoZXNGcm9tRGlzayhvcmlnaW4sIFt0aGlzLCBjYWNoZU5hbWUsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKENhY2hlc09yRXJyb3ImJiBjYWNoZXNPckVycm9yKSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKCFjYWNoZXNPckVycm9yLmhhc1ZhbHVlKCkpIHsKQEAgLTg5
LDcgKzkxLDcgQEAgdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6Om9wZW4oY29uc3QgU3RyaW5nJiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lLCBDYWMKICAgICB9KTsKIH0KIAotdm9pZCBD
YWNoZVN0b3JhZ2VFbmdpbmU6OnJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIENhY2hl
SWRlbnRpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEVuZ2luZTo6cmVtb3ZlKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJiBjYWxsYmFjaykK
IHsKICAgICBzdGQ6Om9wdGlvbmFsPENhY2hlPiByZW1vdmVkQ2FjaGU7CiAgICAgZm9yIChhdXRv
JiBjYWNoZXMgOiBtX2NhY2hlcy52YWx1ZXMoKSkgewpAQCAtMTE0LDcgKzExNiw3IEBAIHZvaWQg
Q2FjaGVTdG9yYWdlRW5naW5lOjpyZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNo
ZUlkZW50aWZpZXJDYWxsYmFjCiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5l
OjpyZXRyaWV2ZUNhY2hlcyhjb25zdCBTdHJpbmcmIG9yaWdpbiwgQ2FjaGVJbmZvc0NhbGxiYWNr
JiYgY2FsbGJhY2spCit2b2lkIEVuZ2luZTo6cmV0cmlldmVDYWNoZXMoY29uc3QgU3RyaW5nJiBv
cmlnaW4sIENhY2hlSW5mb3NDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIHJlYWRDYWNoZXNG
cm9tRGlzayhvcmlnaW4sIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShDYWNo
ZXNPckVycm9yJiYgY2FjaGVzT3JFcnJvcikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghY2FjaGVz
T3JFcnJvci5oYXNWYWx1ZSgpKSB7CkBAIC0xMzMsNyArMTM1LDcgQEAgdm9pZCBDYWNoZVN0b3Jh
Z2VFbmdpbmU6OnJldHJpZXZlQ2FjaGVzKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBDYWNoZUluZm9z
Q2FsbGJhY2sKICAgICB9KTsKIH0KIAotdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnJldHJpZXZl
UmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFJlY29yZHNDYWxsYmFjayYmIGNhbGxi
YWNrKQordm9pZCBFbmdpbmU6OnJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIHJlYWRDYWNoZShjYWNoZUlk
ZW50aWZpZXIsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShDYWNoZU9yRXJyb3ImJiBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdC5oYXNWYWx1ZSgpKSB7CkBAIC0x
NTIsNyArMTU0LDcgQEAgdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnJldHJpZXZlUmVjb3Jkcyh1
aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFJlY29yZHNDYWxsYmEKICAgICB9KTsKIH0KIAotdm9p
ZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnB1dFJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVy
LCBWZWN0b3I8UmVjb3JkPiYmIHJlY29yZHMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3ZvaWQgRW5naW5lOjpwdXRSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
ciwgVmVjdG9yPFJlY29yZD4mJiByZWNvcmRzLCBSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYg
Y2FsbGJhY2spCiB7CiAgICAgcmVhZENhY2hlKGNhY2hlSWRlbnRpZmllciwgW3RoaXMsIGNhY2hl
SWRlbnRpZmllciwgcmVjb3JkcyA9IFdURk1vdmUocmVjb3JkcyksIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKENhY2hlT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghcmVzdWx0Lmhhc1ZhbHVlKCkpIHsKQEAgLTE2Niw3ICsxNjgsNyBAQCB2b2lkIENhY2hlU3Rv
cmFnZUVuZ2luZTo6cHV0UmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxS
ZWNvcmQ+JiYgcgogICAgICAgICBWZWN0b3I8dWludDY0X3Q+IHJlY29yZElkZW50aWZpZXJzOwog
ICAgICAgICByZWNvcmRJZGVudGlmaWVycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlY29yZHMu
c2l6ZSgpKTsKICAgICAgICAgZm9yIChhdXRvJiByZWNvcmQgOiByZWNvcmRzKSB7Ci0gICAgICAg
ICAgICBhdXRvIG1hdGNoaW5nUmVjb3JkcyA9IENhY2hlU3RvcmFnZUVuZ2luZTo6cXVlcnlDYWNo
ZShjYWNoZS5yZWNvcmRzLCByZWNvcmQucmVxdWVzdCwgb3B0aW9ucyk7CisgICAgICAgICAgICBh
dXRvIG1hdGNoaW5nUmVjb3JkcyA9IEVuZ2luZTo6cXVlcnlDYWNoZShjYWNoZS5yZWNvcmRzLCBy
ZWNvcmQucmVxdWVzdCwgb3B0aW9ucyk7CiAgICAgICAgICAgICBpZiAobWF0Y2hpbmdSZWNvcmRz
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIHJlY29yZC5pZGVudGlmaWVyID0gKytjYWNo
ZS5uZXh0UmVjb3JkSWRlbnRpZmllcjsKICAgICAgICAgICAgICAgICByZWNvcmRJZGVudGlmaWVy
cy51bmNoZWNrZWRBcHBlbmQocmVjb3JkLmlkZW50aWZpZXIpOwpAQCAtMTkxLDcgKzE5Myw3IEBA
IHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpwdXRSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRp
ZmllciwgVmVjdG9yPFJlY29yZD4mJiByCiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdl
RW5naW5lOjpkZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0
aW9ucyYmIG9wdGlvbnMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3Zv
aWQgRW5naW5lOjpkZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3JlOjpDYWNoZVF1ZXJ5
T3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykK
IHsKICAgICByZWFkQ2FjaGUoY2FjaGVJZGVudGlmaWVyLCBbdGhpcywgY2FjaGVJZGVudGlmaWVy
LCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyks
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKENhY2hlT3JFcnJvciYmIHJlc3VsdCkgbXV0
YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0Lmhhc1ZhbHVlKCkpIHsKQEAgLTIzMCwxMyArMjMy
LDEzIEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpkZWxldGVNYXRjaGluZ1JlY29yZHModWlu
dDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlCiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVT
dG9yYWdlRW5naW5lOjp3cml0ZUNhY2hlc1RvRGlzayhGdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9u
YWw8RXJyb3I+JiYpPiYmIGNhbGxiYWNrKQordm9pZCBFbmdpbmU6OndyaXRlQ2FjaGVzVG9EaXNr
KEZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxFcnJvcj4mJik+JiYgY2FsbGJhY2spCiB7CiAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB3cml0aW5nLgogICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9w
dCk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpyZWFkQ2FjaGVzRnJvbURpc2soY29u
c3QgU3RyaW5nJiBvcmlnaW4sIENhY2hlc0NhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEVuZ2lu
ZTo6cmVhZENhY2hlc0Zyb21EaXNrKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBDYWNoZXNDYWxsYmFj
ayYmIGNhbGxiYWNrKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcmVhZGluZy4KIApAQCAt
MjQ3LDcgKzI0OSw3IEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjpyZWFkQ2FjaGVzRnJvbURp
c2soY29uc3QgU3RyaW5nJiBvcmlnaW4sIENhY2hlc0NhbGxiYWNrCiAgICAgY2FsbGJhY2soc3Rk
OjpyZWZlcmVuY2Vfd3JhcHBlcjxWZWN0b3I8Q2FjaGU+PiB7IGNhY2hlcyB9KTsKIH0KIAotdm9p
ZCBDYWNoZVN0b3JhZ2VFbmdpbmU6OnJlYWRDYWNoZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIs
IENhY2hlQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRW5naW5lOjpyZWFkQ2FjaGUodWludDY0
X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNoZUNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgLy8g
RklYTUU6IEltcGxlbWVudCByZWFkaW5nLgogICAgIGF1dG8qIGNhY2hlID0gdGhpcy0+Y2FjaGUo
Y2FjaGVJZGVudGlmaWVyKTsKQEAgLTI1OCwxOSArMjYwLDE5IEBAIHZvaWQgQ2FjaGVTdG9yYWdl
RW5naW5lOjpyZWFkQ2FjaGUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNoZUNhbGxiYWNr
JiYgY2FsCiAgICAgY2FsbGJhY2soc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxDYWNoZT4geyAqY2Fj
aGUgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lOjp3cml0ZUNhY2hlUmVjb3Jkcyh1
aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3Rvcjx1aW50NjRfdD4mJiByZWNvcmRzSWRlbnRp
ZmllcnMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRW5naW5l
Ojp3cml0ZUNhY2hlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3Rvcjx1aW50
NjRfdD4mJiByZWNvcmRzSWRlbnRpZmllcnMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBj
YWxsYmFjaykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHdyaXRpbmcuCiAgICAgY2FsbGJh
Y2soV1RGTW92ZShyZWNvcmRzSWRlbnRpZmllcnMpKTsKIH0KIAotdm9pZCBDYWNoZVN0b3JhZ2VF
bmdpbmU6OnJlbW92ZUNhY2hlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3Rv
cjx1aW50NjRfdD4mJiByZWNvcmRzSWRlbnRpZmllcnMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJh
Y2smJiBjYWxsYmFjaykKK3ZvaWQgRW5naW5lOjpyZW1vdmVDYWNoZVJlY29yZHModWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8dWludDY0X3Q+JiYgcmVjb3Jkc0lkZW50aWZpZXJzLCBS
ZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB3cml0aW5nLgogICAgIGNhbGxiYWNrKFdURk1vdmUocmVjb3Jkc0lkZW50aWZpZXJz
KSk7CiB9CiAKLUNhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGUqIENhY2hlU3RvcmFnZUVuZ2luZTo6
Y2FjaGUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKQorQ2FjaGUqIEVuZ2luZTo6Y2FjaGUodWlu
dDY0X3QgY2FjaGVJZGVudGlmaWVyKQogewogICAgIENhY2hlKiByZXN1bHQgPSBudWxscHRyOwog
ICAgIGZvciAoYXV0byYgY2FjaGVzIDogbV9jYWNoZXMudmFsdWVzKCkpIHsKQEAgLTI4OCw3ICsy
OTAsNyBAQCBDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlKiBDYWNoZVN0b3JhZ2VFbmdpbmU6OmNh
Y2hlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1W
ZWN0b3I8dWludDY0X3Q+IENhY2hlU3RvcmFnZUVuZ2luZTo6cXVlcnlDYWNoZShjb25zdCBWZWN0
b3I8UmVjb3JkPiYgcmVjb3JkcywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKK1ZlY3Rvcjx1
aW50NjRfdD4gRW5naW5lOjpxdWVyeUNhY2hlKGNvbnN0IFZlY3RvcjxSZWNvcmQ+JiByZWNvcmRz
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6
OkNhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmICghb3B0aW9ucy5pZ25vcmVN
ZXRob2QgJiYgcmVxdWVzdC5odHRwTWV0aG9kKCkgIT0gIkdFVCIpCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC0zMDEsNCArMzAzLDcgQEAgVmVjdG9yPHVpbnQ2NF90PiBDYWNoZVN0b3JhZ2VFbmdp
bmU6OnF1ZXJ5Q2FjaGUoY29uc3QgVmVjdG9yPFJlY29yZD4mIHJlY29yZHMsIGMKICAgICByZXR1
cm4gcmVzdWx0czsKIH0KIAotfQorfSAvLyBuYW1lc3BhY2UgQ2FjaGVTdG9yYWdlCisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaAppbmRleCBiZTliOTk0YTY4MjViM2NiNWUy
MjJkOTQzODJlZDVkZjllMWViNDVjLi4wZjFiYTRjMjk3NGY1ODA4MGNjOWQ4YThhM2RkMGRjMGY3
NjI0NWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgKQEAgLTI1LDEyICsyNSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29y
ZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNp
bmNsdWRlICJDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CkBAIC00MiwzMiArMzgs
MTMgQEAgY2xhc3MgU2Vzc2lvbklEOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CituYW1lc3BhY2UgQ2FjaGVTdG9yYWdlIHsKIAot
Y2xhc3MgQ2FjaGVTdG9yYWdlRW5naW5lIHsKK2NsYXNzIEVuZ2luZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIENhY2hlU3RvcmFnZUVuZ2luZSYgZnJvbShQQUw6OlNlc3Npb25JRCk7CisgICAgc3Rh
dGljIEVuZ2luZSYgZnJvbShQQUw6OlNlc3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJv
eUVuZ2luZShQQUw6OlNlc3Npb25JRCk7CiAKLSAgICBlbnVtIGNsYXNzIEVycm9yIHsKLSAgICAg
ICAgSW50ZXJuYWwKLSAgICB9OwotICAgIHVzaW5nIFJlY29yZCA9IFdlYkNvcmU6OkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb246OlJlY29yZDsKLQotICAgIHVzaW5nIENhY2hlSWRlbnRpZmllck9yRXJy
b3IgPSBFeHBlY3RlZDx1aW50NjRfdCwgRXJyb3I+OwotICAgIHVzaW5nIENhY2hlSWRlbnRpZmll
ckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChDYWNoZUlkZW50aWZpZXJPckVycm9yJiYpPjsKLQot
ICAgIHVzaW5nIENhY2hlSW5mb3NPckVycm9yID0gRXhwZWN0ZWQ8VmVjdG9yPFdlYkNvcmU6OkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OkNhY2hlSW5mbz4sIEVycm9yPjsKLSAgICB1c2luZyBDYWNo
ZUluZm9zQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKENhY2hlSW5mb3NPckVycm9yJiYpPjsKLQot
ICAgIHVzaW5nIFJlY29yZHNPckVycm9yID0gRXhwZWN0ZWQ8VmVjdG9yPFJlY29yZD4sIEVycm9y
PjsKLSAgICB1c2luZyBSZWNvcmRzQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFJlY29yZHNPckVy
cm9yJiYpPjsKLQotICAgIHVzaW5nIFJlY29yZElkZW50aWZpZXJzT3JFcnJvciA9IEV4cGVjdGVk
PFZlY3Rvcjx1aW50NjRfdD4sIEVycm9yPjsKLSAgICB1c2luZyBSZWNvcmRJZGVudGlmaWVyc0Nh
bGxiYWNrID0gRnVuY3Rpb248dm9pZChSZWNvcmRJZGVudGlmaWVyc09yRXJyb3ImJik+OwotCi0g
ICAgdXNpbmcgQ29tcGxldGlvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChzdGQ6Om9wdGlvbmFs
PEVycm9yPiYmKT47Ci0KICAgICB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgY2FjaGVOYW1lLCBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKTsKICAgICB2b2lk
IHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIENhY2hlSWRlbnRpZmllckNhbGxiYWNr
JiYpOwogICAgIHZvaWQgcmV0cmlldmVDYWNoZXMoY29uc3QgU3RyaW5nJiBvcmlnaW4sIENhY2hl
SW5mb3NDYWxsYmFjayYmKTsKQEAgLTc3LDE0ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRl
bGV0ZU1hdGNoaW5nUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBSZWNvcmRJZGVu
dGlmaWVyc0NhbGxiYWNrJiYpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBDYWNoZVN0b3JhZ2VF
bmdpbmUmIGRlZmF1bHRFbmdpbmUoKTsKLQotICAgIHN0cnVjdCBDYWNoZSB7Ci0gICAgICAgIHVp
bnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgICAgIFN0cmluZyBuYW1lOwotICAgICAgICBWZWN0b3I8
UmVjb3JkPiByZWNvcmRzOwotICAgICAgICB1aW50NjRfdCBuZXh0UmVjb3JkSWRlbnRpZmllciB7
IDAgfTsKLSAgICB9OworICAgIHN0YXRpYyBFbmdpbmUmIGRlZmF1bHRFbmdpbmUoKTsKIAogICAg
IHZvaWQgd3JpdGVDYWNoZXNUb0Rpc2soQ29tcGxldGlvbkNhbGxiYWNrJiYpOwogCkBAIC0xMDgs
MTMgKzc4LDYgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX25leHRDYWNoZUlkZW50aWZpZXIg
eyAwIH07CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UKIAotbmFtZXNwYWNl
IFdURiB7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6Q2FjaGVTdG9yYWdl
RW5naW5lOjpFcnJvcj4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAg
IFdlYktpdDo6Q2FjaGVTdG9yYWdlRW5naW5lOjpFcnJvciwKLSAgICAgICAgV2ViS2l0OjpDYWNo
ZVN0b3JhZ2VFbmdpbmU6OkVycm9yOjpJbnRlcm5hbAotICAgID47Ci19OwotfQorfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ4ZjExOWE2
ZTkxM2Y2NDlmZGMzM2RhMzM1OGU4NmVkYjZkN2Y2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaApA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJD
YWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgQ2FjaGVT
dG9yYWdlIHsKKworc3RydWN0IENhY2hlIHsKKyAgICB1aW50NjRfdCBpZGVudGlmaWVyIHsgMCB9
OworICAgIFN0cmluZyBuYW1lOworICAgIFZlY3RvcjxSZWNvcmQ+IHJlY29yZHM7CisgICAgdWlu
dDY0X3QgbmV4dFJlY29yZElkZW50aWZpZXIgeyAwIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBD
YWNoZVN0b3JhZ2UKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uLmNwcAppbmRleCBiYTUwNjI3YTdlYWUzYWJkMzM2Yjk3MjI1ZjlhNjAxOGEy
OGU5NWFlLi43ZmUyOWExZGQ0OGQ3MGJlYmQyNWY4MDEzODcxYTVhOTQ5ZjZjNTdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5jcHAKQEAgLTI5LDkgKzI5LDEwIEBACiAKICNp
bmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVRdWVyeU9wdGlvbnMuaD4KIAordXNp
bmcgbmFtZXNwYWNlIFdlYktpdDo6Q2FjaGVTdG9yYWdlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKQEAgLTQxLDQy
ICs0Miw0MiBAQCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpDYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZQogCiB2b2lkIENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb246Om9wZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgY2Fj
aGVOYW1lKQogewotICAgIENhY2hlU3RvcmFnZUVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLm9wZW4o
b3JpZ2luLCBjYWNoZU5hbWUsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXMs
IHNlc3Npb25JRCwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJ
ZGVudGlmaWVyT3JFcnJvciYmIHJlc3VsdCkgeworICAgIEVuZ2luZTo6ZnJvbShzZXNzaW9uSUQp
Lm9wZW4ob3JpZ2luLCBjYWNoZU5hbWUsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHRoaXMsIHNlc3Npb25JRCwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlSWRlbnRpZmllck9yRXJy
b3ImJiByZXN1bHQpIHsKICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpPcGVuQ29tcGxldGVkKHJlcXVlc3RJ
ZGVudGlmaWVyLCByZXN1bHQpLCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwogICAgIH0pOwogfQog
CiB2b2lkIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OnJlbW92ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlk
ZW50aWZpZXIpCiB7Ci0gICAgQ2FjaGVTdG9yYWdlRW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmVt
b3ZlKGNhY2hlSWRlbnRpZmllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhp
cywgc2Vzc2lvbklELCByZXF1ZXN0SWRlbnRpZmllcl0oQ2FjaGVTdG9yYWdlRW5naW5lOjpDYWNo
ZUlkZW50aWZpZXJPckVycm9yJiYgcmVzdWx0KSB7CisgICAgRW5naW5lOjpmcm9tKHNlc3Npb25J
RCkucmVtb3ZlKGNhY2hlSWRlbnRpZmllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgdGhpcywgc2Vzc2lvbklELCByZXF1ZXN0SWRlbnRpZmllcl0oQ2FjaGVJZGVudGlmaWVyT3JF
cnJvciYmIHJlc3VsdCkgewogICAgICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUNvbXBsZXRlZChyZXF1
ZXN0SWRlbnRpZmllciwgcmVzdWx0KSwgc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKICAgICB9KTsK
IH0KIAogdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpjYWNoZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBvcmlnaW4pCiB7Ci0gICAgQ2FjaGVTdG9yYWdlRW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmV0
cmlldmVDYWNoZXMob3JpZ2luLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlz
LCBzZXNzaW9uSUQsIG9yaWdpbiwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlU3RvcmFnZUVuZ2lu
ZTo6Q2FjaGVJbmZvc09yRXJyb3ImJiByZXN1bHQpIHsKKyAgICBFbmdpbmU6OmZyb20oc2Vzc2lv
bklEKS5yZXRyaWV2ZUNhY2hlcyhvcmlnaW4sIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIHRoaXMsIHNlc3Npb25JRCwgb3JpZ2luLCByZXF1ZXN0SWRlbnRpZmllcl0oQ2FjaGVJbmZv
c09yRXJyb3ImJiByZXN1bHQpIHsKICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpVcGRhdGVDYWNoZXMocmVx
dWVzdElkZW50aWZpZXIsIHJlc3VsdCksIHNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CiAgICAgfSk7
CiB9CiAKIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmVjb3JkcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBj
YWNoZUlkZW50aWZpZXIpCiB7Ci0gICAgQ2FjaGVTdG9yYWdlRW5naW5lOjpmcm9tKHNlc3Npb25J
RCkucmV0cmlldmVSZWNvcmRzKGNhY2hlSWRlbnRpZmllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgdGhpcywgc2Vzc2lvbklELCBjYWNoZUlkZW50aWZpZXIsIHJlcXVlc3RJZGVu
dGlmaWVyXShDYWNoZVN0b3JhZ2VFbmdpbmU6OlJlY29yZHNPckVycm9yJiYgcmVzdWx0KSB7Cisg
ICAgRW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmV0cmlldmVSZWNvcmRzKGNhY2hlSWRlbnRpZmll
ciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgc2Vzc2lvbklELCBjYWNo
ZUlkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkg
ewogICAgICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OldlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OlVwZGF0ZVJlY29yZHMocmVxdWVzdElkZW50aWZpZXIsIHJl
c3VsdCksIHNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CiAgICAgfSk7CiB9CiAKIHZvaWQgQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6ZGVsZXRlTWF0Y2hpbmdSZWNvcmRzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6
Q2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIENhY2hlU3RvcmFnZUVuZ2luZTo6
ZnJvbShzZXNzaW9uSUQpLmRlbGV0ZU1hdGNoaW5nUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHRoaXMsIHNlc3Npb25JRCwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlU3RvcmFn
ZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYgcmVzdWx0KSB7CisgICAgRW5naW5l
Ojpmcm9tKHNlc3Npb25JRCkuZGVsZXRlTWF0Y2hpbmdSZWNvcmRzKGNhY2hlSWRlbnRpZmllciwg
V1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgdGhpcywgc2Vzc2lvbklELCByZXF1ZXN0SWRlbnRpZmllcl0oUmVjb3JkSWRl
bnRpZmllcnNPckVycm9yJiYgcmVzdWx0KSB7CiAgICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6RGVsZXRlUmVj
b3Jkc0NvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0KSwgc2Vzc2lvbklELnNlc3Np
b25JRCgpKTsKICAgICB9KTsKIH0KIAogdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9u
OjpwdXRSZWNvcmRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OlJlY29yZD4mJiByZWNvcmRzKQogewotICAgIENhY2hlU3RvcmFn
ZUVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLnB1dFJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBXVEZN
b3ZlKHJlY29yZHMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzZXNz
aW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyXShDYWNoZVN0b3JhZ2VFbmdpbmU6OlJlY29yZElkZW50
aWZpZXJzT3JFcnJvciYmIHJlc3VsdCkgeworICAgIEVuZ2luZTo6ZnJvbShzZXNzaW9uSUQpLnB1
dFJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBXVEZNb3ZlKHJlY29yZHMpLCBbcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzZXNzaW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyXShS
ZWNvcmRJZGVudGlmaWVyc09yRXJyb3ImJiByZXN1bHQpIHsKICAgICAgICAgbV9jb25uZWN0aW9u
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpQ
dXRSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJZGVudGlmaWVyLCByZXN1bHQpLCBzZXNzaW9uSUQu
c2Vzc2lvbklEKCkpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjllYTlmNDk2ZWFjYjNkZDNkMWExMjFlZTQ2MGRj
YTE5YjczZjk2Zi4uNjI5OWI0YjMxYTU3YTYwYTFjNmYxYjg4ODViYTc5ZTUwNzJmYzFkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05
MDYsNiArOTA2LDggQEAKIAkJNDFEQzQ1OUUxRTNEQkRBMTAwQjExRjUxIC8qIFdlYlJUQ1NvY2tl
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURD
NDU5RDFFM0RCQ0YwMDBCMTFGNTEgLyogV2ViUlRDU29ja2V0LmNwcCAqLzsgfTsKIAkJNDFEQzQ1
OUYxRTNEQkRBNTAwQjExRjUxIC8qIFdlYlJUQ1NvY2tldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjMxRTNCRkU3RjAwMUFFNjc4IC8qIFdl
YlJUQ1NvY2tldC5oICovOyB9OwogCQk0MURDNDVBMTFFM0RDNTNGMDBCMTFGNTEgLyogV2ViUlRD
UmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFEQzQ1QTAxRTNEQzUzQzAwQjExRjUxIC8qIFdlYlJUQ1Jlc29sdmVyLmNwcCAqLzsgfTsK
KwkJNDFGQUJEMjkxRjRERTAwMTAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUJEMjcxRjREREZEQzAwNkE2
Qzk3IC8qIENhY2hlU3RvcmFnZS5oICovOyB9OworCQk0MUZBQkQyQTFGNERFMDAxMDA2QTZDOTcg
LyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFCRDI4MUY0RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0b3Jh
Z2VFbmdpbmVDYWNoZS5oICovOyB9OwogCQk0MUZBRjVGNTFFM0MwNjQ5MDAxQUU2NzggLyogV2Vi
UlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxRkFGNUY0MUUzQzA2NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oICovOyB9Owog
CQk0MUZBRjVGODFFM0MxMDIxMDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY2MUUzQzBCNDcw
MDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oICovOyB9OwogCQk0MUZBRjVGOTFFM0MxMDI1
MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjcxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldl
YlJUQ1Jlc29sdmVyLmNwcCAqLzsgfTsKQEAgLTEwMzQsOCArMTAzNiw4IEBACiAJCTUxN0E1MzBC
MUY0NzlFMzYwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzA3MUY0NzlFMzEwMERDREMw
QSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTE3QTUzMEYxRjQ3QTg2MjAw
RENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwRTFGNDdBODQz
MDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJNTE3QTUzMTAxRjQ3QTg2MjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMu
aCAqLzsgfTsKLQkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2
QzAwQzI5NTBEIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTEx
NjNBNDg2QzAwQzI5NTBEIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OworCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdDRjBFMzE2
M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CiAJCTUxN0RENUJFMTgwREE3RDMw
MDgxNjYwQiAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBTdG9y
YWdlUHJvY2Vzc1Byb3h5LmNwcCAqLzsgfTsKQEAgLTMxNzcsNiArMzE3OSw4IEBACiAJCTQxREM0
NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDU29ja2V0Q2xpZW50Lmg7IHBhdGggPSBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxREM0NTlEMUUzREJDRjAwMEIxMUY1MSAvKiBXZWJSVENTb2Nr
ZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUlRDU29ja2V0
LmNwcDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxREM0NUEwMUUzREM1M0MwMEIxMUY1MSAvKiBXZWJSVENSZXNv
bHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSVENSZXNv
bHZlci5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkFCRDI3MUY0RERGREMwMDZBNkM5NyAvKiBDYWNo
ZVN0b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVTdG9yYWdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkFCRDI4MUY0RERGREMwMDZBNkM5
NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MUZBRjVGMzFFM0JGRTdGMDAxQUU2NzggLyogV2ViUlRDU29ja2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJUQ1NvY2tldC5oOyBwYXRoID0gTmV0d29y
ay93ZWJydGMvV2ViUlRDU29ja2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
RkFGNUY0MUUzQzA2NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSVENSZXNvbHZlci5oOyBwYXRoID0gTmV0d29yay93ZWJy
dGMvV2ViUlRDUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQUY1
RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1Jlc29sdmVyLmg7IHBhdGggPSBOZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzMxOSw4ICszMzIzLDggQEAKIAkJNTE3QTUzMEMxRjQ3OUU5NzAwRENEQzBBIC8qIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0Ns
aWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxN0E1MzBEMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NsaWVudENvbm5lY3Rp
b25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdBNTMwRTFGNDdB
ODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ2xpZW50Q29ubmVjdGlv
bk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxN0NG
MEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBEIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAw
QzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5l
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdE
RDVCQzE4MERBN0QzMDA4MTY2MEIgLyogU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgxOTAsOCArODE5NCwxMCBAQAogCQlFNDg5RDI4
MjFBMEEyQkU4MDA3OEMwNkEgLyogY2FjaGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTQxRkFCRDI3MUY0RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0b3Jh
Z2UuaCAqLywKIAkJCQk0MTg5N0VENjFGNDE1RDg2MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5n
aW5lLmNwcCAqLywKIAkJCQk0MTg5N0VEMjFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdl
RW5naW5lLmggKi8sCisJCQkJNDFGQUJEMjgxRjREREZEQzAwNkE2Qzk3IC8qIENhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlLmggKi8sCiAJCQkJNDE4OTdFRDMxRjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwICovLAogCQkJCTQxODk3RUQ0MUY0MTVEODUwMDE2
RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmggKi8sCiAJCQkJNDE4OTdFRDUx
RjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCkBAIC04NDI0LDcgKzg0MzAsOSBAQAogCQkJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRF
MCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU3MDUxMTFC
RTQxMEU2MDA4NzRBRjEgLyogQmxvY2tTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzA2NUZB
MTI1OTM0NEUwMEU3MTI3OCAvKiBDYWNoZU1vZGVsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MUZB
QkQyOTFGNERFMDAxMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTg5N0VEODFGNDE1RDhBMDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MUZBQkQyQTFGNERFMDAxMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5n
aW5lQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODk3RURBMUY0MTVEOEEwMDE2RkE0MiAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUEy
RTUxRDEyRTRDMDVFMDBCQzQ5NjYgLyogQ0dVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBMkQ5NTZGMTI4NDg1NjQwMDFFQjk2MiAvKiBDaGlsZFByb2Nlc3MuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDI5ZGJiNjRhMTczODhlZThmYjc5NDEyOTVh
ZWY1YTljN2ZmOWRhMzAuLjVjMjgyYmVlZjdiNWUyNjYxZTkxYjk3NmNiODA2YWIxNTZiNDRiNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDo6Q2FjaGVTdG9yYWdlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihXZWJDYWNoZVN0
b3JhZ2VQcm92aWRlciYgcHJvdmlkZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKQEAgLTgy
LDMyICs4NCwzMiBAQCB2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvQmF0Y2hQdXRP
cGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsCiAgICAgY29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OlB1dFJlY29yZHMobV9z
ZXNzaW9uSUQsIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlY29yZHMpLCAw
KTsKIH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpvcGVuQ29tcGxldGVkKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSWRlbnRp
Zmllck9yRXJyb3ImJiByZXN1bHQpCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246Om9w
ZW5Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlSWRlbnRpZmllck9y
RXJyb3ImJiByZXN1bHQpCiB7CiAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6b3BlbkNvbXBs
ZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyByZXN1bHQudmFsdWUo
KSA6IDAsICFyZXN1bHQuaGFzVmFsdWUoKSA/IEVycm9yOjpJbnRlcm5hbCA6IEVycm9yOjpOb25l
KTsKIH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVDb21wbGV0ZWQo
dWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJZGVu
dGlmaWVyT3JFcnJvciYmIHJlc3VsdCkKK3ZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
cmVtb3ZlQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZUlkZW50aWZp
ZXJPckVycm9yJiYgcmVzdWx0KQogewogICAgIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92
ZUNvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyByZXN1bHQu
dmFsdWUoKSA6IDAsICFyZXN1bHQuaGFzVmFsdWUoKSA/IEVycm9yOjpJbnRlcm5hbCA6IEVycm9y
OjpOb25lKTsKIH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp1cGRhdGVDYWNo
ZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJ
bmZvc09yRXJyb3ImJiByZXN1bHQpCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnVw
ZGF0ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVJbmZvc09yRXJyb3Im
JiByZXN1bHQpCiB7CiAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6dXBkYXRlQ2FjaGVzKHJl
cXVlc3RJZGVudGlmaWVyLCByZXN1bHQuaGFzVmFsdWUoKSA/IHJlc3VsdC52YWx1ZSgpIDogVmVj
dG9yPENhY2hlSW5mbz4oKSk7CiB9CiAKLXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
dXBkYXRlUmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlRW5n
aW5lOjpSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkKK3ZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjo6dXBkYXRlUmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgUmVjb3Jkc09y
RXJyb3ImJiByZXN1bHQpCiB7CiAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6dXBkYXRlUmVj
b3JkcyhyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyBXVEZNb3ZlKHJlc3Vs
dC52YWx1ZSgpKSA6IFZlY3RvcjxSZWNvcmQ+KCkpOwogfQogCi12b2lkIFdlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OmRlbGV0ZVJlY29yZHNDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYgcmVz
dWx0KQordm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkZWxldGVSZWNvcmRzQ29tcGxl
dGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBSZWNvcmRJZGVudGlmaWVyc09yRXJyb3Im
JiByZXN1bHQpCiB7CiAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZGVsZXRlUmVjb3Jkc0Nv
bXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyByZXN1bHQudmFs
dWUoKSA6IFZlY3Rvcjx1aW50NjRfdD4oKSwgIXJlc3VsdC5oYXNWYWx1ZSgpID8gRXJyb3I6Oklu
dGVybmFsIDogRXJyb3I6Ok5vbmUpOwogfQogCi12b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b246OnB1dFJlY29yZHNDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hl
U3RvcmFnZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYgcmVzdWx0KQordm9pZCBX
ZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpwdXRSZWNvcmRzQ29tcGxldGVkKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBSZWNvcmRJZGVudGlmaWVyc09yRXJyb3ImJiByZXN1bHQpCiB7CiAg
ICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cHV0UmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0SWRl
bnRpZmllciwgcmVzdWx0Lmhhc1ZhbHVlKCkgPyByZXN1bHQudmFsdWUoKSA6IFZlY3Rvcjx1aW50
NjRfdD4oKSwgIXJlc3VsdC5oYXNWYWx1ZSgpID8gRXJyb3I6OkludGVybmFsIDogRXJyb3I6Ok5v
bmUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9X
ZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggODY0MTI5ZjliMWM0MWM0M2NlMWFhNGVh
MGUzZWM5NDYyYWU3NjdlZC4uNzNjMWQzN2E5NzhiNTc0MjVlYjc2ZWMyMmY3NDQ1ODkxNzI1MTIw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0yNSwxMSArMjUsMTIgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJDYWNoZVN0b3JhZ2VFbmdpbmUuaCIKKyNpbmNsdWRlICJDYWNoZVN0
b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rp
b247CiBjbGFzcyBEZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0KQEAgLTYwLDEzICs2MSwxMyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZG9CYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCByZXF1
ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyYmKSBmaW5hbDsKICAg
ICB2b2lkIGRvQmF0Y2hQdXRPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFJlY29yZD4mJikgZmluYWw7CiAKLSAgICB2
b2lkIG9wZW5Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFn
ZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyT3JFcnJvciYmKTsKLSAgICB2b2lkIHJlbW92ZUNvbXBs
ZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlRW5naW5lOjpDYWNo
ZUlkZW50aWZpZXJPckVycm9yJiYpOwotICAgIHZvaWQgdXBkYXRlQ2FjaGVzKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSW5mb3NPckVycm9yJiYp
OworICAgIHZvaWQgb3BlbkNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2Fj
aGVTdG9yYWdlOjpDYWNoZUlkZW50aWZpZXJPckVycm9yJiYpOworICAgIHZvaWQgcmVtb3ZlQ29t
cGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2U6OkNhY2hlSWRl
bnRpZmllck9yRXJyb3ImJik7CisgICAgdm9pZCB1cGRhdGVDYWNoZXModWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIENhY2hlU3RvcmFnZTo6Q2FjaGVJbmZvc09yRXJyb3ImJik7CiAKLSAgICB2
b2lkIHVwZGF0ZVJlY29yZHModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFn
ZUVuZ2luZTo6UmVjb3Jkc09yRXJyb3ImJik7Ci0gICAgdm9pZCBkZWxldGVSZWNvcmRzQ29tcGxl
dGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBDYWNoZVN0b3JhZ2VFbmdpbmU6OlJlY29y
ZElkZW50aWZpZXJzT3JFcnJvciYmKTsKLSAgICB2b2lkIHB1dFJlY29yZHNDb21wbGV0ZWQodWlu
dDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3RvcmFnZUVuZ2luZTo6UmVjb3JkSWRlbnRp
ZmllcnNPckVycm9yJiYpOworICAgIHZvaWQgdXBkYXRlUmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlOjpSZWNvcmRzT3JFcnJvciYmKTsKKyAgICB2b2lkIGRl
bGV0ZVJlY29yZHNDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIENhY2hlU3Rv
cmFnZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYpOworICAgIHZvaWQgcHV0UmVjb3Jkc0Nv
bXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgQ2FjaGVTdG9yYWdlOjpSZWNvcmRJ
ZGVudGlmaWVyc09yRXJyb3ImJik7CiAKICAgICBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlciYgbV9w
cm92aWRlcjsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggODc0NGU3NmFmZjI3NzQxMjIwYzk5MTU2MjE3
YmFiMWNmYjA0MmYwOS4uZDMwODYzZmE3N2IwMDZlMjI1MDRkZWM3MGY2Yzg1MWZkZjFjMWVhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Nh
Y2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTIxLDExICsyMSwx
MSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uIHsKLSAgICBPcGVuQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJL
aXQ6OkNhY2hlU3RvcmFnZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyT3JFcnJvciByZXN1bHQpOwot
ICAgIFJlbW92ZUNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViS2l0OjpD
YWNoZVN0b3JhZ2VFbmdpbmU6OkNhY2hlSWRlbnRpZmllck9yRXJyb3IgcmVzdWx0KTsKLSAgICBV
cGRhdGVDYWNoZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9y
YWdlRW5naW5lOjpDYWNoZUluZm9zT3JFcnJvciByZXN1bHQpOworICAgIE9wZW5Db21wbGV0ZWQo
dWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpDYWNoZUlk
ZW50aWZpZXJPckVycm9yIHJlc3VsdCk7CisgICAgUmVtb3ZlQ29tcGxldGVkKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGVJZGVudGlmaWVyT3JF
cnJvciByZXN1bHQpOworICAgIFVwZGF0ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciwgV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlSW5mb3NPckVycm9yIHJlc3VsdCk7CiAKLSAg
ICBVcGRhdGVSZWNvcmRzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hl
U3RvcmFnZUVuZ2luZTo6UmVjb3Jkc09yRXJyb3IgcmVzdWx0KTsKLSAgICBEZWxldGVSZWNvcmRz
Q29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFn
ZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCk7Ci0gICAgUHV0UmVjb3Jk
c0NvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViS2l0OjpDYWNoZVN0b3Jh
Z2VFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzT3JFcnJvciByZXN1bHQpOworICAgIFVwZGF0ZVJl
Y29yZHModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpS
ZWNvcmRzT3JFcnJvciByZXN1bHQpOworICAgIERlbGV0ZVJlY29yZHNDb21wbGV0ZWQodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpSZWNvcmRJZGVudGlm
aWVyc09yRXJyb3IgcmVzdWx0KTsKKyAgICBQdXRSZWNvcmRzQ29tcGxldGVkKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6UmVjb3JkSWRlbnRpZmllcnNP
ckVycm9yIHJlc3VsdCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>