<?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>217673</bug_id>
          
          <creation_ts>2020-10-13 15:04:25 -0700</creation_ts>
          <short_desc>Add support for VP9 Profile 2 (10-bit color) in WebRTC</short_desc>
          <delta_ts>2020-10-26 20:59:30 -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>WebRTC</component>
          <version>Safari 14</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>iOS 13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218221</see_also>
          <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="Justin Uberti">juberti</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697429</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Uberti">juberti</who>
    <bug_when>2020-10-13 15:04:25 -0700</bug_when>
    <thetext>I believe the new iOS14 VideoToolbox support for VP9 includes HDR capabilities. If so, could Safari add another VP9 format (beyond the existing experimental VP9 support) with profile-id=2?

e.g.,

m=video 9 UDP/TLS/RTP/SAVPF 96 97
a=rtpmap:96 VP9/90000
a=fmtp:96 profile-id=0
a=rtpmap:97 VP9/90000
a=fmtp:97 profile-id=2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697634</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-14 01:37:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/70283885&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697635</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-14 01:41:16 -0700</bug_when>
    <thetext>First step is probably to make use of VP9 VideoToolbox decoding support when available.

Do you know how much profile-id=2 is supported in other browsers (decoders and/or encoders)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697745</commentid>
    <comment_count>3</comment_count>
    <who name="Justin Uberti">juberti</who>
    <bug_when>2020-10-14 09:37:36 -0700</bug_when>
    <thetext>I agree with the sequencing you propose. The current experimental setting to enable the existing VP9 support has been useful.

Regarding higher profiles:
- Chromium supports decoding profiles 1 and 2 in MSE and supports decoding profile 2 in WebRTC. I don&apos;t think it&apos;s fully plumbed for encoding yet though.
- Firefox supports decoding profiles 1 and 2 in MSE.

MSE support tester: https://googlechrome.github.io/samples/media/vp9-codec-string.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700622</commentid>
    <comment_count>4</comment_count>
      <attachid>412092</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-22 06:43:46 -0700</bug_when>
    <thetext>Created attachment 412092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700673</commentid>
    <comment_count>5</comment_count>
      <attachid>412106</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-22 09:22:19 -0700</bug_when>
    <thetext>Created attachment 412106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700752</commentid>
    <comment_count>6</comment_count>
      <attachid>412106</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-10-22 11:17:14 -0700</bug_when>
    <thetext>Comment on attachment 412106
Patch

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

r=me once the bots are happy.

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:85
&gt; +    NSDictionary&lt;NSString *, NSString *&gt; *profile0 = @{
&gt; +      @&quot;profile-id&quot; : @&quot;0&quot;,
&gt; +    };
&gt; +    RTCVideoCodecInfo *vp9InfoProfile0 = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name parameters: profile0];

Nit: can you do this inline?

    RTCVideoCodecInfo *vp9InfoProfile0 = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name parameters: @{ @&quot;profile-id&quot; : @&quot;0&quot; }];

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:91
&gt; +    RTCVideoCodecInfo *vp9InfoProfile2 = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name parameters: profile2];

Ditto.

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:83
&gt; +    RTCVideoCodecInfo *vp9InfoProfile0 = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name parameters: profile0];

Ditto.

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:89
&gt; +    RTCVideoCodecInfo *vp9InfoProfile2 = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name parameters: profile2];

Ditto.

&gt; LayoutTests/webrtc/vp9-profile2.html:22
&gt; +}, &quot;VP9 profile 2in getCapabilities&quot;);

s/profile 2in/profile 2 in/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701363</commentid>
    <comment_count>7</comment_count>
      <attachid>412293</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-26 01:27:16 -0700</bug_when>
    <thetext>Created attachment 412293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701414</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-26 05:50:48 -0700</bug_when>
    <thetext>Committed r268971: &lt;https://trac.webkit.org/changeset/268971&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412293.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412092</attachid>
            <date>2020-10-22 06:43:46 -0700</date>
            <delta_ts>2020-10-22 09:22:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217673-20201022154344.patch</filename>
            <type>text/plain</type>
            <size>29543</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Nzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBjYzM3YWRkZTJiZmFkMTM4YWFiZjc4MWRiNzkzYzQwN2EzZmM2MGJlLi4yYTkz
YWQ4ZDlkN2Q2ZjkyYjYxY2I0Yzc5YzlkZWRmMGEwMDQ1YWYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0xMC0yMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFZQOSBQ
cm9maWxlIDIgKDEwLWJpdCBjb2xvcikgaW4gV2ViUlRDCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwMjgzODg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBWUDkgcHJvZmlsZSAwIGFuZCAyLgorICAgICAgICBUaGlzIHJl
cXVpcmVzIGNvcnJlY3RseSBoYW5kbGluZyAxMC1iaXQgZGVjb2RlZCBidWZmZXJzIGFzIGlzIGRv
bmUgYnkgdGhlIE1TRSBjb2RlIHBhdGguCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3
ZWJydGMuaU9TLmV4cDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2lt
LmV4cDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbToKKyAgICAgICAg
KHdlYnJ0Yzo6cGl4ZWxCdWZmZXJGcm9tRnJhbWUpOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
c2RrL1dlYktpdC9XZWJLaXRWUDlEZWNvZGVyLmNwcDoKKyAgICAgICAgKHdlYnJ0Yzo6V2ViS2l0
VlA5RGVjb2RlclJlY2VpdmVyOjpEZWNvZGVkKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJWUDkuaDoKKyAgICAgICAgKiBT
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJWUDku
bW06CisgICAgICAgICgrW1JUQ1ZpZGVvRW5jb2RlclZQOSB2cDlFbmNvZGVyOl0pOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZh
dWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBzdXBwb3J0ZWRDb2RlY3NdKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rv
cnkubToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVk
Q29kZWNzV2l0aEgyNjU6dnA5Ol0pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9FbmNvZGVy
RmFjdG9yeSBjcmVhdGVFbmNvZGVyOl0pOgorCiAyMDIwLTEwLTIxICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJSVEMgVlA5IERlY29kZXIgc2hvdWxkIGJl
IGFibGUgdG8gdXNlIFZUQgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFkYzY5YzMyOWNhZjY1MTM2Yjc0M2I1Yzcw
ZmE3ZmZmMGI3NmFjNjQuLjA5NTBiMmVjM2FjYzkyMWQ1OTQ5MDI1ZWQxNzEzZGVlNTAwZDAxNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0xMC0yMiAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFZQOSBQcm9maWxl
IDIgKDEwLWJpdCBjb2xvcikgaW4gV2ViUlRDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMjgz
ODg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElu
IGNhc2Ugc29mdHdhcmUgVlA5IGRlY29kZWQgYnVmZmVyIGlzIDEwIGJpdHMsIHdlIHVzZSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyMTBCaVBsYW5hckZ1bGxSYW5nZS4KKworICAgICAgICBU
ZXN0OiB3ZWJydGMvdnA5LXByb2ZpbGUyLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
OjpwaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyRnJvbVZpZGVvRnJhbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVQaXhlbEJ1ZmZlclBvb2wpOgorCiAyMDIwLTEwLTIyICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2Ugd29y
a2xldCBkZXN0aW5hdGlvbnMgYW5kIGFsbG93IHRvIGZldGNoIG1vZHVsZXMgd2l0aCBDT1JTIGJh
c2VkIG9uIGRlc3RpbmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM5NjRlMGFlNzFjMDllODlkOTJjMTgyMWU5
ZTgyYzUxMjBjMDkwNDEuLjI5MWJmNmNhMjNiYjE1NGNmY2E5NzMzMGRhYzViZTQ5OWNlZmFjNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjIgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBWUDkgUHJvZmlsZSAy
ICgxMC1iaXQgY29sb3IpIGluIFdlYlJUQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjczCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDI4Mzg4
NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpMaWJXZWJSVENDb2RlY3M6OnBpeGVsQnVmZmVyUG9vbCk6CisKIDIwMjAtMTAtMjIgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSB3b3JrbGV0
IGRlc3RpbmF0aW9ucyBhbmQgYWxsb3cgdG8gZmV0Y2ggbW9kdWxlcyB3aXRoIENPUlMgYmFzZWQg
b24gZGVzdGluYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9D
b25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAppbmRleCA2MWVhNjZkY2FiM2Mx
NjAwNDFiOWNiODg0ZTU3OWJlNjBkYzJkM2Q2Li5hYjI3ZDBmMTk0ZWQ2NmZmZDljY2VjMWMzZmQ1
NjQ5NWFkYjZiNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29u
ZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCkBAIC0xMDksNyArMTA5LDcg
QEAgX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2
NUVOU185V2ViS2l0VlA5RQogX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxv
d2VkRWIKIF9fWk42d2VicnRjMzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKIF9f
Wk42d2VicnRjMjRyZWdpc3RlcldlYktpdFZQOURlY29kZXJFdgotX19aTjZ3ZWJydGMyMHBpeGVs
QnVmZmVyRnJvbUZyYW1lRVJLTlNfMTBWaWRlb0ZyYW1lRVJLTlN0M19fMThmdW5jdGlvbklGUDEw
X19DVkJ1ZmZlcm1tRUVFCitfX1pONndlYnJ0YzIwcGl4ZWxCdWZmZXJGcm9tRnJhbWVFUktOU18x
MFZpZGVvRnJhbWVFUktOU3QzX18xOGZ1bmN0aW9uSUZQMTBfX0NWQnVmZmVybW1OU18xMEJ1ZmZl
clR5cGVFRUVFCiBfX1pONndlYnJ0YzE4cGl4ZWxCdWZmZXJUb0ZyYW1lRVAxMF9fQ1ZCdWZmZXIK
IF9fWk4zcnRjMjRCYXNpY1BhY2tldFNvY2tldEZhY3RvcnkxOUNyZWF0ZUFzeW5jUmVzb2x2ZXJF
dgogX19aTjNydGMyNEJhc2ljUGFja2V0U29ja2V0RmFjdG9yeUMyRXYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2lt
LmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJy
dGMuaU9Tc2ltLmV4cAppbmRleCA2MWVhNjZkY2FiM2MxNjAwNDFiOWNiODg0ZTU3OWJlNjBkYzJk
M2Q2Li5hYjI3ZDBmMTk0ZWQ2NmZmZDljY2VjMWMzZmQ1NjQ5NWFkYjZiNGZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
U3NpbS5leHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25z
L2xpYndlYnJ0Yy5pT1NzaW0uZXhwCkBAIC0xMDksNyArMTA5LDcgQEAgX19aTjZ3ZWJydGMyNmNy
ZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RQog
X19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9fWk42d2VicnRj
MzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKIF9fWk42d2VicnRjMjRyZWdpc3Rl
cldlYktpdFZQOURlY29kZXJFdgotX19aTjZ3ZWJydGMyMHBpeGVsQnVmZmVyRnJvbUZyYW1lRVJL
TlNfMTBWaWRlb0ZyYW1lRVJLTlN0M19fMThmdW5jdGlvbklGUDEwX19DVkJ1ZmZlcm1tRUVFCitf
X1pONndlYnJ0YzIwcGl4ZWxCdWZmZXJGcm9tRnJhbWVFUktOU18xMFZpZGVvRnJhbWVFUktOU3Qz
X18xOGZ1bmN0aW9uSUZQMTBfX0NWQnVmZmVybW1OU18xMEJ1ZmZlclR5cGVFRUVFCiBfX1pONndl
YnJ0YzE4cGl4ZWxCdWZmZXJUb0ZyYW1lRVAxMF9fQ1ZCdWZmZXIKIF9fWk4zcnRjMjRCYXNpY1Bh
Y2tldFNvY2tldEZhY3RvcnkxOUNyZWF0ZUFzeW5jUmVzb2x2ZXJFdgogX19aTjNydGMyNEJhc2lj
UGFja2V0U29ja2V0RmFjdG9yeUMyRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cAppbmRleCA0ZWVk
ZDZlZTk5NmNiNmI4YTYxOTAzNjE3MDU2ZDc0ZmJlM2EyZDY5Li45Njg2MDc2OGM5M2FmM2E0OTNl
ZmFkODQ2M2FiYzFmNTBmZDQ4MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwCkBAIC0xMDks
NyArMTA5LDcgQEAgX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEw
V2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RQogX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVu
Y29kZXJBbGxvd2VkRWIKIF9fWk42d2VicnRjMzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFi
bGVkRWIKIF9fWk42d2VicnRjMjRyZWdpc3RlcldlYktpdFZQOURlY29kZXJFdgotX19aTjZ3ZWJy
dGMyMHBpeGVsQnVmZmVyRnJvbUZyYW1lRVJLTlNfMTBWaWRlb0ZyYW1lRVJLTlN0M19fMThmdW5j
dGlvbklGUDEwX19DVkJ1ZmZlcm1tRUVFCitfX1pONndlYnJ0YzIwcGl4ZWxCdWZmZXJGcm9tRnJh
bWVFUktOU18xMFZpZGVvRnJhbWVFUktOU3QzX18xOGZ1bmN0aW9uSUZQMTBfX0NWQnVmZmVybW1O
U18xMEJ1ZmZlclR5cGVFRUVFCiBfX1pONndlYnJ0YzE4cGl4ZWxCdWZmZXJUb0ZyYW1lRVAxMF9f
Q1ZCdWZmZXIKIF9fWk4zcnRjMjRCYXNpY1BhY2tldFNvY2tldEZhY3RvcnkxOUNyZWF0ZUFzeW5j
UmVzb2x2ZXJFdgogX19aTjNydGMyNEJhc2ljUGFja2V0U29ja2V0RmFjdG9yeUMyRXYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCmluZGV4IDA3ZDVjZTM3NGJmNjI4
MGJiYzdhMmNlNGUwZTAwMjkxYjJiYmJlOWYuLmQ3ZDJiZDBlODJlMjBhYmRjNWZmZWFmZTQwMjQ0
YjA0NjAyYjExNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMu
aApAQCAtNTUsOSArNTUsOCBAQCBib29sIGlzSDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQoKTsK
IHZvaWQgc2V0SDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZChib29sKTsKIGJvb2wgaXNIMjY0
TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkKCk7CiAKLUNWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXJGcm9tRnJhbWUoY29uc3QgVmlkZW9GcmFtZSYsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Q1ZQaXhl
bEJ1ZmZlclJlZihzaXplX3QsIHNpemVfdCk+Jik7CitlbnVtIGNsYXNzIEJ1ZmZlclR5cGUgeyBJ
NDIwLCBJMDEwIH07CitDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyRnJvbUZyYW1lKGNvbnN0
IFZpZGVvRnJhbWUmLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPENWUGl4ZWxCdWZmZXJSZWYoc2l6ZV90
LCBzaXplX3QsIEJ1ZmZlclR5cGUpPiYpOwogcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6Vmlk
ZW9GcmFtZUJ1ZmZlcj4gcGl4ZWxCdWZmZXJUb0ZyYW1lKENWUGl4ZWxCdWZmZXJSZWYpOwogCi1D
VlBpeGVsQnVmZmVyUG9vbFJlZiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBz
aXplX3QgaGVpZ2h0KTsKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW0gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxp
dGllcy5tbQppbmRleCA1NDM0ZTM3NTgxOTE4MTJkOWYxYTM2NGQyYzM4YmI3ZTU1YmZjYzgyLi44
ZGRjNmEzZDhiZWFiYzBlZGNmM2E4NjI4MTk2YjFiYzIyYzU0NWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0
aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgIldlYktpdFV0aWxpdGllcy5oIgogCiAjaW5jbHVkZSAibmF0aXZlL3NyYy9vYmpjX2ZyYW1l
X2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKICNpbmNsdWRlICJ0aGly
ZF9wYXJ0eS9saWJ5dXYvaW5jbHVkZS9saWJ5dXYvY29udmVydF9mcm9tLmgiCiAjaW5jbHVkZSAi
bGlieXV2L2NwdV9pZC5oIgogI2luY2x1ZGUgImxpYnl1di9yb3cuaCIKQEAgLTE5NywyMSArMTk4
LDMwIEBAIHN0YXRpYyBib29sIENvcHlWaWRlb0ZyYW1lVG9QaXhlbEJ1ZmZlcihjb25zdCB3ZWJy
dGM6OkkwMTBCdWZmZXJJbnRlcmZhY2UqIGZyYW1lCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUNW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGcm9tRnJhbWUoY29uc3QgVmlkZW9GcmFtZSYgZnJh
bWUsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Q1ZQaXhlbEJ1ZmZlclJlZihzaXplX3QsIHNpemVfdCk+
JiBtYWtlUGl4ZWxCdWZmZXIpCitDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyRnJvbUZyYW1l
KGNvbnN0IFZpZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPENWUGl4ZWxCdWZm
ZXJSZWYoc2l6ZV90LCBzaXplX3QsIEJ1ZmZlclR5cGUpPiYgbWFrZVBpeGVsQnVmZmVyKQogewot
ICAgIGlmIChmcmFtZS52aWRlb19mcmFtZV9idWZmZXIoKS0+dHlwZSgpICE9IFZpZGVvRnJhbWVC
dWZmZXI6OlR5cGU6OmtOYXRpdmUpIHsKLSAgICAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IG1ha2VQ
aXhlbEJ1ZmZlcihmcmFtZS52aWRlb19mcmFtZV9idWZmZXIoKS0+d2lkdGgoKSwgZnJhbWUudmlk
ZW9fZnJhbWVfYnVmZmVyKCktPmhlaWdodCgpKTsKLSAgICAgICAgaWYgKCFwaXhlbEJ1ZmZlcikK
KyAgICBhdXRvIGJ1ZmZlciA9IGZyYW1lLnZpZGVvX2ZyYW1lX2J1ZmZlcigpOworICAgIGlmIChi
dWZmZXItPnR5cGUoKSAhPSBWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlOjprTmF0aXZlKSB7CisgICAg
ICAgIGF1dG8gdHlwZSA9IGJ1ZmZlci0+dHlwZSgpOworICAgICAgICBpZiAodHlwZSAhPSBWaWRl
b0ZyYW1lQnVmZmVyOjpUeXBlOjprSTQyMCAmJiB0eXBlICE9IFZpZGVvRnJhbWVCdWZmZXI6OlR5
cGU6OmtJMDEwKSB7CisgICAgICAgICAgICBSVENfTE9HKFdBUk5JTkcpIDw8ICJWaWRlbyBmcmFt
ZSBidWZmZXIgdHlwZSBpcyBub3QgZXhwZWN0ZWQuIjsKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICB9CiAKLSAgICAgICAgaWYgKGZyYW1lLnZpZGVvX2ZyYW1lX2J1ZmZlcigp
LT50eXBlKCkgPT0gVmlkZW9GcmFtZUJ1ZmZlcjo6VHlwZTo6a0k0MjApCi0gICAgICAgICAgICBD
b3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIoZnJhbWUudmlkZW9fZnJhbWVfYnVmZmVyKCktPkdl
dEk0MjAoKSwgcGl4ZWxCdWZmZXIpOwotICAgICAgICBlbHNlIGlmIChmcmFtZS52aWRlb19mcmFt
ZV9idWZmZXIoKS0+dHlwZSgpID09IFZpZGVvRnJhbWVCdWZmZXI6OlR5cGU6OmtJMDEwKQotICAg
ICAgICAgICAgQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGZyYW1lLnZpZGVvX2ZyYW1lX2J1
ZmZlcigpLT5HZXRJMDEwKCksIHBpeGVsQnVmZmVyKTsKKyAgICAgICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IG1ha2VQaXhlbEJ1ZmZlcihidWZmZXItPndpZHRoKCksIGJ1ZmZlci0+aGVpZ2h0KCksIHR5
cGUgPT0gVmlkZW9GcmFtZUJ1ZmZlcjo6VHlwZTo6a0k0MjAgPyBCdWZmZXJUeXBlOjpJNDIwIDog
QnVmZmVyVHlwZTo6STAxMCk7CisgICAgICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAgICAgICAg
ICAgIFJUQ19MT0coV0FSTklORykgPDwgIlBpeGVsIGJ1ZmZlciBjcmVhdGlvbiBmYWlsZWQuIjsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHR5
cGUgPT0gVmlkZW9GcmFtZUJ1ZmZlcjo6VHlwZTo6a0k0MjApCisgICAgICAgICAgICBDb3B5Vmlk
ZW9GcmFtZVRvUGl4ZWxCdWZmZXIoYnVmZmVyLT5HZXRJNDIwKCksIHBpeGVsQnVmZmVyKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGJ1ZmZl
ci0+R2V0STAxMCgpLCBwaXhlbEJ1ZmZlcik7CiAgICAgICAgIHJldHVybiBwaXhlbEJ1ZmZlcjsK
ICAgICB9CiAKLSAgICBhdXRvICpmcmFtZUJ1ZmZlciA9IHN0YXRpY19jYXN0PE9iakNGcmFtZUJ1
ZmZlcio+KGZyYW1lLnZpZGVvX2ZyYW1lX2J1ZmZlcigpLmdldCgpKS0+d3JhcHBlZF9mcmFtZV9i
dWZmZXIoKTsKKyAgICBhdXRvICpmcmFtZUJ1ZmZlciA9IHN0YXRpY19jYXN0PE9iakNGcmFtZUJ1
ZmZlcio+KGJ1ZmZlci5nZXQoKSktPndyYXBwZWRfZnJhbWVfYnVmZmVyKCk7CiAgICAgaWYgKCFb
ZnJhbWVCdWZmZXIgaXNLaW5kT2ZDbGFzczpbUlRDQ1ZQaXhlbEJ1ZmZlciBjbGFzc11dKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjE5LDI5ICsyMjksNCBAQCBDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyRnJvbUZyYW1lKGNvbnN0IFZpZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBz
dGQ6OmZ1bmN0aQogICAgIHJldHVybiBydGNQaXhlbEJ1ZmZlci5waXhlbEJ1ZmZlcjsKIH0KIAot
Q1ZQaXhlbEJ1ZmZlclBvb2xSZWYgY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aWR0aCwg
c2l6ZV90IGhlaWdodCkKLXsKLSAgICBjb25zdCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0ID0g
a0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKLSAgICBhdXRv
IHBpeGVsQXR0cmlidXRlcyA9IEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBp
eGVsQnVmZmVyV2lkdGhLZXk6IEAod2lkdGgpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcg
KilrQ1ZQaXhlbEJ1ZmZlckhlaWdodEtleTogQChoZWlnaHQpLAotICAgICAgICAoX19icmlkZ2Ug
TlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTogQCh2aWRlb0NhcHR1
cmVGb3JtYXQpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckNH
SW1hZ2VDb21wYXRpYmlsaXR5S2V5OiBATk8sCi0jaWYgZGVmaW5lZChXRUJSVENfSU9TKQotICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEZvcm1hdE9wZW5HTEVTQ29tcGF0aWJp
bGl0eSA6IEBZRVMsCi0jZWxzZQotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhl
bEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAotI2VuZGlmCi0gICAgICAgIChf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6
IEB7IH0KLSAgICB9OwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7
Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBudWxscHRyLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQXR0cmlidXRl
cywgJnBvb2wpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBwb29sOwotfQotCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFZQOURlY29kZXIuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRWUDlEZWNvZGVyLmNwcAppbmRleCBlMmQ3NTQyNTczYTBk
MDBlMDEzNjRkNjZhMmQzZTI2NDZjMWUxMjhmLi5iMGQ4MjVlMzYxZmFkMzhlOWQ5NDQ4NDVmNGMw
NTRkZWExZGU3MzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFZQOURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VlA5RGVj
b2Rlci5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBPU1N0YXR1cyBXZWJLaXRWUDlEZWNvZGVyUmVj
ZWl2ZXI6OmRlY29kZXJGYWlsZWQoaW50IGVycm9yKQogCiBpbnQzMl90IFdlYktpdFZQOURlY29k
ZXJSZWNlaXZlcjo6RGVjb2RlZChWaWRlb0ZyYW1lJiBmcmFtZSkKIHsKLSAgICBhdXRvIHBpeGVs
QnVmZmVyID0gcGl4ZWxCdWZmZXJGcm9tRnJhbWUoZnJhbWUsIFt0aGlzXShzaXplX3Qgd2lkdGgs
IHNpemVfdCBoZWlnaHQpIC0+IENWUGl4ZWxCdWZmZXJSZWYgeworICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBwaXhlbEJ1ZmZlckZyb21GcmFtZShmcmFtZSwgW3RoaXNdKHNpemVfdCB3aWR0aCwgc2l6
ZV90IGhlaWdodCwgQnVmZmVyVHlwZSkgLT4gQ1ZQaXhlbEJ1ZmZlclJlZiB7CiAgICAgICAgIENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOwogICAgICAgICBpZiAoQ1ZQaXhl
bEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3BpeGVs
QnVmZmVyUG9vbCwgJnBpeGVsQnVmZmVyKSA9PSBrQ1ZSZXR1cm5TdWNjZXNzKQogICAgICAgICAg
ICAgcmV0dXJuIHBpeGVsQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5j
b2RlclZQOS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5oCmluZGV4IDgyMjY0NzU5
YzZhZjY2MmM0M2M1Y2RkOTA2OWRjYjliMWI5NjNmNDMuLjFkZGUwMmVlMjFkY2QzZTI5YTg5OTFm
ZmZhYTM2ZTUyYzY2NmVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJW
UDkuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9hcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyVlA5LmgKQEAgLTExLDYgKzExLDcg
QEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCiAjaW1wb3J0ICJSVENNYWNy
b3MuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVvQ29kZWNJbmZvLmgiCiAjaW1wb3J0ICJSVENWaWRlb0Vu
Y29kZXIuaCIKIAogUlRDX09CSkNfRVhQT1JUCkBAIC0yMSw2ICsyMiw2IEBAIF9fYXR0cmlidXRl
X18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENWaWRlb0VuY29kZXJWUDkiKSkpCiAgKiBSVENQ
ZWVyQ29ubmVjdGlvbkZhY3RvcnkuIEV2ZW4gdGhvdWdoIGl0IGltcGxlbWVudHMgdGhlIFJUQ1Zp
ZGVvRW5jb2RlciBwcm90b2NvbCwgaXQgY2FuIG5vdCBiZQogICogdXNlZCBpbmRlcGVuZGVudGx5
IGZyb20gdGhlIFJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeS4KICAqLwotKyAoaWQ8UlRDVmlkZW9F
bmNvZGVyPil2cDlFbmNvZGVyOworKyAoaWQ8UlRDVmlkZW9FbmNvZGVyPil2cDlFbmNvZGVyOihS
VENWaWRlb0NvZGVjSW5mbyAqKWNvZGVjSW5mbzsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJWUDku
bW0KaW5kZXggYTVkODQwODRkMDQ2ZTQ0N2M3ODdhYjJlYzYyNzY4NjlhMjY3MzkwOS4uZjNhZGM0
YjFlMWRhYmFhNjkwMzc2YTYxMmQzNDQ1OTgwNmRhY2UxZSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVj
L1JUQ1ZpZGVvRW5jb2RlclZQOS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyVlA5
Lm1tCkBAIC0xNSwxMiArMTUsMTMgQEAKICNpbXBvcnQgIlJUQ1dyYXBwZWROYXRpdmVWaWRlb0Vu
Y29kZXIuaCIKIAogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvaW5j
bHVkZS92cDkuaCIKKyNpbmNsdWRlICJzZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDVmlk
ZW9Db2RlY0luZm8rUHJpdmF0ZS5oIgogCiBAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9FbmNvZGVy
VlA5CiAKLSsgKGlkPFJUQ1ZpZGVvRW5jb2Rlcj4pdnA5RW5jb2RlciB7CisrIChpZDxSVENWaWRl
b0VuY29kZXI+KXZwOUVuY29kZXI6KFJUQ1ZpZGVvQ29kZWNJbmZvICopY29kZWNJbmZvIHsKICAg
cmV0dXJuIFtbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRW5jb2RlciBhbGxvY10KLSAgICAgIGluaXRX
aXRoTmF0aXZlRW5jb2RlcjpzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXI+KHdl
YnJ0Yzo6VlA5RW5jb2Rlcjo6Q3JlYXRlKCkpXTsKKyAgICAgIGluaXRXaXRoTmF0aXZlRW5jb2Rl
cjpzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXI+KHdlYnJ0Yzo6VlA5RW5jb2Rl
cjo6Q3JlYXRlKGNyaWNrZXQ6OlZpZGVvQ29kZWMoY29kZWNJbmZvLm5hdGl2ZVNkcFZpZGVvRm9y
bWF0KSkpXTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZh
dWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0Vmlk
ZW9EZWNvZGVyRmFjdG9yeS5tCmluZGV4IGUwNDIyY2Y1MDA2NDdlZmNkODcyMjg1NjEwY2QwMjNh
NmY0YWYwM2EuLjg1ODhiNzA3N2FkOGYyNmFhM2IyMDUwNjgzZTY2MmZhMjlhOTE4ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KQEAg
LTc5LDggKzc5LDE3IEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5
Oihib29sKXN1cHBvcnRzVlA5IHZwOVZUQjooYm9vbClzdXBwb3J0CiAgIFtjb2RlY3MgYWRkT2Jq
ZWN0OnZwOEluZm9dOwogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAgIGlmIChfc3VwcG9y
dHNWUDkpIHsKLSAgICBSVENWaWRlb0NvZGVjSW5mbyAqdnA5SW5mbyA9IFtbUlRDVmlkZW9Db2Rl
Y0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOU5hbWVdOwotICAgIFtj
b2RlY3MgYWRkT2JqZWN0OnZwOUluZm9dOworICAgIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBO
U1N0cmluZyAqPiAqcHJvZmlsZTAgPSBAeworICAgICAgQCJwcm9maWxlLWlkIiA6IEAiMCIsCisg
ICAgfTsKKyAgICBSVENWaWRlb0NvZGVjSW5mbyAqdnA5SW5mb1Byb2ZpbGUwID0gW1tSVENWaWRl
b0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZSBwYXJh
bWV0ZXJzOiBwcm9maWxlMF07CisgICAgW2NvZGVjcyBhZGRPYmplY3Q6dnA5SW5mb1Byb2ZpbGUw
XTsKKworICAgIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqcHJvZmlsZTIg
PSBAeworICAgICAgQCJwcm9maWxlLWlkIiA6IEAiMiIsCisgICAgfTsKKyAgICBSVENWaWRlb0Nv
ZGVjSW5mbyAqdnA5SW5mb1Byb2ZpbGUyID0gW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5p
dFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZSBwYXJhbWV0ZXJzOiBwcm9maWxlMl07Cisg
ICAgW2NvZGVjcyBhZGRPYmplY3Q6dnA5SW5mb1Byb2ZpbGUyXTsKICAgfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnku
bSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubQppbmRl
eCA5ZmZmMDJkZjAxNTM1YTc0ODgzMjgxYzU0ODVjYTNmZjQ5N2FmZjZjLi5jNTQ3YThjZjA1MDFm
NzVlMTU1MmMwNGQ2NmMxMTI3ZmU2MWFmZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCkBAIC03Nyw4ICs3NywxNyBAQCAtIChpZClp
bml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOQogCiAj
aWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAgaWYgKHN1cHBvcnRzVlA5KSB7Ci0gICAgUlRD
VmlkZW9Db2RlY0luZm8gKnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0
V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXTsKLSAgICBbY29kZWNzIGFkZE9iamVjdDp2
cDlJbmZvXTsKKyAgICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKnByb2Zp
bGUwID0gQHsKKyAgICAgIEAicHJvZmlsZS1pZCIgOiBAIjAiLAorICAgIH07CisgICAgUlRDVmlk
ZW9Db2RlY0luZm8gKnZwOUluZm9Qcm9maWxlMCA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2Nd
IGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOU5hbWUgcGFyYW1ldGVyczogcHJvZmlsZTBd
OworICAgIFtjb2RlY3MgYWRkT2JqZWN0OnZwOUluZm9Qcm9maWxlMF07CisKKyAgICBOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKnByb2ZpbGUyID0gQHsKKyAgICAgIEAicHJv
ZmlsZS1pZCIgOiBAIjIiLAorICAgIH07CisgICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOUluZm9Q
cm9maWxlMiA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlk
ZW9Db2RlY1ZwOU5hbWUgcGFyYW1ldGVyczogcHJvZmlsZTJdOworICAgIFtjb2RlY3MgYWRkT2Jq
ZWN0OnZwOUluZm9Qcm9maWxlMl07CiAgIH0KICNlbmRpZgogCkBAIC05Miw3ICsxMDEsNyBAQCAt
IChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQ
OQogICAgIHJldHVybiBbUlRDVmlkZW9FbmNvZGVyVlA4IHZwOEVuY29kZXJdOwogI2lmIGRlZmlu
ZWQoUlRDX0VOQUJMRV9WUDkpCiAgIH0gZWxzZSBpZiAoW2luZm8ubmFtZSBpc0VxdWFsVG9TdHJp
bmc6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXSkgewotICAgIHJldHVybiBbUlRDVmlkZW9FbmNvZGVy
VlA5IHZwOUVuY29kZXJdOworICAgIHJldHVybiBbUlRDVmlkZW9FbmNvZGVyVlA5IHZwOUVuY29k
ZXI6aW5mb107CiAjZW5kaWYKICNpZiAhZGVmaW5lZChESVNBQkxFX0gyNjUpCiAgIH0gZWxzZSBp
ZiAoQGF2YWlsYWJsZShpT1MgMTEsICopKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2VDb2NvYS5oCmluZGV4IGY1NTIzZDNjZWUxYWIyYzM5NjRkZjEwZGQwMzI0
ZDljNmQwNDE0NGMuLmE4NmY3MDRjMmZiY2IzMjI3MWY1MDc0NDA5NTkzZWI0NmJkNjA3NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCkBAIC0z
NSw2ICszNSwxMCBAQCB1c2luZyBDTVNhbXBsZUJ1ZmZlclJlZiA9IHN0cnVjdCBvcGFxdWVDTVNh
bXBsZUJ1ZmZlcio7CiB1c2luZyBDVlBpeGVsQnVmZmVyUG9vbFJlZiA9IHN0cnVjdCBfX0NWUGl4
ZWxCdWZmZXJQb29sKjsKIHVzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZl
cio7CiAKK25hbWVzcGFjZSB3ZWJydGMgeworZW51bSBjbGFzcyBCdWZmZXJUeXBlOworfTsKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UgewpAQCAtNDQs
NyArNDgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+
JiYsIFN0cmluZyYmKTsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZm
ZXJGcm9tVmlkZW9GcmFtZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmKTsKLSAgICBDVlBpeGVs
QnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0
KTsKKyAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRo
LCBzaXplX3QgaGVpZ2h0LCB3ZWJydGM6OkJ1ZmZlclR5cGUpOwogCiAgICAgLy8gcnRjOjpWaWRl
b1NpbmtJbnRlcmZhY2UKICAgICB2b2lkIE9uRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1l
JikgZmluYWw7CkBAIC01OCw2ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJQb29sUmVmPiBtX3BpeGVsQnVmZmVyUG9vbDsKICAgICBzaXplX3QgbV9waXhlbEJ1
ZmZlclBvb2xXaWR0aCB7IDAgfTsKICAgICBzaXplX3QgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQg
eyAwIH07CisgICAgd2VicnRjOjpCdWZmZXJUeXBlIG1fcGl4ZWxCdWZmZXJQb29sQnVmZmVyVHlw
ZTsKIH07CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVCbGFja1BpeGVsQnVm
ZmVyKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggZjI4MGI2ZTFiYTIwZmJmNjAzMmEw
ZGE2NmUxYWZkZmQwZDM1ZWYyYi4uNjFiMmQ4MDc3M2M1M2NmNDNhMzE1ZjdkMGI3YmM3OWI3MmNm
OTAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5tbQpAQCAtODgsMTIgKzg4LDIxIEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVh
dGVCbGFja1BpeGVsQnVmZmVyKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCkKICAgICByZXR1
cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7CiB9CiAKLUNWUGl4ZWxCdWZmZXJQb29sUmVmIFJlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRo
LCBzaXplX3QgaGVpZ2h0KQorQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWln
aHQsIHdlYnJ0Yzo6QnVmZmVyVHlwZSBidWZmZXJUeXBlKQogewotICAgIGlmICghbV9waXhlbEJ1
ZmZlclBvb2wgfHwgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCAhPSB3aWR0aCB8fCBtX3BpeGVsQnVm
ZmVyUG9vbEhlaWdodCAhPSBoZWlnaHQpIHsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBj
cmVhdGVQaXhlbEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCk7CisgICAgaWYgKCFtX3BpeGVsQnVm
ZmVyUG9vbCB8fCBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoICE9IHdpZHRoIHx8IG1fcGl4ZWxCdWZm
ZXJQb29sSGVpZ2h0ICE9IGhlaWdodCB8fCBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGUgIT0g
YnVmZmVyVHlwZSkgeworICAgICAgICBPU1R5cGUgcG9vbEJ1ZmZlclR5cGU7CisgICAgICAgIHN3
aXRjaCAoYnVmZmVyVHlwZSkgeworICAgICAgICBjYXNlIHdlYnJ0Yzo6QnVmZmVyVHlwZTo6STQy
MDoKKyAgICAgICAgICAgIHBvb2xCdWZmZXJUeXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlw
Q2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IHdlYnJ0Yzo6QnVmZmVyVHlwZTo6STAxMDoKKyAgICAgICAgICAgIHBvb2xCdWZmZXJUeXBlID0g
a0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjEwQmlQbGFuYXJGdWxsUmFuZ2U7CisgICAgICAg
IH0KKyAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBjcmVhdGVQaXhlbEJ1ZmZlclBvb2wod2lk
dGgsIGhlaWdodCwgcG9vbEJ1ZmZlclR5cGUpOwogICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdp
ZHRoID0gd2lkdGg7CiAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ID0gaGVpZ2h0Owor
ICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGUgPSBidWZmZXJUeXBlOwogICAgIH0K
ICAgICByZXR1cm4gbV9waXhlbEJ1ZmZlclBvb2wuZ2V0KCk7CiB9CkBAIC0xMTAsOCArMTE5LDgg
QEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZUNvY29hOjpwaXhlbEJ1ZmZlckZyb21WaWQKICAgICB9CiAKICAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbmV3UGl4ZWxCdWZmZXI7Ci0gICAgcmV0dXJuIHdlYnJ0Yzo6cGl4ZWxCdWZm
ZXJGcm9tRnJhbWUoZnJhbWUsIFt0aGlzLCAmbmV3UGl4ZWxCdWZmZXJdKHNpemVfdCB3aWR0aCwg
c2l6ZV90IGhlaWdodCkgLT4gQ1ZQaXhlbEJ1ZmZlclJlZiB7Ci0gICAgICAgIGF1dG8gcGl4ZWxC
dWZmZXJQb29sID0gdGhpcy0+cGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQpOworICAgIHJl
dHVybiB3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKGZyYW1lLCBbdGhpcywgJm5ld1BpeGVs
QnVmZmVyXShzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIHdlYnJ0Yzo6QnVmZmVyVHlwZSBi
dWZmZXJUeXBlKSAtPiBDVlBpeGVsQnVmZmVyUmVmIHsKKyAgICAgICAgYXV0byBwaXhlbEJ1ZmZl
clBvb2wgPSB0aGlzLT5waXhlbEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCwgYnVmZmVyVHlwZSk7
CiAgICAgICAgIGlmICghcGl4ZWxCdWZmZXJQb29sKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oCmluZGV4IGFkZDRkNzE2ZGQ1NDIw
NWUxYjE3MWY5NDc3M2M5ZTljMjM0OGQzNmIuLjVmYmFmNWVkYzY0MDI2MTRlZGFmZDdhZTE2ZGFl
ODBiYmIxN2E5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaApAQCAtNDEsNyAr
NDEsNyBAQCBzdGF0aWMgaW5saW5lIE9TVHlwZSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCkK
ICNlbmRpZgogfQogCi1XRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclBvb2xS
ZWY+IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpOwor
V0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBjcmVhdGVQaXhl
bEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5cGUpOwogV0VCQ09S
RV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyRnJv
bVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYpOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRp
bGl0aWVzLm1tCmluZGV4IDI1NGNhZTQyYjBlMjdhMjkyMDYxNGVlNTNkMjIzMTk2YzQ3Y2FiNGEu
LjI2MmVjMjc2YjRmMTMxZDcwMDNmM2YzMjBlMDk3NDZjZDRjZWNjMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0
aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZVZpZGVvVXRpbGl0aWVzLm1tCkBAIC0zMCw5ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBjcmVhdGVQaXhlbEJ1ZmZl
clBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KQorUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJQb29sUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVp
Z2h0LCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0KQogewotICAgIGNvbnN0IE9TVHlwZSB2aWRl
b0NhcHR1cmVGb3JtYXQgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVs
bFJhbmdlOwogICAgIGF1dG8gcGl4ZWxBdHRyaWJ1dGVzID0gQHsKICAgICAgICAgKF9fYnJpZGdl
IE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJXaWR0aEtleTogQCh3aWR0aCksCiAgICAgICAgIChf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKGhlaWdodCksCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmNwcAppbmRleCBhODJiYjk2Yzg3NDFkNTQ4MTRjNzU0NWNhYzVjMzY0NzNiYTEzOTdk
Li40M2NkMWVlZmU5ZmFjNDI2YWRlYWI3NzhhNzJkMzIyN2IxMjFlYTE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5j
cHAKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRW5j
b2RpbmcoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpEYQogQ1ZQaXhlbEJ1
ZmZlclBvb2xSZWYgTGliV2ViUlRDQ29kZWNzOjpwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRo
LCBzaXplX3QgaGVpZ2h0KQogewogICAgIGlmICghbV9waXhlbEJ1ZmZlclBvb2wgfHwgbV9waXhl
bEJ1ZmZlclBvb2xXaWR0aCAhPSB3aWR0aCB8fCBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCAhPSBo
ZWlnaHQpIHsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBjcmVhdGVQaXhlbEJ1ZmZlclBv
b2wod2lkdGgsIGhlaWdodCk7CisgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sID0gY3JlYXRlUGl4
ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4
QmlQbGFuYXJGdWxsUmFuZ2UpOwogICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoID0gd2lk
dGg7CiAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ID0gaGVpZ2h0OwogICAgIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA2YzI1MzQyYjRjYWY5ZTY5Y2QzYjkyOGUzNWM4ZGZjNjM4N2EwNzUzLi40ZTk3Njc4MmJk
MjdjNGUzZTUyMWIyZGI3MDIzMGE0M2RkMWZiNzg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjAtMTAtMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBWUDkgUHJvZmlsZSAyICgxMC1iaXQgY29sb3IpIGluIFdlYlJUQworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjczCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MDI4Mzg4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy92cDktcHJvZmlsZTItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdnA5LXByb2ZpbGUyLmh0bWw6IEFkZGVkLgorCiAy
MDIwLTEwLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJ
bnRyb2R1Y2Ugd29ya2xldCBkZXN0aW5hdGlvbnMgYW5kIGFsbG93IHRvIGZldGNoIG1vZHVsZXMg
d2l0aCBDT1JTIGJhc2VkIG9uIGRlc3RpbmF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJydGMvdnA5LXByb2ZpbGUyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDkt
cHJvZmlsZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2YTYxMTdlYTI3MzY5YmYzMjBmNTM1
ZTgyODJiMWFhOTY2ZGUwMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMv
dnA5LXByb2ZpbGUyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworUEFTUyBWUDkg
cHJvZmlsZSAyaW4gZ2V0Q2FwYWJpbGl0aWVzCitQQVNTIFZlcmlmeSBWUDkgYWN0aXZhdGlvbgor
UEFTUyBTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlCitQQVNTIEVuc3VyaW5nIGNvbm5lY3Rpb24gc3Rh
dGUgaXMgY29ubmVjdGVkCitQQVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3Qg
YmUgYmxhY2sKK1BBU1MgVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjawor
UEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS1wcm9maWxlMi5odG1sIGIvTGF5b3V0VGVz
dHMvd2VicnRjL3ZwOS1wcm9maWxlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1YWMwYzY1NWQyNDViMTM4
MWE1YjQwOGJlNzExMzViYTU0ODYxNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJydGMvdnA5LXByb2ZpbGUyLmh0bWwKQEAgLTAsMCArMSw5MCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAg
ICAgICA8dGl0bGU+VlA5IGluIFdlYlJUQzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5IHBsYXlz
SW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3ZpZGVvPgorICAgICAgICA8Y2FudmFz
IGlkPSJjYW52YXMxIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAg
IDxjYW52YXMgaWQ9ImNhbnZhczIiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4K
KyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwv
Y2FudmFzPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdD4KK2xldCB2cDlQcm9maWxlMjsKK3Rlc3QoKCkgPT4geworICAgIGNvZGVj
cyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoInZpZGVvIikuY29kZWNzOworICAgIHZw
OVByb2ZpbGVzID0gY29kZWNzLmZpbHRlcihjb2RlYyA9PiB7IHJldHVybiBjb2RlYy5taW1lVHlw
ZSA9PT0gInZpZGVvL1ZQOSIgJiYgY29kZWMuc2RwRm10cExpbmUgPT09ICJwcm9maWxlLWlkPTIi
OyB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHZwOVByb2ZpbGVzLmxlbmd0aCwgMSk7CisgICAgdnA5
UHJvZmlsZTIgPSB2cDlQcm9maWxlc1swXTsKK30sICJWUDkgcHJvZmlsZSAyaW4gZ2V0Q2FwYWJp
bGl0aWVzIik7CisKK2lmICh2cDlQcm9maWxlMikgeworICAgIHByb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOwor
ICAgICAgICB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKFt2cDlQcm9maWxlMl0pOwor
ICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgICAg
ICAgIHBjLmNsb3NlKCk7CisgICAgICAgIGFzc2VydF90cnVlKGRlc2NyaXB0aW9uLnNkcC5pbmRl
eE9mKCJWUDkiKSAhPT0gLTEsICJWUDkgY29kZWMgaXMgaW4gdGhlIFNEUCIpOworICAgIH0sICJW
ZXJpZnkgVlA5IGFjdGl2YXRpb24iKQorCisgICAgdmFyIHRyYWNrOworICAgIHZhciByZW1vdGVU
cmFjazsKKyAgICB2YXIgcmVjZWl2aW5nQ29ubmVjdGlvbjsKKyAgICB2YXIgc2VuZGluZ0Nvbm5l
Y3Rpb247CisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHJldHVybiBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHt3aWR0aDogMzIwLCBoZWln
aHQ6IDI0MCwgZmFjaW5nTW9kZTogImVudmlyb25tZW50In19KS50aGVuKChsb2NhbFN0cmVhbSkg
PT4geworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgICAgICB0cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClb
MF07CisKKyAgICAgICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9u
KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHNlbmRpbmdDb25uZWN0aW9uID0gZmlyc3RDb25u
ZWN0aW9uOworICAgICAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJh
Y2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmdl
dFRyYW5zY2VpdmVycygpWzBdLnNldENvZGVjUHJlZmVyZW5jZXMoW3ZwOVByb2ZpbGUyXSk7Cisg
ICAgICAgICAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAg
ICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVUcmFjayA9IHRyYWNrRXZlbnQudHJhY2s7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7Cisg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pLnRoZW4oKHJlbW90ZVN0cmVhbSkgPT4geworICAgICAg
ICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gcmVtb3RlU3RyZWFtOworICAgICAgICAgICAgcmV0dXJu
IHZpZGVvLnBsYXkoKTsKKyAgICAgICAgfSk7CisgICAgfSwgIlNldHRpbmcgdmlkZW8gZXhjaGFu
Z2UiKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIGlmIChyZWNlaXZpbmdD
b25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0gImNvbm5lY3RlZCIpCisgICAgICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICByZWNlaXZpbmdDb25uZWN0aW9uLm9uY29u
bmVjdGlvbnN0YXRlY2hhbmdlID0gKCkgPT4geworICAgICAgICAgICAgICAgIGlmIChyZWNlaXZp
bmdDb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0gImNvbm5lY3RlZCIpCisgICAgICAgICAg
ICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBzZXRUaW1l
b3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CisgICAgICAgIH0pOwor
ICAgIH0sICJFbnN1cmluZyBjb25uZWN0aW9uIHN0YXRlIGlzIGNvbm5lY3RlZCIpOworCisgICAg
cHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2so
ZmFsc2UsIGNhbnZhczEsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8g
c2hvdWxkIG5vdCBiZSBibGFjayIpOworCisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7Cisg
ICAgICAgIHRyYWNrLmVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9C
bGFjayh0cnVlLCBjYW52YXMyLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGRpc2FibGVkLCB2
aWRlbyBzaG91bGQgYmUgYmxhY2siKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewor
ICAgICAgICB0cmFjay5lbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9C
bGFjayhmYWxzZSwgY2FudmFzMiwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBlbmFibGVkLCB2
aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIiKTsKK30KKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412106</attachid>
            <date>2020-10-22 09:22:19 -0700</date>
            <delta_ts>2020-10-26 01:27:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217673-20201022182217.patch</filename>
            <type>text/plain</type>
            <size>31709</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Nzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBjYzM3YWRkZTJiZmFkMTM4YWFiZjc4MWRiNzkzYzQwN2EzZmM2MGJlLi4yYTkz
YWQ4ZDlkN2Q2ZjkyYjYxY2I0Yzc5YzlkZWRmMGEwMDQ1YWYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0xMC0yMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFZQOSBQ
cm9maWxlIDIgKDEwLWJpdCBjb2xvcikgaW4gV2ViUlRDCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwMjgzODg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBWUDkgcHJvZmlsZSAwIGFuZCAyLgorICAgICAgICBUaGlzIHJl
cXVpcmVzIGNvcnJlY3RseSBoYW5kbGluZyAxMC1iaXQgZGVjb2RlZCBidWZmZXJzIGFzIGlzIGRv
bmUgYnkgdGhlIE1TRSBjb2RlIHBhdGguCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3
ZWJydGMuaU9TLmV4cDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2lt
LmV4cDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbToKKyAgICAgICAg
KHdlYnJ0Yzo6cGl4ZWxCdWZmZXJGcm9tRnJhbWUpOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
c2RrL1dlYktpdC9XZWJLaXRWUDlEZWNvZGVyLmNwcDoKKyAgICAgICAgKHdlYnJ0Yzo6V2ViS2l0
VlA5RGVjb2RlclJlY2VpdmVyOjpEZWNvZGVkKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJWUDkuaDoKKyAgICAgICAgKiBT
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJWUDku
bW06CisgICAgICAgICgrW1JUQ1ZpZGVvRW5jb2RlclZQOSB2cDlFbmNvZGVyOl0pOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZh
dWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBzdXBwb3J0ZWRDb2RlY3NdKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rv
cnkubToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVk
Q29kZWNzV2l0aEgyNjU6dnA5Ol0pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9FbmNvZGVy
RmFjdG9yeSBjcmVhdGVFbmNvZGVyOl0pOgorCiAyMDIwLTEwLTIxICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJSVEMgVlA5IERlY29kZXIgc2hvdWxkIGJl
IGFibGUgdG8gdXNlIFZUQgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFkYzY5YzMyOWNhZjY1MTM2Yjc0M2I1Yzcw
ZmE3ZmZmMGI3NmFjNjQuLjA5NTBiMmVjM2FjYzkyMWQ1OTQ5MDI1ZWQxNzEzZGVlNTAwZDAxNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0xMC0yMiAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFZQOSBQcm9maWxl
IDIgKDEwLWJpdCBjb2xvcikgaW4gV2ViUlRDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMjgz
ODg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElu
IGNhc2Ugc29mdHdhcmUgVlA5IGRlY29kZWQgYnVmZmVyIGlzIDEwIGJpdHMsIHdlIHVzZSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyMTBCaVBsYW5hckZ1bGxSYW5nZS4KKworICAgICAgICBU
ZXN0OiB3ZWJydGMvdnA5LXByb2ZpbGUyLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
OjpwaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyRnJvbVZpZGVvRnJhbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVQaXhlbEJ1ZmZlclBvb2wpOgorCiAyMDIwLTEwLTIyICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2Ugd29y
a2xldCBkZXN0aW5hdGlvbnMgYW5kIGFsbG93IHRvIGZldGNoIG1vZHVsZXMgd2l0aCBDT1JTIGJh
c2VkIG9uIGRlc3RpbmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM5NjRlMGFlNzFjMDllODlkOTJjMTgyMWU5
ZTgyYzUxMjBjMDkwNDEuLjI5MWJmNmNhMjNiYjE1NGNmY2E5NzMzMGRhYzViZTQ5OWNlZmFjNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjIgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBWUDkgUHJvZmlsZSAy
ICgxMC1iaXQgY29sb3IpIGluIFdlYlJUQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjczCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDI4Mzg4
NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpMaWJXZWJSVENDb2RlY3M6OnBpeGVsQnVmZmVyUG9vbCk6CisKIDIwMjAtMTAtMjIgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSB3b3JrbGV0
IGRlc3RpbmF0aW9ucyBhbmQgYWxsb3cgdG8gZmV0Y2ggbW9kdWxlcyB3aXRoIENPUlMgYmFzZWQg
b24gZGVzdGluYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9D
b25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAppbmRleCA2MWVhNjZkY2FiM2Mx
NjAwNDFiOWNiODg0ZTU3OWJlNjBkYzJkM2Q2Li5hYjI3ZDBmMTk0ZWQ2NmZmZDljY2VjMWMzZmQ1
NjQ5NWFkYjZiNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29u
ZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCkBAIC0xMDksNyArMTA5LDcg
QEAgX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2
NUVOU185V2ViS2l0VlA5RQogX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxv
d2VkRWIKIF9fWk42d2VicnRjMzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKIF9f
Wk42d2VicnRjMjRyZWdpc3RlcldlYktpdFZQOURlY29kZXJFdgotX19aTjZ3ZWJydGMyMHBpeGVs
QnVmZmVyRnJvbUZyYW1lRVJLTlNfMTBWaWRlb0ZyYW1lRVJLTlN0M19fMThmdW5jdGlvbklGUDEw
X19DVkJ1ZmZlcm1tRUVFCitfX1pONndlYnJ0YzIwcGl4ZWxCdWZmZXJGcm9tRnJhbWVFUktOU18x
MFZpZGVvRnJhbWVFUktOU3QzX18xOGZ1bmN0aW9uSUZQMTBfX0NWQnVmZmVybW1OU18xMEJ1ZmZl
clR5cGVFRUVFCiBfX1pONndlYnJ0YzE4cGl4ZWxCdWZmZXJUb0ZyYW1lRVAxMF9fQ1ZCdWZmZXIK
IF9fWk4zcnRjMjRCYXNpY1BhY2tldFNvY2tldEZhY3RvcnkxOUNyZWF0ZUFzeW5jUmVzb2x2ZXJF
dgogX19aTjNydGMyNEJhc2ljUGFja2V0U29ja2V0RmFjdG9yeUMyRXYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2lt
LmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJy
dGMuaU9Tc2ltLmV4cAppbmRleCA2MWVhNjZkY2FiM2MxNjAwNDFiOWNiODg0ZTU3OWJlNjBkYzJk
M2Q2Li5hYjI3ZDBmMTk0ZWQ2NmZmZDljY2VjMWMzZmQ1NjQ5NWFkYjZiNGZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
U3NpbS5leHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25z
L2xpYndlYnJ0Yy5pT1NzaW0uZXhwCkBAIC0xMDksNyArMTA5LDcgQEAgX19aTjZ3ZWJydGMyNmNy
ZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RQog
X19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9fWk42d2VicnRj
MzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKIF9fWk42d2VicnRjMjRyZWdpc3Rl
cldlYktpdFZQOURlY29kZXJFdgotX19aTjZ3ZWJydGMyMHBpeGVsQnVmZmVyRnJvbUZyYW1lRVJL
TlNfMTBWaWRlb0ZyYW1lRVJLTlN0M19fMThmdW5jdGlvbklGUDEwX19DVkJ1ZmZlcm1tRUVFCitf
X1pONndlYnJ0YzIwcGl4ZWxCdWZmZXJGcm9tRnJhbWVFUktOU18xMFZpZGVvRnJhbWVFUktOU3Qz
X18xOGZ1bmN0aW9uSUZQMTBfX0NWQnVmZmVybW1OU18xMEJ1ZmZlclR5cGVFRUVFCiBfX1pONndl
YnJ0YzE4cGl4ZWxCdWZmZXJUb0ZyYW1lRVAxMF9fQ1ZCdWZmZXIKIF9fWk4zcnRjMjRCYXNpY1Bh
Y2tldFNvY2tldEZhY3RvcnkxOUNyZWF0ZUFzeW5jUmVzb2x2ZXJFdgogX19aTjNydGMyNEJhc2lj
UGFja2V0U29ja2V0RmFjdG9yeUMyRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cAppbmRleCA0ZWVk
ZDZlZTk5NmNiNmI4YTYxOTAzNjE3MDU2ZDc0ZmJlM2EyZDY5Li45Njg2MDc2OGM5M2FmM2E0OTNl
ZmFkODQ2M2FiYzFmNTBmZDQ4MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwCkBAIC0xMDks
NyArMTA5LDcgQEAgX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEw
V2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RQogX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVu
Y29kZXJBbGxvd2VkRWIKIF9fWk42d2VicnRjMzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFi
bGVkRWIKIF9fWk42d2VicnRjMjRyZWdpc3RlcldlYktpdFZQOURlY29kZXJFdgotX19aTjZ3ZWJy
dGMyMHBpeGVsQnVmZmVyRnJvbUZyYW1lRVJLTlNfMTBWaWRlb0ZyYW1lRVJLTlN0M19fMThmdW5j
dGlvbklGUDEwX19DVkJ1ZmZlcm1tRUVFCitfX1pONndlYnJ0YzIwcGl4ZWxCdWZmZXJGcm9tRnJh
bWVFUktOU18xMFZpZGVvRnJhbWVFUktOU3QzX18xOGZ1bmN0aW9uSUZQMTBfX0NWQnVmZmVybW1O
U18xMEJ1ZmZlclR5cGVFRUVFCiBfX1pONndlYnJ0YzE4cGl4ZWxCdWZmZXJUb0ZyYW1lRVAxMF9f
Q1ZCdWZmZXIKIF9fWk4zcnRjMjRCYXNpY1BhY2tldFNvY2tldEZhY3RvcnkxOUNyZWF0ZUFzeW5j
UmVzb2x2ZXJFdgogX19aTjNydGMyNEJhc2ljUGFja2V0U29ja2V0RmFjdG9yeUMyRXYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCmluZGV4IDA3ZDVjZTM3NGJmNjI4
MGJiYzdhMmNlNGUwZTAwMjkxYjJiYmJlOWYuLmQ3ZDJiZDBlODJlMjBhYmRjNWZmZWFmZTQwMjQ0
YjA0NjAyYjExNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMu
aApAQCAtNTUsOSArNTUsOCBAQCBib29sIGlzSDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQoKTsK
IHZvaWQgc2V0SDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZChib29sKTsKIGJvb2wgaXNIMjY0
TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkKCk7CiAKLUNWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXJGcm9tRnJhbWUoY29uc3QgVmlkZW9GcmFtZSYsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Q1ZQaXhl
bEJ1ZmZlclJlZihzaXplX3QsIHNpemVfdCk+Jik7CitlbnVtIGNsYXNzIEJ1ZmZlclR5cGUgeyBJ
NDIwLCBJMDEwIH07CitDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyRnJvbUZyYW1lKGNvbnN0
IFZpZGVvRnJhbWUmLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPENWUGl4ZWxCdWZmZXJSZWYoc2l6ZV90
LCBzaXplX3QsIEJ1ZmZlclR5cGUpPiYpOwogcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6Vmlk
ZW9GcmFtZUJ1ZmZlcj4gcGl4ZWxCdWZmZXJUb0ZyYW1lKENWUGl4ZWxCdWZmZXJSZWYpOwogCi1D
VlBpeGVsQnVmZmVyUG9vbFJlZiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBz
aXplX3QgaGVpZ2h0KTsKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW0gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxp
dGllcy5tbQppbmRleCA1NDM0ZTM3NTgxOTE4MTJkOWYxYTM2NGQyYzM4YmI3ZTU1YmZjYzgyLi44
ZGRjNmEzZDhiZWFiYzBlZGNmM2E4NjI4MTk2YjFiYzIyYzU0NWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0
aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgIldlYktpdFV0aWxpdGllcy5oIgogCiAjaW5jbHVkZSAibmF0aXZlL3NyYy9vYmpjX2ZyYW1l
X2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKICNpbmNsdWRlICJ0aGly
ZF9wYXJ0eS9saWJ5dXYvaW5jbHVkZS9saWJ5dXYvY29udmVydF9mcm9tLmgiCiAjaW5jbHVkZSAi
bGlieXV2L2NwdV9pZC5oIgogI2luY2x1ZGUgImxpYnl1di9yb3cuaCIKQEAgLTE5NywyMSArMTk4
LDMwIEBAIHN0YXRpYyBib29sIENvcHlWaWRlb0ZyYW1lVG9QaXhlbEJ1ZmZlcihjb25zdCB3ZWJy
dGM6OkkwMTBCdWZmZXJJbnRlcmZhY2UqIGZyYW1lCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUNW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGcm9tRnJhbWUoY29uc3QgVmlkZW9GcmFtZSYgZnJh
bWUsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Q1ZQaXhlbEJ1ZmZlclJlZihzaXplX3QsIHNpemVfdCk+
JiBtYWtlUGl4ZWxCdWZmZXIpCitDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyRnJvbUZyYW1l
KGNvbnN0IFZpZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPENWUGl4ZWxCdWZm
ZXJSZWYoc2l6ZV90LCBzaXplX3QsIEJ1ZmZlclR5cGUpPiYgbWFrZVBpeGVsQnVmZmVyKQogewot
ICAgIGlmIChmcmFtZS52aWRlb19mcmFtZV9idWZmZXIoKS0+dHlwZSgpICE9IFZpZGVvRnJhbWVC
dWZmZXI6OlR5cGU6OmtOYXRpdmUpIHsKLSAgICAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IG1ha2VQ
aXhlbEJ1ZmZlcihmcmFtZS52aWRlb19mcmFtZV9idWZmZXIoKS0+d2lkdGgoKSwgZnJhbWUudmlk
ZW9fZnJhbWVfYnVmZmVyKCktPmhlaWdodCgpKTsKLSAgICAgICAgaWYgKCFwaXhlbEJ1ZmZlcikK
KyAgICBhdXRvIGJ1ZmZlciA9IGZyYW1lLnZpZGVvX2ZyYW1lX2J1ZmZlcigpOworICAgIGlmIChi
dWZmZXItPnR5cGUoKSAhPSBWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlOjprTmF0aXZlKSB7CisgICAg
ICAgIGF1dG8gdHlwZSA9IGJ1ZmZlci0+dHlwZSgpOworICAgICAgICBpZiAodHlwZSAhPSBWaWRl
b0ZyYW1lQnVmZmVyOjpUeXBlOjprSTQyMCAmJiB0eXBlICE9IFZpZGVvRnJhbWVCdWZmZXI6OlR5
cGU6OmtJMDEwKSB7CisgICAgICAgICAgICBSVENfTE9HKFdBUk5JTkcpIDw8ICJWaWRlbyBmcmFt
ZSBidWZmZXIgdHlwZSBpcyBub3QgZXhwZWN0ZWQuIjsKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICB9CiAKLSAgICAgICAgaWYgKGZyYW1lLnZpZGVvX2ZyYW1lX2J1ZmZlcigp
LT50eXBlKCkgPT0gVmlkZW9GcmFtZUJ1ZmZlcjo6VHlwZTo6a0k0MjApCi0gICAgICAgICAgICBD
b3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIoZnJhbWUudmlkZW9fZnJhbWVfYnVmZmVyKCktPkdl
dEk0MjAoKSwgcGl4ZWxCdWZmZXIpOwotICAgICAgICBlbHNlIGlmIChmcmFtZS52aWRlb19mcmFt
ZV9idWZmZXIoKS0+dHlwZSgpID09IFZpZGVvRnJhbWVCdWZmZXI6OlR5cGU6OmtJMDEwKQotICAg
ICAgICAgICAgQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGZyYW1lLnZpZGVvX2ZyYW1lX2J1
ZmZlcigpLT5HZXRJMDEwKCksIHBpeGVsQnVmZmVyKTsKKyAgICAgICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IG1ha2VQaXhlbEJ1ZmZlcihidWZmZXItPndpZHRoKCksIGJ1ZmZlci0+aGVpZ2h0KCksIHR5
cGUgPT0gVmlkZW9GcmFtZUJ1ZmZlcjo6VHlwZTo6a0k0MjAgPyBCdWZmZXJUeXBlOjpJNDIwIDog
QnVmZmVyVHlwZTo6STAxMCk7CisgICAgICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAgICAgICAg
ICAgIFJUQ19MT0coV0FSTklORykgPDwgIlBpeGVsIGJ1ZmZlciBjcmVhdGlvbiBmYWlsZWQuIjsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHR5
cGUgPT0gVmlkZW9GcmFtZUJ1ZmZlcjo6VHlwZTo6a0k0MjApCisgICAgICAgICAgICBDb3B5Vmlk
ZW9GcmFtZVRvUGl4ZWxCdWZmZXIoYnVmZmVyLT5HZXRJNDIwKCksIHBpeGVsQnVmZmVyKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGJ1ZmZl
ci0+R2V0STAxMCgpLCBwaXhlbEJ1ZmZlcik7CiAgICAgICAgIHJldHVybiBwaXhlbEJ1ZmZlcjsK
ICAgICB9CiAKLSAgICBhdXRvICpmcmFtZUJ1ZmZlciA9IHN0YXRpY19jYXN0PE9iakNGcmFtZUJ1
ZmZlcio+KGZyYW1lLnZpZGVvX2ZyYW1lX2J1ZmZlcigpLmdldCgpKS0+d3JhcHBlZF9mcmFtZV9i
dWZmZXIoKTsKKyAgICBhdXRvICpmcmFtZUJ1ZmZlciA9IHN0YXRpY19jYXN0PE9iakNGcmFtZUJ1
ZmZlcio+KGJ1ZmZlci5nZXQoKSktPndyYXBwZWRfZnJhbWVfYnVmZmVyKCk7CiAgICAgaWYgKCFb
ZnJhbWVCdWZmZXIgaXNLaW5kT2ZDbGFzczpbUlRDQ1ZQaXhlbEJ1ZmZlciBjbGFzc11dKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjE5LDI5ICsyMjksNCBAQCBDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyRnJvbUZyYW1lKGNvbnN0IFZpZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBz
dGQ6OmZ1bmN0aQogICAgIHJldHVybiBydGNQaXhlbEJ1ZmZlci5waXhlbEJ1ZmZlcjsKIH0KIAot
Q1ZQaXhlbEJ1ZmZlclBvb2xSZWYgY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aWR0aCwg
c2l6ZV90IGhlaWdodCkKLXsKLSAgICBjb25zdCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0ID0g
a0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKLSAgICBhdXRv
IHBpeGVsQXR0cmlidXRlcyA9IEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBp
eGVsQnVmZmVyV2lkdGhLZXk6IEAod2lkdGgpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcg
KilrQ1ZQaXhlbEJ1ZmZlckhlaWdodEtleTogQChoZWlnaHQpLAotICAgICAgICAoX19icmlkZ2Ug
TlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTogQCh2aWRlb0NhcHR1
cmVGb3JtYXQpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckNH
SW1hZ2VDb21wYXRpYmlsaXR5S2V5OiBATk8sCi0jaWYgZGVmaW5lZChXRUJSVENfSU9TKQotICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEZvcm1hdE9wZW5HTEVTQ29tcGF0aWJp
bGl0eSA6IEBZRVMsCi0jZWxzZQotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhl
bEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAotI2VuZGlmCi0gICAgICAgIChf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6
IEB7IH0KLSAgICB9OwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7
Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBudWxscHRyLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQXR0cmlidXRl
cywgJnBvb2wpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBwb29sOwotfQotCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFZQOURlY29kZXIuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRWUDlEZWNvZGVyLmNwcAppbmRleCBlMmQ3NTQyNTczYTBk
MDBlMDEzNjRkNjZhMmQzZTI2NDZjMWUxMjhmLi5iMGQ4MjVlMzYxZmFkMzhlOWQ5NDQ4NDVmNGMw
NTRkZWExZGU3MzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFZQOURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VlA5RGVj
b2Rlci5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBPU1N0YXR1cyBXZWJLaXRWUDlEZWNvZGVyUmVj
ZWl2ZXI6OmRlY29kZXJGYWlsZWQoaW50IGVycm9yKQogCiBpbnQzMl90IFdlYktpdFZQOURlY29k
ZXJSZWNlaXZlcjo6RGVjb2RlZChWaWRlb0ZyYW1lJiBmcmFtZSkKIHsKLSAgICBhdXRvIHBpeGVs
QnVmZmVyID0gcGl4ZWxCdWZmZXJGcm9tRnJhbWUoZnJhbWUsIFt0aGlzXShzaXplX3Qgd2lkdGgs
IHNpemVfdCBoZWlnaHQpIC0+IENWUGl4ZWxCdWZmZXJSZWYgeworICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBwaXhlbEJ1ZmZlckZyb21GcmFtZShmcmFtZSwgW3RoaXNdKHNpemVfdCB3aWR0aCwgc2l6
ZV90IGhlaWdodCwgQnVmZmVyVHlwZSkgLT4gQ1ZQaXhlbEJ1ZmZlclJlZiB7CiAgICAgICAgIENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOwogICAgICAgICBpZiAoQ1ZQaXhl
bEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3BpeGVs
QnVmZmVyUG9vbCwgJnBpeGVsQnVmZmVyKSA9PSBrQ1ZSZXR1cm5TdWNjZXNzKQogICAgICAgICAg
ICAgcmV0dXJuIHBpeGVsQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5j
b2RlclZQOS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5oCmluZGV4IDgyMjY0NzU5
YzZhZjY2MmM0M2M1Y2RkOTA2OWRjYjliMWI5NjNmNDMuLjFkZGUwMmVlMjFkY2QzZTI5YTg5OTFm
ZmZhYTM2ZTUyYzY2NmVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJW
UDkuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9hcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyVlA5LmgKQEAgLTExLDYgKzExLDcg
QEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCiAjaW1wb3J0ICJSVENNYWNy
b3MuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVvQ29kZWNJbmZvLmgiCiAjaW1wb3J0ICJSVENWaWRlb0Vu
Y29kZXIuaCIKIAogUlRDX09CSkNfRVhQT1JUCkBAIC0yMSw2ICsyMiw2IEBAIF9fYXR0cmlidXRl
X18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENWaWRlb0VuY29kZXJWUDkiKSkpCiAgKiBSVENQ
ZWVyQ29ubmVjdGlvbkZhY3RvcnkuIEV2ZW4gdGhvdWdoIGl0IGltcGxlbWVudHMgdGhlIFJUQ1Zp
ZGVvRW5jb2RlciBwcm90b2NvbCwgaXQgY2FuIG5vdCBiZQogICogdXNlZCBpbmRlcGVuZGVudGx5
IGZyb20gdGhlIFJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeS4KICAqLwotKyAoaWQ8UlRDVmlkZW9F
bmNvZGVyPil2cDlFbmNvZGVyOworKyAoaWQ8UlRDVmlkZW9FbmNvZGVyPil2cDlFbmNvZGVyOihS
VENWaWRlb0NvZGVjSW5mbyAqKWNvZGVjSW5mbzsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJWUDku
bW0KaW5kZXggYTVkODQwODRkMDQ2ZTQ0N2M3ODdhYjJlYzYyNzY4NjlhMjY3MzkwOS4uZjNhZGM0
YjFlMWRhYmFhNjkwMzc2YTYxMmQzNDQ1OTgwNmRhY2UxZSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVj
L1JUQ1ZpZGVvRW5jb2RlclZQOS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyVlA5
Lm1tCkBAIC0xNSwxMiArMTUsMTMgQEAKICNpbXBvcnQgIlJUQ1dyYXBwZWROYXRpdmVWaWRlb0Vu
Y29kZXIuaCIKIAogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvaW5j
bHVkZS92cDkuaCIKKyNpbmNsdWRlICJzZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDVmlk
ZW9Db2RlY0luZm8rUHJpdmF0ZS5oIgogCiBAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9FbmNvZGVy
VlA5CiAKLSsgKGlkPFJUQ1ZpZGVvRW5jb2Rlcj4pdnA5RW5jb2RlciB7CisrIChpZDxSVENWaWRl
b0VuY29kZXI+KXZwOUVuY29kZXI6KFJUQ1ZpZGVvQ29kZWNJbmZvICopY29kZWNJbmZvIHsKICAg
cmV0dXJuIFtbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRW5jb2RlciBhbGxvY10KLSAgICAgIGluaXRX
aXRoTmF0aXZlRW5jb2RlcjpzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXI+KHdl
YnJ0Yzo6VlA5RW5jb2Rlcjo6Q3JlYXRlKCkpXTsKKyAgICAgIGluaXRXaXRoTmF0aXZlRW5jb2Rl
cjpzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXI+KHdlYnJ0Yzo6VlA5RW5jb2Rl
cjo6Q3JlYXRlKGNyaWNrZXQ6OlZpZGVvQ29kZWMoY29kZWNJbmZvLm5hdGl2ZVNkcFZpZGVvRm9y
bWF0KSkpXTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZh
dWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0Vmlk
ZW9EZWNvZGVyRmFjdG9yeS5tCmluZGV4IGUwNDIyY2Y1MDA2NDdlZmNkODcyMjg1NjEwY2QwMjNh
NmY0YWYwM2EuLjg1ODhiNzA3N2FkOGYyNmFhM2IyMDUwNjgzZTY2MmZhMjlhOTE4ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KQEAg
LTc5LDggKzc5LDE3IEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5
Oihib29sKXN1cHBvcnRzVlA5IHZwOVZUQjooYm9vbClzdXBwb3J0CiAgIFtjb2RlY3MgYWRkT2Jq
ZWN0OnZwOEluZm9dOwogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAgIGlmIChfc3VwcG9y
dHNWUDkpIHsKLSAgICBSVENWaWRlb0NvZGVjSW5mbyAqdnA5SW5mbyA9IFtbUlRDVmlkZW9Db2Rl
Y0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOU5hbWVdOwotICAgIFtj
b2RlY3MgYWRkT2JqZWN0OnZwOUluZm9dOworICAgIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBO
U1N0cmluZyAqPiAqcHJvZmlsZTAgPSBAeworICAgICAgQCJwcm9maWxlLWlkIiA6IEAiMCIsCisg
ICAgfTsKKyAgICBSVENWaWRlb0NvZGVjSW5mbyAqdnA5SW5mb1Byb2ZpbGUwID0gW1tSVENWaWRl
b0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZSBwYXJh
bWV0ZXJzOiBwcm9maWxlMF07CisgICAgW2NvZGVjcyBhZGRPYmplY3Q6dnA5SW5mb1Byb2ZpbGUw
XTsKKworICAgIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqcHJvZmlsZTIg
PSBAeworICAgICAgQCJwcm9maWxlLWlkIiA6IEAiMiIsCisgICAgfTsKKyAgICBSVENWaWRlb0Nv
ZGVjSW5mbyAqdnA5SW5mb1Byb2ZpbGUyID0gW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5p
dFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZSBwYXJhbWV0ZXJzOiBwcm9maWxlMl07Cisg
ICAgW2NvZGVjcyBhZGRPYmplY3Q6dnA5SW5mb1Byb2ZpbGUyXTsKICAgfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnku
bSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubQppbmRl
eCA5ZmZmMDJkZjAxNTM1YTc0ODgzMjgxYzU0ODVjYTNmZjQ5N2FmZjZjLi5jNTQ3YThjZjA1MDFm
NzVlMTU1MmMwNGQ2NmMxMTI3ZmU2MWFmZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCkBAIC03Nyw4ICs3NywxNyBAQCAtIChpZClp
bml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOQogCiAj
aWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAgaWYgKHN1cHBvcnRzVlA5KSB7Ci0gICAgUlRD
VmlkZW9Db2RlY0luZm8gKnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0
V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXTsKLSAgICBbY29kZWNzIGFkZE9iamVjdDp2
cDlJbmZvXTsKKyAgICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKnByb2Zp
bGUwID0gQHsKKyAgICAgIEAicHJvZmlsZS1pZCIgOiBAIjAiLAorICAgIH07CisgICAgUlRDVmlk
ZW9Db2RlY0luZm8gKnZwOUluZm9Qcm9maWxlMCA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2Nd
IGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOU5hbWUgcGFyYW1ldGVyczogcHJvZmlsZTBd
OworICAgIFtjb2RlY3MgYWRkT2JqZWN0OnZwOUluZm9Qcm9maWxlMF07CisKKyAgICBOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKnByb2ZpbGUyID0gQHsKKyAgICAgIEAicHJv
ZmlsZS1pZCIgOiBAIjIiLAorICAgIH07CisgICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOUluZm9Q
cm9maWxlMiA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlk
ZW9Db2RlY1ZwOU5hbWUgcGFyYW1ldGVyczogcHJvZmlsZTJdOworICAgIFtjb2RlY3MgYWRkT2Jq
ZWN0OnZwOUluZm9Qcm9maWxlMl07CiAgIH0KICNlbmRpZgogCkBAIC05Miw3ICsxMDEsNyBAQCAt
IChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQ
OQogICAgIHJldHVybiBbUlRDVmlkZW9FbmNvZGVyVlA4IHZwOEVuY29kZXJdOwogI2lmIGRlZmlu
ZWQoUlRDX0VOQUJMRV9WUDkpCiAgIH0gZWxzZSBpZiAoW2luZm8ubmFtZSBpc0VxdWFsVG9TdHJp
bmc6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXSkgewotICAgIHJldHVybiBbUlRDVmlkZW9FbmNvZGVy
VlA5IHZwOUVuY29kZXJdOworICAgIHJldHVybiBbUlRDVmlkZW9FbmNvZGVyVlA5IHZwOUVuY29k
ZXI6aW5mb107CiAjZW5kaWYKICNpZiAhZGVmaW5lZChESVNBQkxFX0gyNjUpCiAgIH0gZWxzZSBp
ZiAoQGF2YWlsYWJsZShpT1MgMTEsICopKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2VDb2NvYS5oCmluZGV4IGY1NTIzZDNjZWUxYWIyYzM5NjRkZjEwZGQwMzI0
ZDljNmQwNDE0NGMuLmE4NmY3MDRjMmZiY2IzMjI3MWY1MDc0NDA5NTkzZWI0NmJkNjA3NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCkBAIC0z
NSw2ICszNSwxMCBAQCB1c2luZyBDTVNhbXBsZUJ1ZmZlclJlZiA9IHN0cnVjdCBvcGFxdWVDTVNh
bXBsZUJ1ZmZlcio7CiB1c2luZyBDVlBpeGVsQnVmZmVyUG9vbFJlZiA9IHN0cnVjdCBfX0NWUGl4
ZWxCdWZmZXJQb29sKjsKIHVzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZl
cio7CiAKK25hbWVzcGFjZSB3ZWJydGMgeworZW51bSBjbGFzcyBCdWZmZXJUeXBlOworfTsKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UgewpAQCAtNDQs
NyArNDgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+
JiYsIFN0cmluZyYmKTsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZm
ZXJGcm9tVmlkZW9GcmFtZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmKTsKLSAgICBDVlBpeGVs
QnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0
KTsKKyAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRo
LCBzaXplX3QgaGVpZ2h0LCB3ZWJydGM6OkJ1ZmZlclR5cGUpOwogCiAgICAgLy8gcnRjOjpWaWRl
b1NpbmtJbnRlcmZhY2UKICAgICB2b2lkIE9uRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1l
JikgZmluYWw7CkBAIC01OCw2ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJQb29sUmVmPiBtX3BpeGVsQnVmZmVyUG9vbDsKICAgICBzaXplX3QgbV9waXhlbEJ1
ZmZlclBvb2xXaWR0aCB7IDAgfTsKICAgICBzaXplX3QgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQg
eyAwIH07CisgICAgd2VicnRjOjpCdWZmZXJUeXBlIG1fcGl4ZWxCdWZmZXJQb29sQnVmZmVyVHlw
ZTsKIH07CiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVCbGFja1BpeGVsQnVm
ZmVyKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggZjI4MGI2ZTFiYTIwZmJmNjAzMmEw
ZGE2NmUxYWZkZmQwZDM1ZWYyYi4uNjFiMmQ4MDc3M2M1M2NmNDNhMzE1ZjdkMGI3YmM3OWI3MmNm
OTAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5tbQpAQCAtODgsMTIgKzg4LDIxIEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVh
dGVCbGFja1BpeGVsQnVmZmVyKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCkKICAgICByZXR1
cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7CiB9CiAKLUNWUGl4ZWxCdWZmZXJQb29sUmVmIFJlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRo
LCBzaXplX3QgaGVpZ2h0KQorQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWln
aHQsIHdlYnJ0Yzo6QnVmZmVyVHlwZSBidWZmZXJUeXBlKQogewotICAgIGlmICghbV9waXhlbEJ1
ZmZlclBvb2wgfHwgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCAhPSB3aWR0aCB8fCBtX3BpeGVsQnVm
ZmVyUG9vbEhlaWdodCAhPSBoZWlnaHQpIHsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBj
cmVhdGVQaXhlbEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCk7CisgICAgaWYgKCFtX3BpeGVsQnVm
ZmVyUG9vbCB8fCBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoICE9IHdpZHRoIHx8IG1fcGl4ZWxCdWZm
ZXJQb29sSGVpZ2h0ICE9IGhlaWdodCB8fCBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGUgIT0g
YnVmZmVyVHlwZSkgeworICAgICAgICBPU1R5cGUgcG9vbEJ1ZmZlclR5cGU7CisgICAgICAgIHN3
aXRjaCAoYnVmZmVyVHlwZSkgeworICAgICAgICBjYXNlIHdlYnJ0Yzo6QnVmZmVyVHlwZTo6STQy
MDoKKyAgICAgICAgICAgIHBvb2xCdWZmZXJUeXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlw
Q2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IHdlYnJ0Yzo6QnVmZmVyVHlwZTo6STAxMDoKKyAgICAgICAgICAgIHBvb2xCdWZmZXJUeXBlID0g
a0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjEwQmlQbGFuYXJGdWxsUmFuZ2U7CisgICAgICAg
IH0KKyAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBjcmVhdGVQaXhlbEJ1ZmZlclBvb2wod2lk
dGgsIGhlaWdodCwgcG9vbEJ1ZmZlclR5cGUpOwogICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdp
ZHRoID0gd2lkdGg7CiAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ID0gaGVpZ2h0Owor
ICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGUgPSBidWZmZXJUeXBlOwogICAgIH0K
ICAgICByZXR1cm4gbV9waXhlbEJ1ZmZlclBvb2wuZ2V0KCk7CiB9CkBAIC0xMTAsOCArMTE5LDgg
QEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZUNvY29hOjpwaXhlbEJ1ZmZlckZyb21WaWQKICAgICB9CiAKICAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbmV3UGl4ZWxCdWZmZXI7Ci0gICAgcmV0dXJuIHdlYnJ0Yzo6cGl4ZWxCdWZm
ZXJGcm9tRnJhbWUoZnJhbWUsIFt0aGlzLCAmbmV3UGl4ZWxCdWZmZXJdKHNpemVfdCB3aWR0aCwg
c2l6ZV90IGhlaWdodCkgLT4gQ1ZQaXhlbEJ1ZmZlclJlZiB7Ci0gICAgICAgIGF1dG8gcGl4ZWxC
dWZmZXJQb29sID0gdGhpcy0+cGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQpOworICAgIHJl
dHVybiB3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKGZyYW1lLCBbdGhpcywgJm5ld1BpeGVs
QnVmZmVyXShzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIHdlYnJ0Yzo6QnVmZmVyVHlwZSBi
dWZmZXJUeXBlKSAtPiBDVlBpeGVsQnVmZmVyUmVmIHsKKyAgICAgICAgYXV0byBwaXhlbEJ1ZmZl
clBvb2wgPSB0aGlzLT5waXhlbEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCwgYnVmZmVyVHlwZSk7
CiAgICAgICAgIGlmICghcGl4ZWxCdWZmZXJQb29sKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oCmluZGV4IGFkZDRkNzE2ZGQ1NDIw
NWUxYjE3MWY5NDc3M2M5ZTljMjM0OGQzNmIuLjVmYmFmNWVkYzY0MDI2MTRlZGFmZDdhZTE2ZGFl
ODBiYmIxN2E5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaApAQCAtNDEsNyAr
NDEsNyBAQCBzdGF0aWMgaW5saW5lIE9TVHlwZSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCkK
ICNlbmRpZgogfQogCi1XRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclBvb2xS
ZWY+IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpOwor
V0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBjcmVhdGVQaXhl
bEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5cGUpOwogV0VCQ09S
RV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyRnJv
bVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYpOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRp
bGl0aWVzLm1tCmluZGV4IDI1NGNhZTQyYjBlMjdhMjkyMDYxNGVlNTNkMjIzMTk2YzQ3Y2FiNGEu
LjI2MmVjMjc2YjRmMTMxZDcwMDNmM2YzMjBlMDk3NDZjZDRjZWNjMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0
aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZVZpZGVvVXRpbGl0aWVzLm1tCkBAIC0zMCw5ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBjcmVhdGVQaXhlbEJ1ZmZl
clBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KQorUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJQb29sUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVp
Z2h0LCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0KQogewotICAgIGNvbnN0IE9TVHlwZSB2aWRl
b0NhcHR1cmVGb3JtYXQgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVs
bFJhbmdlOwogICAgIGF1dG8gcGl4ZWxBdHRyaWJ1dGVzID0gQHsKICAgICAgICAgKF9fYnJpZGdl
IE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJXaWR0aEtleTogQCh3aWR0aCksCiAgICAgICAgIChf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKGhlaWdodCksCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmNwcAppbmRleCBhODJiYjk2Yzg3NDFkNTQ4MTRjNzU0NWNhYzVjMzY0NzNiYTEzOTdk
Li4yOTU0OGExYjdiOTlhNDI1YjMyMWExZWQ2NjkyNGE2MjczMDAwMmEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5j
cHAKQEAgLTExMyw4ICsxMTMsMTYgQEAgc3RhdGljIGlubGluZSBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbiB0b01lZGlhU2FtcGxlVmlkZW9Sb3RhdGlvbih3ZWJydGM6OlZpZGUKIHN0YXRpYyBp
bnQzMl90IGVuY29kZVZpZGVvRnJhbWUod2VicnRjOjpXZWJLaXRWaWRlb0VuY29kZXIgZW5jb2Rl
ciwgY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSwgYm9vbCBzaG91bGRFbmNvZGVBc0tl
eUZyYW1lKQogewogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBuZXdQaXhlbEJ1ZmZl
cjsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gd2VicnRjOjpwaXhlbEJ1ZmZlckZyb21GcmFtZShm
cmFtZSwgWyZuZXdQaXhlbEJ1ZmZlcl0oc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KSAtPiBD
VlBpeGVsQnVmZmVyUmVmIHsKLSAgICAgICAgYXV0byBwaXhlbEJ1ZmZlclBvb2wgPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5waXhlbEJ1ZmZlclBvb2wod2lkdGgs
IGhlaWdodCk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHdlYnJ0Yzo6cGl4ZWxCdWZmZXJGcm9t
RnJhbWUoZnJhbWUsIFsmbmV3UGl4ZWxCdWZmZXJdKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdo
dCwgd2VicnRjOjpCdWZmZXJUeXBlIGJ1ZmZlclR5cGUpIC0+IENWUGl4ZWxCdWZmZXJSZWYgewor
ICAgICAgICBPU1R5cGUgcG9vbEJ1ZmZlclR5cGU7CisgICAgICAgIHN3aXRjaCAoYnVmZmVyVHlw
ZSkgeworICAgICAgICBjYXNlIHdlYnJ0Yzo6QnVmZmVyVHlwZTo6STQyMDoKKyAgICAgICAgICAg
IHBvb2xCdWZmZXJUeXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1
bGxSYW5nZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHdlYnJ0Yzo6QnVmZmVy
VHlwZTo6STAxMDoKKyAgICAgICAgICAgIHBvb2xCdWZmZXJUeXBlID0ga0NWUGl4ZWxGb3JtYXRU
eXBlXzQyMFlwQ2JDcjEwQmlQbGFuYXJGdWxsUmFuZ2U7CisgICAgICAgIH0KKyAgICAgICAgYXV0
byBwaXhlbEJ1ZmZlclBvb2wgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2Rl
Y3MoKS5waXhlbEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCwgcG9vbEJ1ZmZlclR5cGUpOwogICAg
ICAgICBpZiAoIXBpeGVsQnVmZmVyUG9vbCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
CkBAIC0zNTksMTAgKzM2NywxMCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRW5j
b2RpbmcoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpEYQogICAgIHdlYnJ0
Yzo6UmVtb3RlVmlkZW9FbmNvZGVyOjplbmNvZGVDb21wbGV0ZShlbmNvZGVyLT5lbmNvZGVkSW1h
Z2VDYWxsYmFjaywgY29uc3RfY2FzdDx1aW50OF90Kj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUo
KSwgaW5mbywgZnJhZ21lbnRhdGlvbkhlYWRlci52YWx1ZSgpKTsKIH0KIAotQ1ZQaXhlbEJ1ZmZl
clBvb2xSZWYgTGliV2ViUlRDQ29kZWNzOjpwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBz
aXplX3QgaGVpZ2h0KQorQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgTGliV2ViUlRDQ29kZWNzOjpwaXhl
bEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5cGUgdHlwZSkKIHsK
ICAgICBpZiAoIW1fcGl4ZWxCdWZmZXJQb29sIHx8IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggIT0g
d2lkdGggfHwgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQgIT0gaGVpZ2h0KSB7Ci0gICAgICAgIG1f
cGl4ZWxCdWZmZXJQb29sID0gY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQpOwor
ICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbCA9IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbCh3aWR0aCwg
aGVpZ2h0LCB0eXBlKTsKICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOwog
ICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCA9IGhlaWdodDsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3Mu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5o
CmluZGV4IGJkNTUyYjU3ZjMxMDUyYmQyZmU5OGMxM2NkNTUyMzM5ZWFjMTcxMzMuLmQ5YjQxNjI1
MTQ5N2M2YTUyNDYyYzhiMDY1YWI1NGQzNGU3NDA1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCkBAIC05NCw3ICs5
NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyRW5jb2RlRnJhbWVDYWxsYmFjayhFbmNv
ZGVyJiwgdm9pZCogZW5jb2RlZEltYWdlQ2FsbGJhY2spOwogICAgIHZvaWQgc2V0RW5jb2RlUmF0
ZXMoRW5jb2RlciYsIHVpbnQzMl90IGJpdFJhdGUsIHVpbnQzMl90IGZyYW1lUmF0ZSk7CiAgICAg
Ci0gICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aWR0aCwg
c2l6ZV90IGhlaWdodCk7CisgICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQb29s
KHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgT1NUeXBlKTsKIAogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA2YzI1MzQyYjRjYWY5ZTY5Y2QzYjkyOGUzNWM4ZGZjNjM4N2EwNzUzLi40ZTk3Njc4MmJk
MjdjNGUzZTUyMWIyZGI3MDIzMGE0M2RkMWZiNzg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjAtMTAtMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBWUDkgUHJvZmlsZSAyICgxMC1iaXQgY29sb3IpIGluIFdlYlJUQworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjczCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MDI4Mzg4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy92cDktcHJvZmlsZTItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdnA5LXByb2ZpbGUyLmh0bWw6IEFkZGVkLgorCiAy
MDIwLTEwLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJ
bnRyb2R1Y2Ugd29ya2xldCBkZXN0aW5hdGlvbnMgYW5kIGFsbG93IHRvIGZldGNoIG1vZHVsZXMg
d2l0aCBDT1JTIGJhc2VkIG9uIGRlc3RpbmF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJydGMvdnA5LXByb2ZpbGUyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDkt
cHJvZmlsZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2YTYxMTdlYTI3MzY5YmYzMjBmNTM1
ZTgyODJiMWFhOTY2ZGUwMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMv
dnA5LXByb2ZpbGUyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworUEFTUyBWUDkg
cHJvZmlsZSAyaW4gZ2V0Q2FwYWJpbGl0aWVzCitQQVNTIFZlcmlmeSBWUDkgYWN0aXZhdGlvbgor
UEFTUyBTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlCitQQVNTIEVuc3VyaW5nIGNvbm5lY3Rpb24gc3Rh
dGUgaXMgY29ubmVjdGVkCitQQVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3Qg
YmUgYmxhY2sKK1BBU1MgVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjawor
UEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS1wcm9maWxlMi5odG1sIGIvTGF5b3V0VGVz
dHMvd2VicnRjL3ZwOS1wcm9maWxlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1YWMwYzY1NWQyNDViMTM4
MWE1YjQwOGJlNzExMzViYTU0ODYxNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJydGMvdnA5LXByb2ZpbGUyLmh0bWwKQEAgLTAsMCArMSw5MCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAg
ICAgICA8dGl0bGU+VlA5IGluIFdlYlJUQzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5IHBsYXlz
SW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3ZpZGVvPgorICAgICAgICA8Y2FudmFz
IGlkPSJjYW52YXMxIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAg
IDxjYW52YXMgaWQ9ImNhbnZhczIiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4K
KyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwv
Y2FudmFzPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdD4KK2xldCB2cDlQcm9maWxlMjsKK3Rlc3QoKCkgPT4geworICAgIGNvZGVj
cyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoInZpZGVvIikuY29kZWNzOworICAgIHZw
OVByb2ZpbGVzID0gY29kZWNzLmZpbHRlcihjb2RlYyA9PiB7IHJldHVybiBjb2RlYy5taW1lVHlw
ZSA9PT0gInZpZGVvL1ZQOSIgJiYgY29kZWMuc2RwRm10cExpbmUgPT09ICJwcm9maWxlLWlkPTIi
OyB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHZwOVByb2ZpbGVzLmxlbmd0aCwgMSk7CisgICAgdnA5
UHJvZmlsZTIgPSB2cDlQcm9maWxlc1swXTsKK30sICJWUDkgcHJvZmlsZSAyaW4gZ2V0Q2FwYWJp
bGl0aWVzIik7CisKK2lmICh2cDlQcm9maWxlMikgeworICAgIHByb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOwor
ICAgICAgICB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKFt2cDlQcm9maWxlMl0pOwor
ICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgICAg
ICAgIHBjLmNsb3NlKCk7CisgICAgICAgIGFzc2VydF90cnVlKGRlc2NyaXB0aW9uLnNkcC5pbmRl
eE9mKCJWUDkiKSAhPT0gLTEsICJWUDkgY29kZWMgaXMgaW4gdGhlIFNEUCIpOworICAgIH0sICJW
ZXJpZnkgVlA5IGFjdGl2YXRpb24iKQorCisgICAgdmFyIHRyYWNrOworICAgIHZhciByZW1vdGVU
cmFjazsKKyAgICB2YXIgcmVjZWl2aW5nQ29ubmVjdGlvbjsKKyAgICB2YXIgc2VuZGluZ0Nvbm5l
Y3Rpb247CisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHJldHVybiBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHt3aWR0aDogMzIwLCBoZWln
aHQ6IDI0MCwgZmFjaW5nTW9kZTogImVudmlyb25tZW50In19KS50aGVuKChsb2NhbFN0cmVhbSkg
PT4geworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgICAgICB0cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClb
MF07CisKKyAgICAgICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9u
KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHNlbmRpbmdDb25uZWN0aW9uID0gZmlyc3RDb25u
ZWN0aW9uOworICAgICAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJh
Y2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmdl
dFRyYW5zY2VpdmVycygpWzBdLnNldENvZGVjUHJlZmVyZW5jZXMoW3ZwOVByb2ZpbGUyXSk7Cisg
ICAgICAgICAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAg
ICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVUcmFjayA9IHRyYWNrRXZlbnQudHJhY2s7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7Cisg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pLnRoZW4oKHJlbW90ZVN0cmVhbSkgPT4geworICAgICAg
ICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gcmVtb3RlU3RyZWFtOworICAgICAgICAgICAgcmV0dXJu
IHZpZGVvLnBsYXkoKTsKKyAgICAgICAgfSk7CisgICAgfSwgIlNldHRpbmcgdmlkZW8gZXhjaGFu
Z2UiKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9PiB7CisgICAgICAgIGlmIChyZWNlaXZpbmdD
b25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0gImNvbm5lY3RlZCIpCisgICAgICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICByZWNlaXZpbmdDb25uZWN0aW9uLm9uY29u
bmVjdGlvbnN0YXRlY2hhbmdlID0gKCkgPT4geworICAgICAgICAgICAgICAgIGlmIChyZWNlaXZp
bmdDb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0gImNvbm5lY3RlZCIpCisgICAgICAgICAg
ICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBzZXRUaW1l
b3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CisgICAgICAgIH0pOwor
ICAgIH0sICJFbnN1cmluZyBjb25uZWN0aW9uIHN0YXRlIGlzIGNvbm5lY3RlZCIpOworCisgICAg
cHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2so
ZmFsc2UsIGNhbnZhczEsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8g
c2hvdWxkIG5vdCBiZSBibGFjayIpOworCisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7Cisg
ICAgICAgIHRyYWNrLmVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9C
bGFjayh0cnVlLCBjYW52YXMyLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGRpc2FibGVkLCB2
aWRlbyBzaG91bGQgYmUgYmxhY2siKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewor
ICAgICAgICB0cmFjay5lbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9C
bGFjayhmYWxzZSwgY2FudmFzMiwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBlbmFibGVkLCB2
aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIiKTsKK30KKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412293</attachid>
            <date>2020-10-26 01:27:16 -0700</date>
            <delta_ts>2020-10-26 05:50:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217673-20201026092713.patch</filename>
            <type>text/plain</type>
            <size>31200</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4OTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA4YTY5ZDkzOTQxMDEwNzNiYmE4ZjY2NTg5N2MwNmY0MGQzMWM0MzQwLi4xMDE5
MTc0NzYzY2M4ZmM3ODJlMGMxNjUwOTVlYmZiNjY2ZGVhYTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0xMC0yNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFZQOSBQ
cm9maWxlIDIgKDEwLWJpdCBjb2xvcikgaW4gV2ViUlRDCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwMjgzODg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgVlA5IHByb2ZpbGUgMCBhbmQgMi4KKyAgICAgICAgVGhpcyByZXF1
aXJlcyBjb3JyZWN0bHkgaGFuZGxpbmcgMTAtYml0IGRlY29kZWQgYnVmZmVycyBhcyBpcyBkb25l
IGJ5IHRoZSBNU0UgY29kZSBwYXRoLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2Vi
cnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHA6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oOgorICAgICAgICAq
IFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW06CisgICAgICAgICh3
ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nk
ay9XZWJLaXQvV2ViS2l0VlA5RGVjb2Rlci5jcHA6CisgICAgICAgICh3ZWJydGM6OldlYktpdFZQ
OURlY29kZXJSZWNlaXZlcjo6RGVjb2RlZCk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9hcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyVlA5Lmg6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyVlA5Lm1t
OgorICAgICAgICAoK1tSVENWaWRlb0VuY29kZXJWUDkgdnA5RW5jb2RlcjpdKToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVs
dFZpZGVvRGVjb2RlckZhY3RvcnkubToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3Rvcnkgc3VwcG9ydGVkQ29kZWNzXSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5
Lm06CisgICAgICAgICgrW1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5IHN1cHBvcnRlZENv
ZGVjc1dpdGhIMjY1OnZwOTpdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZh
Y3RvcnkgY3JlYXRlRW5jb2RlcjpdKToKKwogMjAyMC0xMC0yNCAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQmlnU3VyXSBBcHBlbmRpbmcgYSBuZXcgV2ViTSBp
bml0IHNlZ21lbnQgYmV0d2VlbiBDbHVzdGVyIGVsZW1lbnRzIHRocm93cyBhbiBlcnJvcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDc0OTZjYzdmZGEwZTk4MWQyYmUwOWE3NDlmYjJhNGEyNzNiYjI1YmUuLjkxNTcw
NjVlYmQ4NDYzNGU3YWE2OThiMTlkZGZmNzYyYTFmNTQ5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAyMC0xMC0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFZQOSBQcm9maWxlIDIgKDEwLWJpdCBjb2xvcikgaW4g
V2ViUlRDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTc2NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMjgzODg1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiBjYXNlIHNvZnR3YXJlIFZQOSBkZWNv
ZGVkIGJ1ZmZlciBpcyAxMCBiaXRzLCB3ZSB1c2Uga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JD
cjEwQmlQbGFuYXJGdWxsUmFuZ2UuCisKKyAgICAgICAgVGVzdDogd2VicnRjL3ZwOS1wcm9maWxl
Mi5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpwaXhlbEJ1
ZmZlckZyb21WaWRlb0ZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
UGl4ZWxCdWZmZXJQb29sKToKKwogMjAyMC0xMC0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgTWFrZSB1c2Ugb2Ygc2lnbmFsbGluZyB0aHJlYWQgd2hlbiBj
cmVhdGluZyB0aGUgcGVlciBjb25uZWN0aW9uIGZhY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2QyNjJmYTVj
NjNjODU3YzhlMDZlNzdjYmIzYWE4ZGExNDYyOGEzYS4uY2E0NmM2YmFlODkzMjMzOGYyYWRlMjll
ZjBhZTkzMWFlZTdjNTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0yNiAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIFZQOSBQcm9maWxlIDIgKDEwLWJpdCBjb2xvcikgaW4gV2ViUlRDCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NzMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzcwMjgzODg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnBpeGVsQnVmZmVyUG9vbCk6CisKIDIw
MjAtMTAtMjIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSVBD
IHRlc3RpbmcgQVBJIHNob3VsZCBleHBvc2UgQXJyYXlCdWZmZXIgZm9yIGFuIHVua25vd24gZGVj
b2RlZCBhcmd1bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0Nv
bmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4IDYxZWE2NmRjYWIzYzE2
MDA0MWI5Y2I4ODRlNTc5YmU2MGRjMmQzZDYuLmFiMjdkMGYxOTRlZDY2ZmZkOWNjZWMxYzNmZDU2
NDk1YWRiNmI0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25m
aWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAgLTEwOSw3ICsxMDksNyBA
QCBfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1
RU5TXzlXZWJLaXRWUDlFCiBfX1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93
ZWRFYgogX19aTjZ3ZWJydGMzMXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRFYgogX19a
TjZ3ZWJydGMyNHJlZ2lzdGVyV2ViS2l0VlA5RGVjb2RlckV2Ci1fX1pONndlYnJ0YzIwcGl4ZWxC
dWZmZXJGcm9tRnJhbWVFUktOU18xMFZpZGVvRnJhbWVFUktOU3QzX18xOGZ1bmN0aW9uSUZQMTBf
X0NWQnVmZmVybW1FRUUKK19fWk42d2VicnRjMjBwaXhlbEJ1ZmZlckZyb21GcmFtZUVSS05TXzEw
VmlkZW9GcmFtZUVSS05TdDNfXzE4ZnVuY3Rpb25JRlAxMF9fQ1ZCdWZmZXJtbU5TXzEwQnVmZmVy
VHlwZUVFRUUKIF9fWk42d2VicnRjMThwaXhlbEJ1ZmZlclRvRnJhbWVFUDEwX19DVkJ1ZmZlcgog
X19aTjNydGMyNEJhc2ljUGFja2V0U29ja2V0RmFjdG9yeTE5Q3JlYXRlQXN5bmNSZXNvbHZlckV2
CiBfX1pOM3J0YzI0QmFzaWNQYWNrZXRTb2NrZXRGYWN0b3J5QzJFdgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0u
ZXhwIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0
Yy5pT1NzaW0uZXhwCmluZGV4IDYxZWE2NmRjYWIzYzE2MDA0MWI5Y2I4ODRlNTc5YmU2MGRjMmQz
ZDYuLmFiMjdkMGYxOTRlZDY2ZmZkOWNjZWMxYzNmZDU2NDk1YWRiNmI0ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9T
c2ltLmV4cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLmlPU3NpbS5leHAKQEAgLTEwOSw3ICsxMDksNyBAQCBfX1pONndlYnJ0YzI2Y3Jl
YXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFCiBf
X1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWRFYgogX19aTjZ3ZWJydGMz
MXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRFYgogX19aTjZ3ZWJydGMyNHJlZ2lzdGVy
V2ViS2l0VlA5RGVjb2RlckV2Ci1fX1pONndlYnJ0YzIwcGl4ZWxCdWZmZXJGcm9tRnJhbWVFUktO
U18xMFZpZGVvRnJhbWVFUktOU3QzX18xOGZ1bmN0aW9uSUZQMTBfX0NWQnVmZmVybW1FRUUKK19f
Wk42d2VicnRjMjBwaXhlbEJ1ZmZlckZyb21GcmFtZUVSS05TXzEwVmlkZW9GcmFtZUVSS05TdDNf
XzE4ZnVuY3Rpb25JRlAxMF9fQ1ZCdWZmZXJtbU5TXzEwQnVmZmVyVHlwZUVFRUUKIF9fWk42d2Vi
cnRjMThwaXhlbEJ1ZmZlclRvRnJhbWVFUDEwX19DVkJ1ZmZlcgogX19aTjNydGMyNEJhc2ljUGFj
a2V0U29ja2V0RmFjdG9yeTE5Q3JlYXRlQXN5bmNSZXNvbHZlckV2CiBfX1pOM3J0YzI0QmFzaWNQ
YWNrZXRTb2NrZXRGYWN0b3J5QzJFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwCmluZGV4IDRlZWRk
NmVlOTk2Y2I2YjhhNjE5MDM2MTcwNTZkNzRmYmUzYTJkNjkuLjk2ODYwNzY4YzkzYWYzYTQ5M2Vm
YWQ4NDYzYWJjMWY1MGZkNDgwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAKQEAgLTEwOSw3
ICsxMDksNyBAQCBfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBX
ZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFCiBfX1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5j
b2RlckFsbG93ZWRFYgogX19aTjZ3ZWJydGMzMXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJs
ZWRFYgogX19aTjZ3ZWJydGMyNHJlZ2lzdGVyV2ViS2l0VlA5RGVjb2RlckV2Ci1fX1pONndlYnJ0
YzIwcGl4ZWxCdWZmZXJGcm9tRnJhbWVFUktOU18xMFZpZGVvRnJhbWVFUktOU3QzX18xOGZ1bmN0
aW9uSUZQMTBfX0NWQnVmZmVybW1FRUUKK19fWk42d2VicnRjMjBwaXhlbEJ1ZmZlckZyb21GcmFt
ZUVSS05TXzEwVmlkZW9GcmFtZUVSS05TdDNfXzE4ZnVuY3Rpb25JRlAxMF9fQ1ZCdWZmZXJtbU5T
XzEwQnVmZmVyVHlwZUVFRUUKIF9fWk42d2VicnRjMThwaXhlbEJ1ZmZlclRvRnJhbWVFUDEwX19D
VkJ1ZmZlcgogX19aTjNydGMyNEJhc2ljUGFja2V0U29ja2V0RmFjdG9yeTE5Q3JlYXRlQXN5bmNS
ZXNvbHZlckV2CiBfX1pOM3J0YzI0QmFzaWNQYWNrZXRTb2NrZXRGYWN0b3J5QzJFdgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktp
dC9XZWJLaXRVdGlsaXRpZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggMDdkNWNlMzc0YmY2Mjgw
YmJjN2EyY2U0ZTBlMDAyOTFiMmJiYmU5Zi4uZDdkMmJkMGU4MmUyMGFiZGM1ZmZlYWZlNDAyNDRi
MDQ2MDJiMTE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5o
CkBAIC01NSw5ICs1NSw4IEBAIGJvb2wgaXNIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZCgpOwog
dm9pZCBzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkKGJvb2wpOwogYm9vbCBpc0gyNjRM
b3dMYXRlbmN5RW5jb2RlckVuYWJsZWQoKTsKIAotQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ckZyb21GcmFtZShjb25zdCBWaWRlb0ZyYW1lJiwgY29uc3Qgc3RkOjpmdW5jdGlvbjxDVlBpeGVs
QnVmZmVyUmVmKHNpemVfdCwgc2l6ZV90KT4mKTsKK2VudW0gY2xhc3MgQnVmZmVyVHlwZSB7IEk0
MjAsIEkwMTAgfTsKK0NWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGcm9tRnJhbWUoY29uc3Qg
VmlkZW9GcmFtZSYsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Q1ZQaXhlbEJ1ZmZlclJlZihzaXplX3Qs
IHNpemVfdCwgQnVmZmVyVHlwZSk+Jik7CiBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRl
b0ZyYW1lQnVmZmVyPiBwaXhlbEJ1ZmZlclRvRnJhbWUoQ1ZQaXhlbEJ1ZmZlclJlZik7CiAKLUNW
UGl4ZWxCdWZmZXJQb29sUmVmIGNyZWF0ZVBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNp
emVfdCBoZWlnaHQpOwotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0
aWVzLm1tCmluZGV4IDU0MzRlMzc1ODE5MTgxMmQ5ZjFhMzY0ZDJjMzhiYjdlNTViZmNjODIuLjhk
ZGM2YTNkOGJlYWJjMGVkY2YzYTg2MjgxOTZiMWJjMjJjNTQ1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRp
bGl0aWVzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiV2ViS2l0VXRpbGl0aWVzLmgiCiAKICNpbmNsdWRlICJuYXRpdmUvc3JjL29iamNfZnJhbWVf
YnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgogI2luY2x1ZGUgInRoaXJk
X3BhcnR5L2xpYnl1di9pbmNsdWRlL2xpYnl1di9jb252ZXJ0X2Zyb20uaCIKICNpbmNsdWRlICJs
aWJ5dXYvY3B1X2lkLmgiCiAjaW5jbHVkZSAibGlieXV2L3Jvdy5oIgpAQCAtMTk3LDIxICsxOTgs
MzAgQEAgc3RhdGljIGJvb2wgQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGNvbnN0IHdlYnJ0
Yzo6STAxMEJ1ZmZlckludGVyZmFjZSogZnJhbWUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlckZyb21GcmFtZShjb25zdCBWaWRlb0ZyYW1lJiBmcmFt
ZSwgY29uc3Qgc3RkOjpmdW5jdGlvbjxDVlBpeGVsQnVmZmVyUmVmKHNpemVfdCwgc2l6ZV90KT4m
IG1ha2VQaXhlbEJ1ZmZlcikKK0NWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGcm9tRnJhbWUo
Y29uc3QgVmlkZW9GcmFtZSYgZnJhbWUsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Q1ZQaXhlbEJ1ZmZl
clJlZihzaXplX3QsIHNpemVfdCwgQnVmZmVyVHlwZSk+JiBtYWtlUGl4ZWxCdWZmZXIpCiB7Ci0g
ICAgaWYgKGZyYW1lLnZpZGVvX2ZyYW1lX2J1ZmZlcigpLT50eXBlKCkgIT0gVmlkZW9GcmFtZUJ1
ZmZlcjo6VHlwZTo6a05hdGl2ZSkgewotICAgICAgICBhdXRvIHBpeGVsQnVmZmVyID0gbWFrZVBp
eGVsQnVmZmVyKGZyYW1lLnZpZGVvX2ZyYW1lX2J1ZmZlcigpLT53aWR0aCgpLCBmcmFtZS52aWRl
b19mcmFtZV9idWZmZXIoKS0+aGVpZ2h0KCkpOwotICAgICAgICBpZiAoIXBpeGVsQnVmZmVyKQor
ICAgIGF1dG8gYnVmZmVyID0gZnJhbWUudmlkZW9fZnJhbWVfYnVmZmVyKCk7CisgICAgaWYgKGJ1
ZmZlci0+dHlwZSgpICE9IFZpZGVvRnJhbWVCdWZmZXI6OlR5cGU6OmtOYXRpdmUpIHsKKyAgICAg
ICAgYXV0byB0eXBlID0gYnVmZmVyLT50eXBlKCk7CisgICAgICAgIGlmICh0eXBlICE9IFZpZGVv
RnJhbWVCdWZmZXI6OlR5cGU6OmtJNDIwICYmIHR5cGUgIT0gVmlkZW9GcmFtZUJ1ZmZlcjo6VHlw
ZTo6a0kwMTApIHsKKyAgICAgICAgICAgIFJUQ19MT0coV0FSTklORykgPDwgIlZpZGVvIGZyYW1l
IGJ1ZmZlciB0eXBlIGlzIG5vdCBleHBlY3RlZC4iOwogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIH0KIAotICAgICAgICBpZiAoZnJhbWUudmlkZW9fZnJhbWVfYnVmZmVyKCkt
PnR5cGUoKSA9PSBWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlOjprSTQyMCkKLSAgICAgICAgICAgIENv
cHlWaWRlb0ZyYW1lVG9QaXhlbEJ1ZmZlcihmcmFtZS52aWRlb19mcmFtZV9idWZmZXIoKS0+R2V0
STQyMCgpLCBwaXhlbEJ1ZmZlcik7Ci0gICAgICAgIGVsc2UgaWYgKGZyYW1lLnZpZGVvX2ZyYW1l
X2J1ZmZlcigpLT50eXBlKCkgPT0gVmlkZW9GcmFtZUJ1ZmZlcjo6VHlwZTo6a0kwMTApCi0gICAg
ICAgICAgICBDb3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIoZnJhbWUudmlkZW9fZnJhbWVfYnVm
ZmVyKCktPkdldEkwMTAoKSwgcGl4ZWxCdWZmZXIpOworICAgICAgICBhdXRvIHBpeGVsQnVmZmVy
ID0gbWFrZVBpeGVsQnVmZmVyKGJ1ZmZlci0+d2lkdGgoKSwgYnVmZmVyLT5oZWlnaHQoKSwgdHlw
ZSA9PSBWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlOjprSTQyMCA/IEJ1ZmZlclR5cGU6Okk0MjAgOiBC
dWZmZXJUeXBlOjpJMDEwKTsKKyAgICAgICAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgICAgICAg
ICAgUlRDX0xPRyhXQVJOSU5HKSA8PCAiUGl4ZWwgYnVmZmVyIGNyZWF0aW9uIGZhaWxlZC4iOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBpZiAodHlw
ZSA9PSBWaWRlb0ZyYW1lQnVmZmVyOjpUeXBlOjprSTQyMCkKKyAgICAgICAgICAgIENvcHlWaWRl
b0ZyYW1lVG9QaXhlbEJ1ZmZlcihidWZmZXItPkdldEk0MjAoKSwgcGl4ZWxCdWZmZXIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBDb3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIoYnVmZmVy
LT5HZXRJMDEwKCksIHBpeGVsQnVmZmVyKTsKICAgICAgICAgcmV0dXJuIHBpeGVsQnVmZmVyOwog
ICAgIH0KIAotICAgIGF1dG8gKmZyYW1lQnVmZmVyID0gc3RhdGljX2Nhc3Q8T2JqQ0ZyYW1lQnVm
ZmVyKj4oZnJhbWUudmlkZW9fZnJhbWVfYnVmZmVyKCkuZ2V0KCkpLT53cmFwcGVkX2ZyYW1lX2J1
ZmZlcigpOworICAgIGF1dG8gKmZyYW1lQnVmZmVyID0gc3RhdGljX2Nhc3Q8T2JqQ0ZyYW1lQnVm
ZmVyKj4oYnVmZmVyLmdldCgpKS0+d3JhcHBlZF9mcmFtZV9idWZmZXIoKTsKICAgICBpZiAoIVtm
cmFtZUJ1ZmZlciBpc0tpbmRPZkNsYXNzOltSVENDVlBpeGVsQnVmZmVyIGNsYXNzXV0pCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yMTksMjkgKzIyOSw0IEBAIENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXJGcm9tRnJhbWUoY29uc3QgVmlkZW9GcmFtZSYgZnJhbWUsIGNvbnN0IHN0
ZDo6ZnVuY3RpCiAgICAgcmV0dXJuIHJ0Y1BpeGVsQnVmZmVyLnBpeGVsQnVmZmVyOwogfQogCi1D
VlBpeGVsQnVmZmVyUG9vbFJlZiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBz
aXplX3QgaGVpZ2h0KQotewotICAgIGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQgPSBr
Q1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlOwotICAgIGF1dG8g
cGl4ZWxBdHRyaWJ1dGVzID0gQHsKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4
ZWxCdWZmZXJXaWR0aEtleTogQCh3aWR0aCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKGhlaWdodCksCi0gICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBAKHZpZGVvQ2FwdHVy
ZUZvcm1hdCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJ
bWFnZUNvbXBhdGliaWxpdHlLZXk6IEBOTywKLSNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCi0gICAg
ICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsRm9ybWF0T3BlbkdMRVNDb21wYXRpYmls
aXR5IDogQFlFUywKLSNlbHNlCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVs
QnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMsCi0jZW5kaWYKLSAgICAgICAgKF9f
YnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5IDog
QHsgfQotICAgIH07Ci0KLSAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwb29sID0gbnVsbHB0cjsK
LSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG51bGxwdHIsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcGl4ZWxBdHRyaWJ1dGVz
LCAmcG9vbCk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIHBvb2w7Ci19Ci0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2Vi
S2l0VlA5RGVjb2Rlci5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFZQOURlY29kZXIuY3BwCmluZGV4IGUyZDc1NDI1NzNhMGQw
MGUwMTM2NGQ2NmEyZDNlMjY0NmMxZTEyOGYuLmIwZDgyNWUzNjFmYWQzOGU5ZDk0NDg0NWY0YzA1
NGRlYTFkZTczNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VlA5RGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRWUDlEZWNv
ZGVyLmNwcApAQCAtMzYyLDcgKzM2Miw3IEBAIE9TU3RhdHVzIFdlYktpdFZQOURlY29kZXJSZWNl
aXZlcjo6ZGVjb2RlckZhaWxlZChpbnQgZXJyb3IpCiAKIGludDMyX3QgV2ViS2l0VlA5RGVjb2Rl
clJlY2VpdmVyOjpEZWNvZGVkKFZpZGVvRnJhbWUmIGZyYW1lKQogewotICAgIGF1dG8gcGl4ZWxC
dWZmZXIgPSBwaXhlbEJ1ZmZlckZyb21GcmFtZShmcmFtZSwgW3RoaXNdKHNpemVfdCB3aWR0aCwg
c2l6ZV90IGhlaWdodCkgLT4gQ1ZQaXhlbEJ1ZmZlclJlZiB7CisgICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IHBpeGVsQnVmZmVyRnJvbUZyYW1lKGZyYW1lLCBbdGhpc10oc2l6ZV90IHdpZHRoLCBzaXpl
X3QgaGVpZ2h0LCBCdWZmZXJUeXBlKSAtPiBDVlBpeGVsQnVmZmVyUmVmIHsKICAgICAgICAgQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIGlmIChDVlBpeGVs
QnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fcGl4ZWxC
dWZmZXJQb29sLCAmcGl4ZWxCdWZmZXIpID09IGtDVlJldHVyblN1Y2Nlc3MpCiAgICAgICAgICAg
ICByZXR1cm4gcGl4ZWxCdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNv
ZGVyVlA5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9hcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyVlA5LmgKaW5kZXggODIyNjQ3NTlj
NmFmNjYyYzQzYzVjZGQ5MDY5ZGNiOWIxYjk2M2Y0My4uMWRkZTAyZWUyMWRjZDNlMjlhODk5MWZm
ZmFhMzZlNTJjNjY2ZWVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlclZQ
OS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJWUDkuaApAQCAtMTEsNiArMTEsNyBA
QAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKICNpbXBvcnQgIlJUQ01hY3Jv
cy5oIgorI2ltcG9ydCAiUlRDVmlkZW9Db2RlY0luZm8uaCIKICNpbXBvcnQgIlJUQ1ZpZGVvRW5j
b2Rlci5oIgogCiBSVENfT0JKQ19FWFBPUlQKQEAgLTIxLDYgKzIyLDYgQEAgX19hdHRyaWJ1dGVf
Xygob2JqY19ydW50aW1lX25hbWUoIldLX1JUQ1ZpZGVvRW5jb2RlclZQOSIpKSkKICAqIFJUQ1Bl
ZXJDb25uZWN0aW9uRmFjdG9yeS4gRXZlbiB0aG91Z2ggaXQgaW1wbGVtZW50cyB0aGUgUlRDVmlk
ZW9FbmNvZGVyIHByb3RvY29sLCBpdCBjYW4gbm90IGJlCiAgKiB1c2VkIGluZGVwZW5kZW50bHkg
ZnJvbSB0aGUgUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5LgogICovCi0rIChpZDxSVENWaWRlb0Vu
Y29kZXI+KXZwOUVuY29kZXI7CisrIChpZDxSVENWaWRlb0VuY29kZXI+KXZwOUVuY29kZXI6KFJU
Q1ZpZGVvQ29kZWNJbmZvICopY29kZWNJbmZvOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fY29k
ZWMvUlRDVmlkZW9FbmNvZGVyVlA5Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5t
bQppbmRleCBhNWQ4NDA4NGQwNDZlNDQ3Yzc4N2FiMmVjNjI3Njg2OWEyNjczOTA5Li5mM2FkYzRi
MWUxZGFiYWE2OTAzNzZhNjEyZDM0NDU5ODA2ZGFjZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fY29kZWMv
UlRDVmlkZW9FbmNvZGVyVlA5Lm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJWUDku
bW0KQEAgLTE1LDEyICsxNSwxMyBAQAogI2ltcG9ydCAiUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRW5j
b2Rlci5oIgogCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOS9pbmNs
dWRlL3ZwOS5oIgorI2luY2x1ZGUgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENWaWRl
b0NvZGVjSW5mbytQcml2YXRlLmgiCiAKIEBpbXBsZW1lbnRhdGlvbiBSVENWaWRlb0VuY29kZXJW
UDkKIAotKyAoaWQ8UlRDVmlkZW9FbmNvZGVyPil2cDlFbmNvZGVyIHsKKysgKGlkPFJUQ1ZpZGVv
RW5jb2Rlcj4pdnA5RW5jb2RlcjooUlRDVmlkZW9Db2RlY0luZm8gKiljb2RlY0luZm8gewogICBy
ZXR1cm4gW1tSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyIGFsbG9jXQotICAgICAgaW5pdFdp
dGhOYXRpdmVFbmNvZGVyOnN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2Rlcj4od2Vi
cnRjOjpWUDlFbmNvZGVyOjpDcmVhdGUoKSldOworICAgICAgaW5pdFdpdGhOYXRpdmVFbmNvZGVy
OnN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2Rlcj4od2VicnRjOjpWUDlFbmNvZGVy
OjpDcmVhdGUoY3JpY2tldDo6VmlkZW9Db2RlYyhjb2RlY0luZm8ubmF0aXZlU2RwVmlkZW9Gb3Jt
YXQpKSldOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1
bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRl
b0RlY29kZXJGYWN0b3J5Lm0KaW5kZXggZTA0MjJjZjUwMDY0N2VmY2Q4NzIyODU2MTBjZDAyM2E2
ZjRhZjAzYS4uMDQzN2U2YTM0YjNkN2JiNDI3ODUyOGYyOWVhZWQxZTk4Nzc1NmZlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQpAQCAt
NzksOCArNzksMTMgQEAgLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRzSDI2NSB2cDk6
KGJvb2wpc3VwcG9ydHNWUDkgdnA5VlRCOihib29sKXN1cHBvcnQKICAgW2NvZGVjcyBhZGRPYmpl
Y3Q6dnA4SW5mb107CiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAgaWYgKF9zdXBwb3J0
c1ZQOSkgewotICAgIFJUQ1ZpZGVvQ29kZWNJbmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0NvZGVj
SW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZV07Ci0gICAgW2Nv
ZGVjcyBhZGRPYmplY3Q6dnA5SW5mb107CisgICAgW2NvZGVjcyBhZGRPYmplY3Q6W1tSVENWaWRl
b0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZSBwYXJh
bWV0ZXJzOiBAeworICAgICAgQCJwcm9maWxlLWlkIiA6IEAiMCIsCisgICAgfV1dOworCisgICAg
W2NvZGVjcyBhZGRPYmplY3Q6W1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1l
OmtSVENWaWRlb0NvZGVjVnA5TmFtZSBwYXJhbWV0ZXJzOiBAeworICAgICAgQCJwcm9maWxlLWlk
IiA6IEAiMiIsCisgICAgfV1dOwogICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCmluZGV4IDlmZmYwMmRmMDE1MzVhNzQ4
ODMyODFjNTQ4NWNhM2ZmNDk3YWZmNmMuLmFlZTJkZmZkYTBkODBjMzMxZjQxNzdkZTE0OTRkZDgy
MDkxOTYzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5j
b2RlckZhY3RvcnkubQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29k
ZXJGYWN0b3J5Lm0KQEAgLTc3LDggKzc3LDEzIEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClz
dXBwb3J0c0gyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5CiAKICNpZiBkZWZpbmVkKFJUQ19FTkFC
TEVfVlA5KQogICBpZiAoc3VwcG9ydHNWUDkpIHsKLSAgICBSVENWaWRlb0NvZGVjSW5mbyAqdnA5
SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9D
b2RlY1ZwOU5hbWVdOwotICAgIFtjb2RlY3MgYWRkT2JqZWN0OnZwOUluZm9dOworICAgIFtjb2Rl
Y3MgYWRkT2JqZWN0OltbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRD
VmlkZW9Db2RlY1ZwOU5hbWUgcGFyYW1ldGVyczogQHsKKyAgICAgIEAicHJvZmlsZS1pZCIgOiBA
IjAiLAorICAgIH1dXTsKKworICAgIFtjb2RlY3MgYWRkT2JqZWN0OltbUlRDVmlkZW9Db2RlY0lu
Zm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOU5hbWUgcGFyYW1ldGVyczog
QHsKKyAgICAgIEAicHJvZmlsZS1pZCIgOiBAIjIiLAorICAgIH1dXTsKICAgfQogI2VuZGlmCiAK
QEAgLTkyLDcgKzk3LDcgQEAgLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRzSDI2NSB2
cDk6KGJvb2wpc3VwcG9ydHNWUDkKICAgICByZXR1cm4gW1JUQ1ZpZGVvRW5jb2RlclZQOCB2cDhF
bmNvZGVyXTsKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICB9IGVsc2UgaWYgKFtpbmZv
Lm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA5TmFtZV0pIHsKLSAgICByZXR1
cm4gW1JUQ1ZpZGVvRW5jb2RlclZQOSB2cDlFbmNvZGVyXTsKKyAgICByZXR1cm4gW1JUQ1ZpZGVv
RW5jb2RlclZQOSB2cDlFbmNvZGVyOmluZm9dOwogI2VuZGlmCiAjaWYgIWRlZmluZWQoRElTQUJM
RV9IMjY1KQogICB9IGVsc2UgaWYgKEBhdmFpbGFibGUoaU9TIDExLCAqKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaAppbmRleCBmNTUyM2QzY2Vl
MWFiMmMzOTY0ZGYxMGRkMDMyNGQ5YzZkMDQxNDRjLi5hODZmNzA0YzJmYmNiMzIyNzFmNTA3NDQw
OTU5M2ViNDZiZDYwNzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2EuaApAQCAtMzUsNiArMzUsMTAgQEAgdXNpbmcgQ01TYW1wbGVCdWZmZXJSZWYg
PSBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIqOwogdXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xS
ZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9vbCo7CiB1c2luZyBDVlBpeGVsQnVmZmVyUmVm
ID0gc3RydWN0IF9fQ1ZCdWZmZXIqOwogCituYW1lc3BhY2Ugd2VicnRjIHsKK2VudW0gY2xhc3Mg
QnVmZmVyVHlwZTsKK307CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2EgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlIHsKQEAgLTQ0LDcgKzQ4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBSZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpW
aWRlb1RyYWNrSW50ZXJmYWNlPiYmLCBTdHJpbmcmJik7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IHBpeGVsQnVmZmVyRnJvbVZpZGVvRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0Zy
YW1lJik7Ci0gICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3
aWR0aCwgc2l6ZV90IGhlaWdodCk7CisgICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZm
ZXJQb29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgd2VicnRjOjpCdWZmZXJUeXBlKTsK
IAogICAgIC8vIHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlCiAgICAgdm9pZCBPbkZyYW1lKGNvbnN0
IHdlYnJ0Yzo6VmlkZW9GcmFtZSYpIGZpbmFsOwpAQCAtNTgsNiArNjIsNyBAQCBwcml2YXRlOgog
ICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9waXhlbEJ1ZmZlclBvb2w7CiAg
ICAgc2l6ZV90IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggeyAwIH07CiAgICAgc2l6ZV90IG1fcGl4
ZWxCdWZmZXJQb29sSGVpZ2h0IHsgMCB9OworICAgIHdlYnJ0Yzo6QnVmZmVyVHlwZSBtX3BpeGVs
QnVmZmVyUG9vbEJ1ZmZlclR5cGU7CiB9OwogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
Y3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IGYy
ODBiNmUxYmEyMGZiZjYwMzJhMGRhNjZlMWFmZGZkMGQzNWVmMmIuLjYxYjJkODA3NzNjNTNjZjQz
YTMxNWY3ZDBiN2JjNzliNzJjZjkwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTg4LDEyICs4OCwyMSBAQCBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihzaXplX3Qgd2lkdGgsIHNpemVf
dCBoZWlnaHQpCiAgICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwogfQogCi1DVlBpeGVs
QnVmZmVyUG9vbFJlZiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cGl4ZWxCdWZm
ZXJQb29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCkKK0NWUGl4ZWxCdWZmZXJQb29sUmVm
IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpwaXhlbEJ1ZmZlclBvb2woc2l6ZV90
IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCB3ZWJydGM6OkJ1ZmZlclR5cGUgYnVmZmVyVHlwZSkKIHsK
LSAgICBpZiAoIW1fcGl4ZWxCdWZmZXJQb29sIHx8IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggIT0g
d2lkdGggfHwgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQgIT0gaGVpZ2h0KSB7Ci0gICAgICAgIG1f
cGl4ZWxCdWZmZXJQb29sID0gY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQpOwor
ICAgIGlmICghbV9waXhlbEJ1ZmZlclBvb2wgfHwgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCAhPSB3
aWR0aCB8fCBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCAhPSBoZWlnaHQgfHwgbV9waXhlbEJ1ZmZl
clBvb2xCdWZmZXJUeXBlICE9IGJ1ZmZlclR5cGUpIHsKKyAgICAgICAgT1NUeXBlIHBvb2xCdWZm
ZXJUeXBlOworICAgICAgICBzd2l0Y2ggKGJ1ZmZlclR5cGUpIHsKKyAgICAgICAgY2FzZSB3ZWJy
dGM6OkJ1ZmZlclR5cGU6Okk0MjA6CisgICAgICAgICAgICBwb29sQnVmZmVyVHlwZSA9IGtDVlBp
eGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2U7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSB3ZWJydGM6OkJ1ZmZlclR5cGU6OkkwMTA6CisgICAgICAgICAg
ICBwb29sQnVmZmVyVHlwZSA9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3IxMEJpUGxhbmFy
RnVsbFJhbmdlOworICAgICAgICB9CisgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sID0gY3JlYXRl
UGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHBvb2xCdWZmZXJUeXBlKTsKICAgICAgICAg
bV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOwogICAgICAgICBtX3BpeGVsQnVmZmVyUG9v
bEhlaWdodCA9IGhlaWdodDsKKyAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xCdWZmZXJUeXBlID0g
YnVmZmVyVHlwZTsKICAgICB9CiAgICAgcmV0dXJuIG1fcGl4ZWxCdWZmZXJQb29sLmdldCgpOwog
fQpAQCAtMTEwLDggKzExOSw4IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cGl4ZWxCdWZmZXJGcm9tVmlkCiAgICAgfQogCiAg
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG5ld1BpeGVsQnVmZmVyOwotICAgIHJldHVy
biB3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKGZyYW1lLCBbdGhpcywgJm5ld1BpeGVsQnVm
ZmVyXShzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpIC0+IENWUGl4ZWxCdWZmZXJSZWYgewot
ICAgICAgICBhdXRvIHBpeGVsQnVmZmVyUG9vbCA9IHRoaXMtPnBpeGVsQnVmZmVyUG9vbCh3aWR0
aCwgaGVpZ2h0KTsKKyAgICByZXR1cm4gd2VicnRjOjpwaXhlbEJ1ZmZlckZyb21GcmFtZShmcmFt
ZSwgW3RoaXMsICZuZXdQaXhlbEJ1ZmZlcl0oc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCB3
ZWJydGM6OkJ1ZmZlclR5cGUgYnVmZmVyVHlwZSkgLT4gQ1ZQaXhlbEJ1ZmZlclJlZiB7CisgICAg
ICAgIGF1dG8gcGl4ZWxCdWZmZXJQb29sID0gdGhpcy0+cGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBo
ZWlnaHQsIGJ1ZmZlclR5cGUpOwogICAgICAgICBpZiAoIXBpeGVsQnVmZmVyUG9vbCkKICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaApp
bmRleCBhZGQ0ZDcxNmRkNTQyMDVlMWIxNzFmOTQ3NzNjOWU5YzIzNDhkMzZiLi41ZmJhZjVlZGM2
NDAyNjE0ZWRhZmQ3YWUxNmRhZTgwYmJiMTdhOTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRp
bGl0aWVzLmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIGlubGluZSBPU1R5cGUgcHJlZmVyZWRQ
aXhlbEJ1ZmZlckZvcm1hdCgpCiAjZW5kaWYKIH0KIAotV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJQb29sUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRo
LCBzaXplX3QgaGVpZ2h0KTsKK1dFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UG9vbFJlZj4gY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdo
dCwgT1NUeXBlKTsKIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBj
cmVhdGVQaXhlbEJ1ZmZlckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmKTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
VmlkZW9VdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5tbQppbmRleCAyNTRjYWU0MmIwZTI3YTI5MjA2MTRl
ZTUzZDIyMzE5NmM0N2NhYjRhLi4yNjJlYzI3NmI0ZjEzMWQ3MDAzZjNmMzIwZTA5NzQ2Y2Q0Y2Vj
YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVWaWRlb1V0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5tbQpAQCAtMzAsOSArMzAsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJl
Zj4gY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCkKK1Jl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHNpemVf
dCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgT1NUeXBlIHZpZGVvQ2FwdHVyZUZvcm1hdCkKIHsKLSAg
ICBjb25zdCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0ID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQy
MFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKICAgICBhdXRvIHBpeGVsQXR0cmlidXRlcyA9IEB7
CiAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyV2lkdGhLZXk6IEAo
d2lkdGgpLAogICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckhlaWdo
dEtleTogQChoZWlnaHQpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggYTgyYmI5NmM4NzQxZDU0ODE0Yzc1
NDVjYWM1YzM2NDczYmExMzk3ZC4uMjk1NDhhMWI3Yjk5YTQyNWIzMjFhMWVkNjY5MjRhNjI3MzAw
MDJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGli
V2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0xMTMsOCArMTEzLDE2IEBAIHN0YXRpYyBpbmxpbmUg
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gdG9NZWRpYVNhbXBsZVZpZGVvUm90YXRpb24od2Vi
cnRjOjpWaWRlCiBzdGF0aWMgaW50MzJfdCBlbmNvZGVWaWRlb0ZyYW1lKHdlYnJ0Yzo6V2ViS2l0
VmlkZW9FbmNvZGVyIGVuY29kZXIsIGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUsIGJv
b2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSkKIHsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gbmV3UGl4ZWxCdWZmZXI7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHdlYnJ0Yzo6cGl4
ZWxCdWZmZXJGcm9tRnJhbWUoZnJhbWUsIFsmbmV3UGl4ZWxCdWZmZXJdKHNpemVfdCB3aWR0aCwg
c2l6ZV90IGhlaWdodCkgLT4gQ1ZQaXhlbEJ1ZmZlclJlZiB7Ci0gICAgICAgIGF1dG8gcGl4ZWxC
dWZmZXJQb29sID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkucGl4
ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSB3ZWJy
dGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKGZyYW1lLCBbJm5ld1BpeGVsQnVmZmVyXShzaXplX3Qg
d2lkdGgsIHNpemVfdCBoZWlnaHQsIHdlYnJ0Yzo6QnVmZmVyVHlwZSBidWZmZXJUeXBlKSAtPiBD
VlBpeGVsQnVmZmVyUmVmIHsKKyAgICAgICAgT1NUeXBlIHBvb2xCdWZmZXJUeXBlOworICAgICAg
ICBzd2l0Y2ggKGJ1ZmZlclR5cGUpIHsKKyAgICAgICAgY2FzZSB3ZWJydGM6OkJ1ZmZlclR5cGU6
Okk0MjA6CisgICAgICAgICAgICBwb29sQnVmZmVyVHlwZSA9IGtDVlBpeGVsRm9ybWF0VHlwZV80
MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSB3ZWJydGM6OkJ1ZmZlclR5cGU6OkkwMTA6CisgICAgICAgICAgICBwb29sQnVmZmVyVHlw
ZSA9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3IxMEJpUGxhbmFyRnVsbFJhbmdlOworICAg
ICAgICB9CisgICAgICAgIGF1dG8gcGl4ZWxCdWZmZXJQb29sID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkubGliV2ViUlRDQ29kZWNzKCkucGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHBv
b2xCdWZmZXJUeXBlKTsKICAgICAgICAgaWYgKCFwaXhlbEJ1ZmZlclBvb2wpCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMzU5LDEwICszNjcsMTAgQEAgdm9pZCBMaWJXZWJSVEND
b2RlY3M6OmNvbXBsZXRlZEVuY29kaW5nKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIs
IElQQzo6RGEKICAgICB3ZWJydGM6OlJlbW90ZVZpZGVvRW5jb2Rlcjo6ZW5jb2RlQ29tcGxldGUo
ZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2ssIGNvbnN0X2Nhc3Q8dWludDhfdCo+KGRhdGEu
ZGF0YSgpKSwgZGF0YS5zaXplKCksIGluZm8sIGZyYWdtZW50YXRpb25IZWFkZXIudmFsdWUoKSk7
CiB9CiAKLUNWUGl4ZWxCdWZmZXJQb29sUmVmIExpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQ
b29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCkKK0NWUGl4ZWxCdWZmZXJQb29sUmVmIExp
YldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdo
dCwgT1NUeXBlIHR5cGUpCiB7CiAgICAgaWYgKCFtX3BpeGVsQnVmZmVyUG9vbCB8fCBtX3BpeGVs
QnVmZmVyUG9vbFdpZHRoICE9IHdpZHRoIHx8IG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ICE9IGhl
aWdodCkgewotICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbCA9IGNyZWF0ZVBpeGVsQnVmZmVyUG9v
bCh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBjcmVhdGVQaXhl
bEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCwgdHlwZSk7CiAgICAgICAgIG1fcGl4ZWxCdWZmZXJQ
b29sV2lkdGggPSB3aWR0aDsKICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQgPSBoZWln
aHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuaAppbmRleCBiZDU1MmI1N2YzMTA1MmJkMmZlOThjMTNjZDU1MjMz
OWVhYzE3MTMzLi5kOWI0MTYyNTE0OTdjNmE1MjQ2MmM4YjA2NWFiNTRkMzRlNzQwNWQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuaApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlckVuY29k
ZUZyYW1lQ2FsbGJhY2soRW5jb2RlciYsIHZvaWQqIGVuY29kZWRJbWFnZUNhbGxiYWNrKTsKICAg
ICB2b2lkIHNldEVuY29kZVJhdGVzKEVuY29kZXImLCB1aW50MzJfdCBiaXRSYXRlLCB1aW50MzJf
dCBmcmFtZVJhdGUpOwogICAgIAotICAgIENWUGl4ZWxCdWZmZXJQb29sUmVmIHBpeGVsQnVmZmVy
UG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpOworICAgIENWUGl4ZWxCdWZmZXJQb29s
UmVmIHBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9TVHlwZSk7
CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTkzYTIwZTk5OGJjMmMwYjRjYjYyOGMwNzhlMDE1YmVm
OTE3MGQyZS4uMTY4N2U1ZGNlYjVkZjU0YTU0YmMxNmRmMDhiY2Y1MGU4NjliZDM4YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgVlA5IFByb2ZpbGUgMiAoMTAtYml0IGNv
bG9yKSBpbiBXZWJSVEMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNzY3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAyODM4ODU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogd2VicnRjL3ZwOS1wcm9m
aWxlMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy92cDktcHJvZmlsZTIu
aHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMjUgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcu
IFVwZGF0ZSBiYXNlbGluZXMgYWZ0ZXIgcjI2ODk1OC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYnJ0Yy92cDktcHJvZmlsZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2VicnRjL3Zw
OS1wcm9maWxlMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEyY2RhOTk3MzNlZTg2ZTY5Y2Fj
MzFiNzdiNDMwZTM0ZDE0YWI4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0
Yy92cDktcHJvZmlsZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworCitQQVNTIFZQ
OSBwcm9maWxlIDIgaW4gZ2V0Q2FwYWJpbGl0aWVzCitQQVNTIFZlcmlmeSBWUDkgYWN0aXZhdGlv
bgorUEFTUyBTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlCitQQVNTIEVuc3VyaW5nIGNvbm5lY3Rpb24g
c3RhdGUgaXMgY29ubmVjdGVkCitQQVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBu
b3QgYmUgYmxhY2sKK1BBU1MgVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFj
aworUEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS1wcm9maWxlMi5odG1sIGIvTGF5b3V0
VGVzdHMvd2VicnRjL3ZwOS1wcm9maWxlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyMmE3ZTExMWVkNTZj
NmRkMzJkYjIyOGQ3OWY5MGFmMDlmZjU2NzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJydGMvdnA5LXByb2ZpbGUyLmh0bWwKQEAgLTAsMCArMSw5MCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
ICAgICAgICA8dGl0bGU+VlA5IGluIFdlYlJUQzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5IHBs
YXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3ZpZGVvPgorICAgICAgICA8Y2Fu
dmFzIGlkPSJjYW52YXMxIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAg
ICAgIDxjYW52YXMgaWQ9ImNhbnZhczIiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZh
cz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAi
PjwvY2FudmFzPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KK2xldCB2cDlQcm9maWxlMjsKK3Rlc3QoKCkgPT4geworICAgIGNv
ZGVjcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoInZpZGVvIikuY29kZWNzOworICAg
IHZwOVByb2ZpbGVzID0gY29kZWNzLmZpbHRlcihjb2RlYyA9PiB7IHJldHVybiBjb2RlYy5taW1l
VHlwZSA9PT0gInZpZGVvL1ZQOSIgJiYgY29kZWMuc2RwRm10cExpbmUgPT09ICJwcm9maWxlLWlk
PTIiOyB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKHZwOVByb2ZpbGVzLmxlbmd0aCwgMSk7CisgICAg
dnA5UHJvZmlsZTIgPSB2cDlQcm9maWxlc1swXTsKK30sICJWUDkgcHJvZmlsZSAyIGluIGdldENh
cGFiaWxpdGllcyIpOworCitpZiAodnA5UHJvZmlsZTIpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKKyAgICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcigidmlkZW8i
KTsKKyAgICAgICAgdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhbdnA5UHJvZmlsZTJd
KTsKKyAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOwor
ICAgICAgICBwYy5jbG9zZSgpOworICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdGlvbi5zZHAu
aW5kZXhPZigiVlA5IikgIT09IC0xLCAiVlA5IGNvZGVjIGlzIGluIHRoZSBTRFAiKTsKKyAgICB9
LCAiVmVyaWZ5IFZQOSBhY3RpdmF0aW9uIikKKworICAgIHZhciB0cmFjazsKKyAgICB2YXIgcmVt
b3RlVHJhY2s7CisgICAgdmFyIHJlY2VpdmluZ0Nvbm5lY3Rpb247CisgICAgdmFyIHNlbmRpbmdD
b25uZWN0aW9uOworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IDMyMCwg
aGVpZ2h0OiAyNDAsIGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCJ9fSkudGhlbigobG9jYWxTdHJl
YW0pID0+IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgICAgICAgICAgdHJhY2sgPSBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNr
cygpWzBdOworCisgICAgICAgICAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVj
dGlvbikgPT4geworICAgICAgICAgICAgICAgICAgICBzZW5kaW5nQ29ubmVjdGlvbiA9IGZpcnN0
Q29ubmVjdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNr
KHRyYWNrLCBsb2NhbFN0cmVhbSk7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlv
bi5nZXRUcmFuc2NlaXZlcnMoKVswXS5zZXRDb2RlY1ByZWZlcmVuY2VzKFt2cDlQcm9maWxlMl0p
OworICAgICAgICAgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAg
ICAgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNr
OworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0p
OworICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KS50aGVuKChyZW1vdGVTdHJlYW0pID0+IHsKKyAg
ICAgICAgICAgIHZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICAgICAgICAgIHJl
dHVybiB2aWRlby5wbGF5KCk7CisgICAgICAgIH0pOworICAgIH0sICJTZXR0aW5nIHZpZGVvIGV4
Y2hhbmdlIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBpZiAocmVjZWl2
aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAgICAg
ICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbi5v
bmNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAocmVj
ZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgc2V0
VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOworICAgICAgICB9
KTsKKyAgICB9LCAiRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQiKTsKKwor
ICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0Js
YWNrKGZhbHNlLCBjYW52YXMxLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZp
ZGVvIHNob3VsZCBub3QgYmUgYmxhY2siKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4g
eworICAgICAgICB0cmFjay5lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBjaGVja1Zp
ZGVvQmxhY2sodHJ1ZSwgY2FudmFzMiwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBkaXNhYmxl
ZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+
IHsKKyAgICAgICAgdHJhY2suZW5hYmxlZCA9IHRydWU7CisgICAgICAgIHJldHVybiBjaGVja1Zp
ZGVvQmxhY2soZmFsc2UsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZW5hYmxl
ZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayAyIik7Cit9CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>