<?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>220664</bug_id>
          
          <creation_ts>2021-01-15 12:27:55 -0800</creation_ts>
          <short_desc>[iOS] Emoji keyboard covers text field on twitter.com/messages</short_desc>
          <delta_ts>2021-01-15 15:57:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1719948</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-15 12:27:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/68400471&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719964</commentid>
    <comment_count>1</comment_count>
      <attachid>417724</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-15 13:01:17 -0800</bug_when>
    <thetext>Created attachment 417724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719975</commentid>
    <comment_count>2</comment_count>
      <attachid>417724</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-01-15 13:28:49 -0800</bug_when>
    <thetext>Comment on attachment 417724
Patch

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

r=me, nice work!

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1193
&gt; +    return !rect.isEmpty() &amp;&amp; CGRectContainsRect([self _contentRectForUserInteraction], rect);

NIT: here you use `[self _contentRectForUserInteraction]` but below you use `self._contentRectForUserInteraction` 😅

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1196
&gt; +- (void)_scrollToRevealSelectionIfNeeded

NIT: would `_scrollToAndRevealSelectionIfNeeded` be more clear/accurate?

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1208
&gt; +    WebCore::FloatRect userInteractionContentRect = self._contentRectForUserInteraction;

ditto (:1193)

&gt; LayoutTests/editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html:18
&gt; +    let initialContentOffsetY = (await UIHelper.contentOffset()).y;

Style: yuck.  While there&apos;s nothing technically wrong with this, I personally recommend not using `await` like this so that it&apos;s explicitly clear what&apos;s being waited for.

&gt; LayoutTests/editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html:22
&gt; +    let contentOffsetY = initialContentOffsetY;

Aside: is it worth it (or even possible) to write a test for your horizontal scrolling logic too?  Maybe zoom in on the page and pan over before focusing an `&lt;input&gt;`?

&gt; LayoutTests/editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html:25
&gt; +        contentOffsetY = (await UIHelper.contentOffset()).y;

ditto (:18)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719978</commentid>
    <comment_count>3</comment_count>
      <attachid>417724</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-15 13:33:49 -0800</bug_when>
    <thetext>Comment on attachment 417724
Patch

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

Thanks for the review!

&gt;&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1193
&gt;&gt; +    return !rect.isEmpty() &amp;&amp; CGRectContainsRect([self _contentRectForUserInteraction], rect);
&gt; 
&gt; NIT: here you use `[self _contentRectForUserInteraction]` but below you use `self._contentRectForUserInteraction` 😅

Whoops — I&apos;ll make this `self._contentRectForUserInteraction`.

&gt;&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1196
&gt;&gt; +- (void)_scrollToRevealSelectionIfNeeded
&gt; 
&gt; NIT: would `_scrollToAndRevealSelectionIfNeeded` be more clear/accurate?

Sounds good to me! Will rename.

&gt;&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:1208
&gt;&gt; +    WebCore::FloatRect userInteractionContentRect = self._contentRectForUserInteraction;
&gt; 
&gt; ditto (:1193)

This version (dot notation for property access) is preferred.

&gt;&gt; LayoutTests/editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html:18
&gt;&gt; +    let initialContentOffsetY = (await UIHelper.contentOffset()).y;
&gt; 
&gt; Style: yuck.  While there&apos;s nothing technically wrong with this, I personally recommend not using `await` like this so that it&apos;s explicitly clear what&apos;s being waited for.

Sounds good! Changing to just `let initialContentOffset = await UIHelper.contentOffset();`, and then using `initialContentOffset.y` below.

&gt;&gt; LayoutTests/editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html:22
&gt;&gt; +    let contentOffsetY = initialContentOffsetY;
&gt; 
&gt; Aside: is it worth it (or even possible) to write a test for your horizontal scrolling logic too?  Maybe zoom in on the page and pan over before focusing an `&lt;input&gt;`?

Hmm…unfortunately, I&apos;m not sure it&apos;s actually possible to write a test for horizontal scrolling, since it would require the software keyboard to grow horizontally (and overlap the selection as a result).

&gt;&gt; LayoutTests/editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html:25
&gt;&gt; +        contentOffsetY = (await UIHelper.contentOffset()).y;
&gt; 
&gt; ditto (:18)

Fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720041</commentid>
    <comment_count>4</comment_count>
      <attachid>417742</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-15 14:45:17 -0800</bug_when>
    <thetext>Created attachment 417742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720065</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-15 15:57:24 -0800</bug_when>
    <thetext>Committed r271543: &lt;https://trac.webkit.org/changeset/271543&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417742.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417724</attachid>
            <date>2021-01-15 13:01:17 -0800</date>
            <delta_ts>2021-01-15 13:28:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220664-20210115130116.patch</filename>
            <type>text/plain</type>
            <size>22466</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVhN2M5NjNmMWUzMTEzMjA0
MTJiYjQ5MmQ1MGVkNTk0NjEzMDNiMWIuLjFkNDZhZjNmNzBlN2RlZTQzNGZiOWE3ZTdkMWQ1YTA5
ZDRiM2JiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMjEtMDEtMTUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRW1vamkga2V5
Ym9hcmQgY292ZXJzIHRleHQgZmllbGQgb24gdHdpdHRlci5jb20vbWVzc2FnZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDY2NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjg0MDA0NzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWZ0ZXIgaU9TIDE0LCB0aGUgZW1vamkgc29mdHdhcmUga2V5Ym9h
cmQgbGF5b3V0IG5vdyBpbmNsdWRlcyBhIHNlYXJjaCBmaWVsZCB0aGF0IGNhbiBiZSB1c2VkIHRv
IGZpbHRlciBmb3IKKyAgICAgICAgc3BlY2lmaWMgZW1vamlzLiBUaGlzIHNsaWdodGx5IGluY3Jl
YXNlcyB0aGUgb3ZlcmFsbCBoZWlnaHQgb2YgdGhlIHNvZnR3YXJlIGtleWJvYXJkIHdoZW4gdGhl
IGVtb2ppIGtleXBsYW5lIGlzCisgICAgICAgIGFjdGl2ZTsgaW4gdHVybiwgdGhpcyBtZWFucyB0
aGF0IGlmIHRoZSBzZWxlY3Rpb24gb3IgY2FyZXQgaXMgcG9zaXRpb25lZCByaWdodCBhYm92ZSB0
aGUgdG9wIG9mIHRoZSBzb2Z0d2FyZQorICAgICAgICBrZXlib2FyZCB3aGVuIHRoZSBub3JtYWwg
KGFscGhhYmV0aWMpIGtleXBsYW5lIGlzIGFjdGl2ZSwgc3dpdGNoaW5nIHRvIHRoZSBlbW9qaSBr
ZXlwbGFuZSB3aWxsIGNhdXNlIHRoZQorICAgICAgICBrZXlib2FyZCB0byBvdmVybGFwIHRoZSBz
ZWxlY3Rpb24sIG1ha2luZyBpdCBkaWZmaWN1bHQgdG8gc2VlIGluc2VydGVkIHRleHQuCisKKyAg
ICAgICAgVG8gYWRkcmVzcyB0aGlzLCBhZGQgYSBtZWNoYW5pc20gdG8gZGV0ZWN0IHdoZW4gYSBj
aGFuZ2UgaW4gdGhlIGJvdW5kcyBvZiB0aGUgc29mdHdhcmUga2V5Ym9hcmQgY2F1c2VzIGEgdmlz
aWJsZQorICAgICAgICBzZWxlY3Rpb24gb3IgY2FyZXQgcmVjdCB0byBiZWNvbWUgb3ZlcmxhcHBl
ZCwgYW5kIHJlYWN0IGJ5IHNjcm9sbGluZyB0byBrZWVwIHRoZSBzZWxlY3Rpb24gdmlzaWJsZS4g
VGhpcyBoYXMgdGhlCisgICAgICAgIGVmZmVjdCBvZiBmaXhpbmcgdGhpcyBidWcgYnkgc2Nyb2xs
aW5nIHRvIHJldmVhbCB0aGUgdGV4dCBmaWVsZCBhZnRlciBzd2l0Y2hpbmcgdG8gdGhlIGVtb2pp
IGtleWJvYXJkLCBidXQgaXQKKyAgICAgICAgYWxzbyBoYXMgdGhlIGVmZmVjdCBvZiBzY3JvbGxp
bmcgdG8ga2VlcCB0aGUgc2VsZWN0aW9uIHZpc2libGUgYWZ0ZXIgZGV0YWNoaW5nIGEgY29ubmVj
dGVkIGhhcmR3YXJlIGtleWJvYXJkLAorICAgICAgICBpbiB0aGUgY2FzZSB3aGVyZSBpdCB3b3Vs
ZCd2ZSBvdGhlcndpc2UgYmVlbiBvdmVybGFwcGVkIGJ5IHRoZSAobXVjaCB0YWxsZXIpIHNvZnR3
YXJlIGtleWJvYXJkIHRoYXQgYXBwZWFycy4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVj
dGlvbi9pb3Mvc2Nyb2xsLXRvLXJldmVhbC1zZWxlY3Rpb24td2hlbi1zaG93aW5nLXNvZnR3YXJl
LWtleWJvYXJkLmh0bWwKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lP
Uy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zZWxlY3Rpb25SZWN0SXNGdWxseVZpc2libGVBbmROb25FbXB0eV0p
OgorCisgICAgICAgIEFkZCBhbiBpbnRlcm5hbCBoZWxwZXIgdG8gY2hlY2sgd2hldGhlciB0aGUg
c2VsZWN0aW9uIGJvdW5kcyBhcmUgZnVsbHkgdmlzaWJsZS4KKworICAgICAgICAoLVtXS1dlYlZp
ZXcgX3Njcm9sbFRvUmV2ZWFsU2VsZWN0aW9uSWZOZWVkZWRdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF96b29tVG9Gb2N1c1JlY3Q6c2VsZWN0aW9uUmVjdDpmb250U2l6ZTptaW5pbXVtU2NhbGU6
bWF4aW11bVNjYWxlOmFsbG93U2NhbGluZzpmb3JjZVNjcm9sbDpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9rZXlib2FyZENoYW5nZWRXaXRoSW5mbzphZGp1c3RTY3JvbGxWaWV3Ol0pOgorCisg
ICAgICAgIEluIHRoZSBjYXNlIHdoZXJlIGNoYW5naW5nIGlucHV0IHZpZXcgYm91bmRzIGNhdXNl
cyBhIHByZXZpb3VzbHkgdmlzaWJsZSBzZWxlY3Rpb24gdG8gYmVjb21lIG92ZXJsYXBwZWQsIGNh
bGwKKyAgICAgICAgYC1fc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb25JZk5lZWRlZGAgdG8gbWFrZSB0
aGUgc2VsZWN0aW9uIHZpc2libGUgYWdhaW4uCisKKyAgICAgICAgKC1bV0tXZWJWaWV3IF96b29t
VG9Gb2N1c1JlY3Q6c2VsZWN0aW9uUmVjdDppbnNpZGVGaXhlZDpmb250U2l6ZTptaW5pbXVtU2Nh
bGU6bWF4aW11bVNjYWxlOmFsbG93U2NhbGluZzpmb3JjZVNjcm9sbDpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
Lm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF96b29tVG9Gb2N1c1JlY3Q6c2VsZWN0aW9u
UmVjdDpmb250U2l6ZTptaW5pbXVtU2NhbGU6bWF4aW11bVNjYWxlOmFsbG93U2NhbGluZzpmb3Jj
ZVNjcm9sbDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfem9vbVRvRm9jdXNSZWN0OnNl
bGVjdGlvblJlY3Q6aW5zaWRlRml4ZWQ6Zm9udFNpemU6bWluaW11bVNjYWxlOm1heGltdW1TY2Fs
ZTphbGxvd1NjYWxpbmc6Zm9yY2VTY3JvbGw6XSk6IERlbGV0ZWQuCisKKyAgICAgICAgRHJpdmUt
YnkgZml4OiByZW1vdmUgdGhlIHVudXNlZCBgaW5zaWRlRml4ZWQ6YCBwYXJhbWV0ZXIgZnJvbSB0
aGlzIGFkamFjZW50IG1ldGhvZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlY3RUb1JldmVh
bFdoZW5ab29taW5nVG9Gb2N1c2VkRWxlbWVudF0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IF96b29tVG9SZXZlYWxGb2N1c2VkRWxlbWVudF0pOgorICAgICAgICAocmVjdFRvUmV2ZWFsV2hl
blpvb21pbmdUb0ZvY3VzZWRFbGVtZW50KTogRGVsZXRlZC4KKworICAgICAgICBQdWxsIHRoaXMg
aW50byB0aGUgYC1yZWN0VG9SZXZlYWxXaGVuWm9vbWluZ1RvRm9jdXNlZEVsZW1lbnRgIGludGVy
bmFsIGhlbHBlciBtZXRob2QgaW5zdGVhZCwgYW5kIHVzZSB0aGUgbmV3CisgICAgICAgIGBzZWxl
Y3Rpb25Cb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNgIG1ldGhvZCBiZWxvdy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNlbGVjdGlvbkJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlcyBjb25zdCk6CisKKyAgICAgICAgUHVsbCBvdXQgY29kZSB0byBjb21wdXRlIHRoZSBzZWxl
Y3Rpb24gYm91bmRpbmcgcmVjdCAoZm9yIGJvdGggcmFuZ2VkIGFuZCBjYXJldCBzZWxlY3Rpb25z
KSBpbnRvIGEgbWV0aG9kIG9uCisgICAgICAgIGBXZWJQYWdlUHJveHlgLCBzbyB0aGF0IGl0IGNh
biBiZSB1c2VkIGluIGBXS0NvbnRlbnRWaWV3YCBhbmQgYFdLV2ViVmlld2AuCisKIDIwMjEtMDEt
MTQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQ
XVtpT1NdIENyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbnMgZm9yIGNhY2hlIGFuZCB0ZW1wIGRpcmVj
dG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgK
aW5kZXggNmZhOWNiZjAyMWE5ZGNjNDM0NDk2OWNlZWM0NzcwNTE4YTNjOGM4MS4uNmQwOWU3NjUz
YmE0NjNhOGMxMjYzMDYwYTQ1YjQ3ZmRmOTEyNGJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCkBAIC02OSw3ICs2OSw3IEBACiAtIChkb3Vi
bGUpX2NvbnRlbnRab29tU2NhbGU7CiAKIC0gKGRvdWJsZSlfdGFyZ2V0Q29udGVudFpvb21TY2Fs
ZUZvclJlY3Q6KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpdGFyZ2V0UmVjdCBjdXJyZW50U2Nh
bGU6KGRvdWJsZSljdXJyZW50U2NhbGUgZml0RW50aXJlUmVjdDooQk9PTClmaXRFbnRpcmVSZWN0
IG1pbmltdW1TY2FsZTooZG91YmxlKW1pbmltdW1TY2FsZSBtYXhpbXVtU2NhbGU6KGRvdWJsZSlt
YXhpbXVtU2NhbGU7Ci0tICh2b2lkKV96b29tVG9Gb2N1c1JlY3Q6KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpZm9jdXNlZEVsZW1lbnRSZWN0IHNlbGVjdGlvblJlY3Q6KGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYpc2VsZWN0aW9uUmVjdEluRG9jdW1lbnRDb29yZGluYXRlcyBpbnNpZGVGaXhl
ZDooQk9PTClpbnNpZGVGaXhlZCBmb250U2l6ZTooZmxvYXQpZm9udFNpemUgbWluaW11bVNjYWxl
Oihkb3VibGUpbWluaW11bVNjYWxlIG1heGltdW1TY2FsZTooZG91YmxlKW1heGltdW1TY2FsZSBh
bGxvd1NjYWxpbmc6KEJPT0wpYWxsb3dTY2FsaW5nIGZvcmNlU2Nyb2xsOihCT09MKWZvcmNlU2Ny
b2xsOworLSAodm9pZClfem9vbVRvRm9jdXNSZWN0Oihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KWZvY3VzZWRFbGVtZW50UmVjdCBzZWxlY3Rpb25SZWN0Oihjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKXNlbGVjdGlvblJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMgZm9udFNpemU6KGZsb2F0KWZv
bnRTaXplIG1pbmltdW1TY2FsZTooZG91YmxlKW1pbmltdW1TY2FsZSBtYXhpbXVtU2NhbGU6KGRv
dWJsZSltYXhpbXVtU2NhbGUgYWxsb3dTY2FsaW5nOihCT09MKWFsbG93U2NhbGluZyBmb3JjZVNj
cm9sbDooQk9PTClmb3JjZVNjcm9sbDsKIC0gKEJPT0wpX3pvb21Ub1JlY3Q6KFdlYkNvcmU6OkZs
b2F0UmVjdCl0YXJnZXRSZWN0IHdpdGhPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2lu
IGZpdEVudGlyZVJlY3Q6KEJPT0wpZml0RW50aXJlUmVjdCBtaW5pbXVtU2NhbGU6KGRvdWJsZSlt
aW5pbXVtU2NhbGUgbWF4aW11bVNjYWxlOihkb3VibGUpbWF4aW11bVNjYWxlIG1pbmltdW1TY3Jv
bGxEaXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwogLSAodm9pZClfem9vbU91
dFdpdGhPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIGFuaW1hdGVkOihCT09MKWFu
aW1hdGVkOwogLSAodm9pZClfem9vbVRvSW5pdGlhbFNjYWxlV2l0aE9yaWdpbjooV2ViQ29yZTo6
RmxvYXRQb2ludClvcmlnaW4gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDNhYWEwODlkOTkx
MWNiZTdiNzZkOTExYWY3MWJmMDcwOWU0NzYwMmMuLjRkOGNjOWJkOTk1ZDgzODZjYmY1MzFkZTVl
NzRkMzNiOGE3Yzk3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tCkBAIC0xMTg3LDEyICsxMTg3LDUxIEBAIC0gKHZvaWQpX3pvb21Ub0lu
aXRpYWxTY2FsZVdpdGhPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIGFuaW1hdGVk
OihCT09MCiAgICAgW3NlbGYgX3pvb21Ub1BvaW50Om9yaWdpbiBhdFNjYWxlOl9pbml0aWFsU2Nh
bGVGYWN0b3IgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogfQogCi0vLyBmb2N1c2VkRWxlbWVudFJlY3Qg
YW5kIHNlbGVjdGlvblJlY3QgYXJlIGJvdGggaW4gZG9jdW1lbnQgY29vcmRpbmF0ZXMuCi0tICh2
b2lkKV96b29tVG9Gb2N1c1JlY3Q6KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpZm9jdXNlZEVs
ZW1lbnRSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzIHNlbGVjdGlvblJlY3Q6KGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpc2VsZWN0aW9uUmVjdEluRG9jdW1lbnRDb29yZGluYXRlcyBpbnNpZGVG
aXhlZDooQk9PTClpbnNpZGVGaXhlZAorLSAoQk9PTClfc2VsZWN0aW9uUmVjdElzRnVsbHlWaXNp
YmxlQW5kTm9uRW1wdHkKK3sKKyAgICBhdXRvIHJlY3QgPSBfcGFnZS0+c2VsZWN0aW9uQm91bmRp
bmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAgcmV0dXJuICFyZWN0LmlzRW1wdHko
KSAmJiBDR1JlY3RDb250YWluc1JlY3QoW3NlbGYgX2NvbnRlbnRSZWN0Rm9yVXNlckludGVyYWN0
aW9uXSwgcmVjdCk7Cit9CisKKy0gKHZvaWQpX3Njcm9sbFRvUmV2ZWFsU2VsZWN0aW9uSWZOZWVk
ZWQKK3sKKyAgICBpZiAoIVtfc2Nyb2xsVmlldyBpc1Njcm9sbEVuYWJsZWRdKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIHNlbGVjdGlvblJlY3QgPSBfcGFnZS0+c2VsZWN0aW9uQm91bmRp
bmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CisgICAgY29uc3RleHByIENHRmxvYXQgc2Vs
ZWN0aW9uUmVjdFBhZGRpbmcgPSA0OworICAgIHNlbGVjdGlvblJlY3QuaW5mbGF0ZShzZWxlY3Rp
b25SZWN0UGFkZGluZyk7CisgICAgc2VsZWN0aW9uUmVjdC5pbnRlcnNlY3QoW19jb250ZW50Vmll
dyBib3VuZHNdKTsKKyAgICBpZiAoc2VsZWN0aW9uUmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCB1c2VySW50ZXJhY3Rpb25Db250ZW50UmVj
dCA9IHNlbGYuX2NvbnRlbnRSZWN0Rm9yVXNlckludGVyYWN0aW9uOworICAgIGF1dG8gc2Nyb2xs
RGVsdGFJbkNvbnRlbnRDb29yZGluYXRlcyA9IENHU2l6ZVplcm87CisKKyAgICBpZiAodXNlcklu
dGVyYWN0aW9uQ29udGVudFJlY3QubWF4WSgpIDwgc2VsZWN0aW9uUmVjdC5tYXhZKCkpCisgICAg
ICAgIHNjcm9sbERlbHRhSW5Db250ZW50Q29vcmRpbmF0ZXMuaGVpZ2h0ID0gc2VsZWN0aW9uUmVj
dC5tYXhZKCkgLSB1c2VySW50ZXJhY3Rpb25Db250ZW50UmVjdC5tYXhZKCk7CisgICAgZWxzZSBp
ZiAodXNlckludGVyYWN0aW9uQ29udGVudFJlY3QueSgpID4gc2VsZWN0aW9uUmVjdC55KCkpCisg
ICAgICAgIHNjcm9sbERlbHRhSW5Db250ZW50Q29vcmRpbmF0ZXMuaGVpZ2h0ID0gc2VsZWN0aW9u
UmVjdC55KCkgLSB1c2VySW50ZXJhY3Rpb25Db250ZW50UmVjdC55KCk7CisKKyAgICBpZiAodXNl
ckludGVyYWN0aW9uQ29udGVudFJlY3QubWF4WCgpIDwgc2VsZWN0aW9uUmVjdC5tYXhYKCkpCisg
ICAgICAgIHNjcm9sbERlbHRhSW5Db250ZW50Q29vcmRpbmF0ZXMud2lkdGggPSBzZWxlY3Rpb25S
ZWN0Lm1heFgoKSAtIHVzZXJJbnRlcmFjdGlvbkNvbnRlbnRSZWN0Lm1heFgoKTsKKyAgICBlbHNl
IGlmICh1c2VySW50ZXJhY3Rpb25Db250ZW50UmVjdC54KCkgPiBzZWxlY3Rpb25SZWN0LngoKSkK
KyAgICAgICAgc2Nyb2xsRGVsdGFJbkNvbnRlbnRDb29yZGluYXRlcy53aWR0aCA9IHNlbGVjdGlv
blJlY3QueCgpIC0gdXNlckludGVyYWN0aW9uQ29udGVudFJlY3QueCgpOworCisgICAgaWYgKENH
U2l6ZUVxdWFsVG9TaXplKHNjcm9sbERlbHRhSW5Db250ZW50Q29vcmRpbmF0ZXMsIENHU2l6ZVpl
cm8pKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHNjYWxlID0gY29udGVudFpvb21TY2Fs
ZShzZWxmKTsKKyAgICBhdXRvIG5ld0NvbnRlbnRPZmZzZXQgPSBbX3Njcm9sbFZpZXcgY29udGVu
dE9mZnNldF07CisgICAgbmV3Q29udGVudE9mZnNldC54ICs9IHNjcm9sbERlbHRhSW5Db250ZW50
Q29vcmRpbmF0ZXMud2lkdGggKiBzY2FsZTsKKyAgICBuZXdDb250ZW50T2Zmc2V0LnkgKz0gc2Ny
b2xsRGVsdGFJbkNvbnRlbnRDb29yZGluYXRlcy5oZWlnaHQgKiBzY2FsZTsKKyAgICBbX3Njcm9s
bFZpZXcgc2V0Q29udGVudE9mZnNldDpuZXdDb250ZW50T2Zmc2V0IGFuaW1hdGVkOllFU107Cit9
CisKKy0gKHZvaWQpX3pvb21Ub0ZvY3VzUmVjdDooY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jilm
b2N1c2VkRWxlbWVudFJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMgc2VsZWN0aW9uUmVjdDooY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JilzZWxlY3Rpb25SZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVz
CiAgICAgZm9udFNpemU6KGZsb2F0KWZvbnRTaXplIG1pbmltdW1TY2FsZTooZG91YmxlKW1pbmlt
dW1TY2FsZSBtYXhpbXVtU2NhbGU6KGRvdWJsZSltYXhpbXVtU2NhbGUgYWxsb3dTY2FsaW5nOihC
T09MKWFsbG93U2NhbGluZyBmb3JjZVNjcm9sbDooQk9PTClmb3JjZVNjcm9sbAogewogICAgIExP
R19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiX3pvb21Ub0ZvY3VzUmVjdDoi
IDw8IGZvY3VzZWRFbGVtZW50UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcyA8PCAiIHNlbGVjdGlv
blJlY3Q6IiA8PCBzZWxlY3Rpb25SZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzKTsKLSAgICBVTlVT
RURfUEFSQU0oaW5zaWRlRml4ZWQpOwogCiAgICAgY29uc3QgZG91YmxlIG1pbmltdW1IZWlnaHRU
b1Nob3dDb250ZW50QWJvdmVLZXlib2FyZCA9IDEwNjsKICAgICBjb25zdCBDRlRpbWVJbnRlcnZh
bCBmb3JtQ29udHJvbFpvb21BbmltYXRpb25EdXJhdGlvbiA9IDAuMjU7CkBAIC0yMjQ5LDYgKzIy
ODgsOSBAQCAtICh2b2lkKV9rZXlib2FyZENoYW5nZWRXaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICop
a2V5Ym9hcmRJbmZvIGFkanVzdFNjcm9sbFZpZXc6KAogICAgIGlmICghZW5kRnJhbWVWYWx1ZSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgYXV0byBwcmV2aW91c0lucHV0Vmlld0JvdW5kcyA9IF9p
bnB1dFZpZXdCb3VuZHM7CisgICAgQk9PTCBzZWxlY3Rpb25XYXNWaXNpYmxlID0gc2VsZi5fc2Vs
ZWN0aW9uUmVjdElzRnVsbHlWaXNpYmxlQW5kTm9uRW1wdHk7CisKICAgICAvLyBUaGUga2V5Ym9h
cmQgcmVjdCBpcyBhbHdheXMgaW4gc2NyZWVuIGNvb3JkaW5hdGVzLiBJbiB0aGUgdmlldyBzZXJ2
aWNlcyBjYXNlIHRoZSB3aW5kb3cgZG9lcyBub3QKICAgICAvLyBoYXZlIHRoZSBpbnRlcmZhY2Ug
b3JpZW50YXRpb24gcm90YXRpb24gdHJhbnNmb3JtYXRpb247IGl0cyBob3N0IGRvZXMuIFNvLCBp
dCBtYWtlcyBubyBzZW5zZSB0bwogICAgIC8vIGNsaXAgdGhlIGtleWJvYXJkIHJlY3QgYWdhaW5z
dCBpdHMgc2NyZWVuLgpAQCAtMjI3Miw2ICsyMzE0LDkgQEAgLSAodm9pZClfa2V5Ym9hcmRDaGFu
Z2VkV2l0aEluZm86KE5TRGljdGlvbmFyeSAqKWtleWJvYXJkSW5mbyBhZGp1c3RTY3JvbGxWaWV3
OigKICAgICAgICAgICAgIF90b3RhbFNjcm9sbFZpZXdCb3R0b21JbnNldEFkanVzdG1lbnRGb3JL
ZXlib2FyZCArPSBib3R0b21JbnNldEFmdGVyQWRqdXN0bWVudCAtIGJvdHRvbUluc2V0QmVmb3Jl
QWRqdXN0bWVudDsKICAgICB9CiAKKyAgICBpZiAoc2VsZWN0aW9uV2FzVmlzaWJsZSAmJiBbX2Nv
bnRlbnRWaWV3IF9oYXNGb2N1c2VkRWxlbWVudF0gJiYgIUNHUmVjdElzRW1wdHkocHJldmlvdXNJ
bnB1dFZpZXdCb3VuZHMpICYmICFDR1JlY3RJc0VtcHR5KF9pbnB1dFZpZXdCb3VuZHMpICYmICFD
R1JlY3RFcXVhbFRvUmVjdChwcmV2aW91c0lucHV0Vmlld0JvdW5kcywgX2lucHV0Vmlld0JvdW5k
cykpCisgICAgICAgIFtzZWxmIF9zY3JvbGxUb1JldmVhbFNlbGVjdGlvbklmTmVlZGVkXTsKKwog
ICAgIFtzZWxmIF9zY2hlZHVsZVZpc2libGVDb250ZW50UmVjdFVwZGF0ZV07CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggN2FjYjYzOGMzMjZjNzI3YzUwYzkw
YmEzNzYwMjhlYTM1MzBlODVjZi4uNjdhNGViOWY2MjFkNDM3MzhlMDFiOWVhZjAxMTI5M2NlYjU3
Yzk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgxOCw2ICs4
MTgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Njcm9sbGluZ09yWm9vbWluZygpIGNvbnN0IHsg
cmV0dXJuIG1faXNTY3JvbGxpbmdPclpvb21pbmc7IH0KICAgICB2b2lkIHJlcXVlc3RFdmFzaW9u
UmVjdHNBYm92ZVNlbGVjdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpGbG9hdFJlY3Q+Jik+JiYpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uV2l0aERl
bHRhKGludDY0X3QgbG9jYXRpb25EZWx0YSwgaW50NjRfdCBsZW5ndGhEZWx0YSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc2VsZWN0aW9uQm91
bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkgY29uc3Q7CiAgICAgdm9pZCByZXF1ZXN0
RG9jdW1lbnRFZGl0aW5nQ29udGV4dChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1
ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4
dCk+JiYpOwogICAgIHZvaWQgZ2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUpOwogICAgIHZvaWQgc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBv
c2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IGQ5
NDg5MDg5ZThmZTNiMTFiZDY0NTA5ODRmYmQzYmEyNTU5NjUxNjEuLjUzOTE5ZTFhMWRkNDZkNzlh
OGI0MWQ3ZDJmM2IzMGMwOTQ0NzI5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcuaApAQCAtMTE3LDcgKzExNyw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29s
OwogLSAodm9pZClfc2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbjooTlNEYXRhICopZGF0
YTsKIAogLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihDR1JlY3QpdGFyZ2V0UmVjdCB3aXRoT3JpZ2lu
OihDR1BvaW50KW9yaWdpbiBtaW5pbXVtU2Nyb2xsRGlzdGFuY2U6KENHRmxvYXQpbWluaW11bVNj
cm9sbERpc3RhbmNlOwotLSAodm9pZClfem9vbVRvRm9jdXNSZWN0OihDR1JlY3QpcmVjdFRvRm9j
dXMgc2VsZWN0aW9uUmVjdDooQ0dSZWN0KXNlbGVjdGlvblJlY3QgaW5zaWRlRml4ZWQ6KEJPT0wp
aW5zaWRlRml4ZWQgZm9udFNpemU6KGZsb2F0KWZvbnRTaXplIG1pbmltdW1TY2FsZTooZG91Ymxl
KW1pbmltdW1TY2FsZSBtYXhpbXVtU2NhbGU6KGRvdWJsZSltYXhpbXVtU2NhbGUgYWxsb3dTY2Fs
aW5nOihCT09MKWFsbG93U2NhbGluZyBmb3JjZVNjcm9sbDooQk9PTClmb3JjZVNjcm9sbDsKKy0g
KHZvaWQpX3pvb21Ub0ZvY3VzUmVjdDooQ0dSZWN0KXJlY3RUb0ZvY3VzIHNlbGVjdGlvblJlY3Q6
KENHUmVjdClzZWxlY3Rpb25SZWN0IGZvbnRTaXplOihmbG9hdClmb250U2l6ZSBtaW5pbXVtU2Nh
bGU6KGRvdWJsZSltaW5pbXVtU2NhbGUgbWF4aW11bVNjYWxlOihkb3VibGUpbWF4aW11bVNjYWxl
IGFsbG93U2NhbGluZzooQk9PTClhbGxvd1NjYWxpbmcgZm9yY2VTY3JvbGw6KEJPT0wpZm9yY2VT
Y3JvbGw7CiAtIChCT09MKV96b29tVG9SZWN0OihDR1JlY3QpdGFyZ2V0UmVjdCB3aXRoT3JpZ2lu
OihDR1BvaW50KW9yaWdpbiBmaXRFbnRpcmVSZWN0OihCT09MKWZpdEVudGlyZVJlY3QgbWluaW11
bVNjYWxlOihkb3VibGUpbWluaW11bVNjYWxlIG1heGltdW1TY2FsZTooZG91YmxlKW1heGltdW1T
Y2FsZSBtaW5pbXVtU2Nyb2xsRGlzdGFuY2U6KENHRmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNl
OwogLSAodm9pZClfem9vbU91dFdpdGhPcmlnaW46KENHUG9pbnQpb3JpZ2luOwogLSAodm9pZClf
em9vbVRvSW5pdGlhbFNjYWxlV2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IGM1NzZhOTVjOWYzYjEw
MGYwMWIyZjRiYmI2NTQ1MGEyMmJkZDk3NWUuLmQzMWI2M2VhMGIwZTQxYjRiMjgxNmY0MGZmMjJj
NjFmMjc1YzNiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3Lm1tCkBAIC03MTMsMTEgKzcxMywxMCBAQCAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KENHUmVj
dCl0YXJnZXRSZWN0IHdpdGhPcmlnaW46KENHUG9pbnQpb3JpZ2luIG1pbmltdW1TY3JvbAogICAg
IHJldHVybiBbX3dlYlZpZXcgX3Njcm9sbFRvUmVjdDp0YXJnZXRSZWN0IG9yaWdpbjpvcmlnaW4g
bWluaW11bVNjcm9sbERpc3RhbmNlOm1pbmltdW1TY3JvbGxEaXN0YW5jZV07CiB9CiAKLS0gKHZv
aWQpX3pvb21Ub0ZvY3VzUmVjdDooQ0dSZWN0KXJlY3RUb0ZvY3VzIHNlbGVjdGlvblJlY3Q6KENH
UmVjdClzZWxlY3Rpb25SZWN0IGluc2lkZUZpeGVkOihCT09MKWluc2lkZUZpeGVkIGZvbnRTaXpl
OihmbG9hdClmb250U2l6ZSBtaW5pbXVtU2NhbGU6KGRvdWJsZSltaW5pbXVtU2NhbGUgbWF4aW11
bVNjYWxlOihkb3VibGUpbWF4aW11bVNjYWxlIGFsbG93U2NhbGluZzooQk9PTClhbGxvd1NjYWxp
bmcgZm9yY2VTY3JvbGw6KEJPT0wpZm9yY2VTY3JvbGwKKy0gKHZvaWQpX3pvb21Ub0ZvY3VzUmVj
dDooQ0dSZWN0KXJlY3RUb0ZvY3VzIHNlbGVjdGlvblJlY3Q6KENHUmVjdClzZWxlY3Rpb25SZWN0
IGZvbnRTaXplOihmbG9hdClmb250U2l6ZSBtaW5pbXVtU2NhbGU6KGRvdWJsZSltaW5pbXVtU2Nh
bGUgbWF4aW11bVNjYWxlOihkb3VibGUpbWF4aW11bVNjYWxlIGFsbG93U2NhbGluZzooQk9PTClh
bGxvd1NjYWxpbmcgZm9yY2VTY3JvbGw6KEJPT0wpZm9yY2VTY3JvbGwKIHsKICAgICBbX3dlYlZp
ZXcgX3pvb21Ub0ZvY3VzUmVjdDpyZWN0VG9Gb2N1cwogICAgICAgICAgICAgICAgICBzZWxlY3Rp
b25SZWN0OnNlbGVjdGlvblJlY3QKLSAgICAgICAgICAgICAgICAgICBpbnNpZGVGaXhlZDppbnNp
ZGVGaXhlZAogICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOmZvbnRTaXplCiAgICAgICAg
ICAgICAgICAgICBtaW5pbXVtU2NhbGU6bWluaW11bVNjYWxlCiAgICAgICAgICAgICAgICAgICBt
YXhpbXVtU2NhbGU6bWF4aW11bVNjYWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAxMjY0NWZhOWY0MjEy
MzdkMDYwNjMwNzMwMGJhODQxMGY4MWM0NDI3Li42YWI5ZTk1MjYzNzg1NDY0MWY1ZjljN2VhMWJk
ZWFkYzU3ZDg0Nzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTIwMTcsNiArMjAxNywyMyBAQCAtIChC
T09MKV9yZXF1aXJlc0tleWJvYXJkUmVzZXRPblJlbG9hZAogICAgIHJldHVybiBZRVM7CiB9CiAK
Ky0gKFdlYkNvcmU6OkZsb2F0UmVjdClyZWN0VG9SZXZlYWxXaGVuWm9vbWluZ1RvRm9jdXNlZEVs
ZW1lbnQKK3sKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRJbnRlcmFjdGlvblJlY3Q7Cisg
ICAgaWYgKF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmludGVyYWN0aW9uUmVjdC5jb250YWlu
cyhfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5sYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbikpCisg
ICAgICAgIGVsZW1lbnRJbnRlcmFjdGlvblJlY3QgPSB7IF9mb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uLmxhc3RJbnRlcmFjdGlvbkxvY2F0aW9uLCB7IDEsIDEgfSB9OworCisgICAgaWYgKCFtYXlD
b250YWluU2VsZWN0YWJsZVRleHQoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5
cGUpKQorICAgICAgICByZXR1cm4gZWxlbWVudEludGVyYWN0aW9uUmVjdDsKKworICAgIGlmIChf
cGFnZS0+ZWRpdG9yU3RhdGUoKS5pc01pc3NpbmdQb3N0TGF5b3V0RGF0YSkKKyAgICAgICAgcmV0
dXJuIGVsZW1lbnRJbnRlcmFjdGlvblJlY3Q7CisKKyAgICBhdXRvIGJvdW5kaW5nUmVjdCA9IF9w
YWdlLT5zZWxlY3Rpb25Cb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBi
b3VuZGluZ1JlY3QuaW50ZXJzZWN0KF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmludGVyYWN0
aW9uUmVjdCk7CisgICAgcmV0dXJuIGJvdW5kaW5nUmVjdDsKK30KKwogLSAodm9pZClfem9vbVRv
UmV2ZWFsRm9jdXNlZEVsZW1lbnQKIHsKICAgICBpZiAoX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0
YW50UmVhc29ucyB8fCBfdGV4dEludGVyYWN0aW9uSXNIYXBwZW5pbmcpCkBAIC0yMDI1LDggKzIw
NDIsNyBAQCAtICh2b2lkKV96b29tVG9SZXZlYWxGb2N1c2VkRWxlbWVudAogICAgIC8vIEluIGNh
c2UgdXNlciBzY2FsaW5nIGlzIGZvcmNlIGVuYWJsZWQsIGRvIG5vdCB1c2UgdGhhdCBzY2FsaW5n
IHdoZW4gem9vbWluZyBpbiB3aXRoIGFuIGlucHV0IGZpZWxkLgogICAgIC8vIFpvb21pbmcgYWJv
dmUgdGhlIHBhZ2UncyBkZWZhdWx0IHNjYWxlIGZhY3RvciBzaG91bGQgb25seSBoYXBwZW4gd2hl
biB0aGUgdXNlciBwZXJmb3JtcyBpdC4KICAgICBbc2VsZiBfem9vbVRvRm9jdXNSZWN0Ol9mb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uLmludGVyYWN0aW9uUmVjdAotICAgICAgICBzZWxlY3Rpb25S
ZWN0Ol9kaWRBY2Nlc3NvcnlUYWJJbml0aWF0ZUZvY3VzID8gV2ViQ29yZTo6RmxvYXRSZWN0KCkg
OiByZWN0VG9SZXZlYWxXaGVuWm9vbWluZ1RvRm9jdXNlZEVsZW1lbnQoX2ZvY3VzZWRFbGVtZW50
SW5mb3JtYXRpb24sIF9wYWdlLT5lZGl0b3JTdGF0ZSgpKQotICAgICAgICBpbnNpZGVGaXhlZDpf
Zm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnNpZGVGaXhlZFBvc2l0aW9uCisgICAgICAgIHNl
bGVjdGlvblJlY3Q6X2RpZEFjY2Vzc29yeVRhYkluaXRpYXRlRm9jdXMgPyBXZWJDb3JlOjpGbG9h
dFJlY3QoKSA6IHNlbGYucmVjdFRvUmV2ZWFsV2hlblpvb21pbmdUb0ZvY3VzZWRFbGVtZW50CiAg
ICAgICAgIGZvbnRTaXplOl9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLm5vZGVGb250U2l6ZQog
ICAgICAgICBtaW5pbXVtU2NhbGU6X2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24ubWluaW11bVNj
YWxlRmFjdG9yCiAgICAgICAgIG1heGltdW1TY2FsZTpfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
bi5tYXhpbXVtU2NhbGVGYWN0b3JJZ25vcmluZ0Fsd2F5c1NjYWxhYmxlCkBAIC01OTA1LDM1ICs1
OTIxLDYgQEAgc3RhdGljIGJvb2wgc2hvdWxkU2hvd0tleWJvYXJkRm9yRWxlbWVudChjb25zdCBX
ZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24KICAgICByZXR1cm4gZWxlbWVudFR5cGVS
ZXF1aXJlc0FjY2Vzc29yeVZpZXcoaW5mb3JtYXRpb24uZWxlbWVudFR5cGUpOwogfQogCi1zdGF0
aWMgV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RUb1JldmVhbFdoZW5ab29taW5nVG9Gb2N1c2VkRWxl
bWVudChjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGVsZW1lbnRJbmZv
LCBjb25zdCBXZWJLaXQ6OkVkaXRvclN0YXRlJiBlZGl0b3JTdGF0ZSkKLXsKLSAgICBXZWJDb3Jl
OjpJbnRSZWN0IGVsZW1lbnRJbnRlcmFjdGlvblJlY3Q7Ci0gICAgaWYgKGVsZW1lbnRJbmZvLmlu
dGVyYWN0aW9uUmVjdC5jb250YWlucyhlbGVtZW50SW5mby5sYXN0SW50ZXJhY3Rpb25Mb2NhdGlv
bikpCi0gICAgICAgIGVsZW1lbnRJbnRlcmFjdGlvblJlY3QgPSB7IGVsZW1lbnRJbmZvLmxhc3RJ
bnRlcmFjdGlvbkxvY2F0aW9uLCB7IDEsIDEgfSB9OwotCi0gICAgaWYgKCFtYXlDb250YWluU2Vs
ZWN0YWJsZVRleHQoZWxlbWVudEluZm8uZWxlbWVudFR5cGUpKQotICAgICAgICByZXR1cm4gZWxl
bWVudEludGVyYWN0aW9uUmVjdDsKLQotICAgIGlmIChlZGl0b3JTdGF0ZS5pc01pc3NpbmdQb3N0
TGF5b3V0RGF0YSkgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0
dXJuIGVsZW1lbnRJbnRlcmFjdGlvblJlY3Q7Ci0gICAgfQotCi0gICAgaWYgKGVkaXRvclN0YXRl
LnNlbGVjdGlvbklzTm9uZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIFdlYkNvcmU6OkZs
b2F0UmVjdCBzZWxlY3Rpb25Cb3VuZGluZ1JlY3Q7Ci0gICAgYXV0byYgcG9zdExheW91dERhdGEg
PSBlZGl0b3JTdGF0ZS5wb3N0TGF5b3V0RGF0YSgpOwotICAgIGlmIChlZGl0b3JTdGF0ZS5zZWxl
Y3Rpb25Jc1JhbmdlKSB7Ci0gICAgICAgIGZvciAoYXV0byYgcmVjdCA6IHBvc3RMYXlvdXREYXRh
LnNlbGVjdGlvblJlY3RzKQotICAgICAgICAgICAgc2VsZWN0aW9uQm91bmRpbmdSZWN0LnVuaXRl
KHJlY3QucmVjdCgpKTsKLSAgICB9IGVsc2UKLSAgICAgICAgc2VsZWN0aW9uQm91bmRpbmdSZWN0
ID0gcG9zdExheW91dERhdGEuY2FyZXRSZWN0QXRTdGFydDsKLQotICAgIHNlbGVjdGlvbkJvdW5k
aW5nUmVjdC5pbnRlcnNlY3QoZWxlbWVudEluZm8uaW50ZXJhY3Rpb25SZWN0KTsKLSAgICByZXR1
cm4gc2VsZWN0aW9uQm91bmRpbmdSZWN0OwotfQotCiBzdGF0aWMgUmV0YWluUHRyPE5TT2JqZWN0
IDxXS0Zvcm1QZXJpcGhlcmFsPj4gY3JlYXRlSW5wdXRQZXJpcGhlcmFsV2l0aFZpZXcoV2ViS2l0
OjpJbnB1dFR5cGUgdHlwZSwgV0tDb250ZW50VmlldyAqdmlldykKIHsKICNpZiBQTEFURk9STShX
QVRDSE9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KaW5kZXggNTZmNWIwNzQyNDAwOTNiOTQ5MDE5ZDc4OTA3MTI1NDFiMmNiMTM5MC4uYjA5Y2M5
MmZiMTQyZmRhOWQ0MzIzMGRmNjQ2ODE1M2IxMWQyNzY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xMTQ2LDYgKzExNDYsMjUgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVNlbGVjdGlvbldpdGhEZWx0YShpbnQ2NF90IGxvY2F0
aW9uRGVsdGEsIGludDY0X3QgbGVuZ3QKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2U6OlVwZGF0ZVNlbGVjdGlvbldpdGhEZWx0YShsb2NhdGlvbkRlbHRhLCBsZW5ndGhE
ZWx0YSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAorV2ViQ29yZTo6RmxvYXRS
ZWN0IFdlYlBhZ2VQcm94eTo6c2VsZWN0aW9uQm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5h
dGVzKCkgY29uc3QKK3sKKyAgICBpZiAobV9lZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc05vbmUpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAobV9lZGl0b3JTdGF0ZS5pc01pc3NpbmdQb3N0
TGF5b3V0RGF0YSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVj
dCBib3VuZHM7CisgICAgYXV0byYgcG9zdExheW91dERhdGEgPSBtX2VkaXRvclN0YXRlLnBvc3RM
YXlvdXREYXRhKCk7CisgICAgaWYgKG1fZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNSYW5nZSkgewor
ICAgICAgICBmb3IgKGF1dG8mIHJlY3QgOiBwb3N0TGF5b3V0RGF0YS5zZWxlY3Rpb25SZWN0cykK
KyAgICAgICAgICAgIGJvdW5kcy51bml0ZShyZWN0LnJlY3QoKSk7CisgICAgfSBlbHNlCisgICAg
ICAgIGJvdW5kcyA9IHBvc3RMYXlvdXREYXRhLmNhcmV0UmVjdEF0U3RhcnQ7CisKKyAgICByZXR1
cm4gYm91bmRzOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERvY3VtZW50RWRpdGlu
Z0NvbnRleHQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCByZXF1ZXN0LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggOGU0ZmUwNzc5NWMzM2I0ZGYxNTg2NTg3MDBhMGMyZjMzNzU5MDMwOC4uOGMwOTJiMTRi
NzI4YzY5YzQ1MjMxODAxMzBlMGQxZDEyODlhODlhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDIxLTAxLTE1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAg
ICAgIFtpT1NdIEVtb2ppIGtleWJvYXJkIGNvdmVycyB0ZXh0IGZpZWxkIG9uIHR3aXR0ZXIuY29t
L21lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjA2NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY4NDAwNDcxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5
IHRoYXQgYWZ0ZXIgZGlzY29ubmVjdGluZyBhIGhhcmR3YXJlIGtleWJvYXJkIGFuZCBzaG93aW5n
IHRoZSBzb2Z0d2FyZSBrZXlib2FyZCwgd2Ugc2Nyb2xsCisgICAgICAgIHVwIHRvIHJldmVhbCB0
aGUgY2FyZXQgaW4gYSBmb2N1c2VkIHRleHQgZmllbGQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9pb3Mvc2Nyb2xsLXRvLXJldmVhbC1zZWxlY3Rpb24td2hlbi1zaG93aW5nLXNvZnR3
YXJlLWtleWJvYXJkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vaW9zL3Njcm9sbC10by1yZXZlYWwtc2VsZWN0aW9uLXdoZW4tc2hvd2luZy1zb2Z0d2Fy
ZS1rZXlib2FyZC5odG1sOiBBZGRlZC4KKwogMjAyMS0wMS0xNCAgTWFydGluIFJvYmluc29uICA8
bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1zY3JvbGwtc25hcF0gc2Nyb2xs
LXNuYXAtYWxpZ24gcGFyc2luZyBpcyBpbmNvcnJlY3QvYmFja3dhcmRzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2Nyb2xsLXRvLXJldmVhbC1zZWxlY3Rp
b24td2hlbi1zaG93aW5nLXNvZnR3YXJlLWtleWJvYXJkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9zY3JvbGwtdG8tcmV2ZWFsLXNlbGVjdGlvbi13aGVu
LXNob3dpbmctc29mdHdhcmUta2V5Ym9hcmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MzBj
YjYwZWExY2Q1MDFiY2NjN2Q4NTk5NDc5YzY5ODYyNDJhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2Nyb2xsLXRvLXJldmVhbC1zZWxlY3Rp
b24td2hlbi1zaG93aW5nLXNvZnR3YXJlLWtleWJvYXJkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKK1ZlcmlmaWVzIHRoYXQgYWZ0ZXIgZGlzY29ubmVjdGluZyBhIGhhcmR3YXJlIGtleWJv
YXJkIGFuZCBzaG93aW5nIHRoZSBzb2Z0d2FyZSBrZXlib2FyZCwgd2Ugc2Nyb2xsIHRvIHJldmVh
bCB0aGUgY2FyZXQgaW4gdGhlIGZvY3VzZWQgdGV4dCBmaWVsZC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCitQQVNTIFNjcm9sbGVkIGluIHJlc3BvbnNlIHRvIHNob3dpbmcgc29mdHdh
cmUga2V5Ym9hcmQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2Ny
b2xsLXRvLXJldmVhbC1zZWxlY3Rpb24td2hlbi1zaG93aW5nLXNvZnR3YXJlLWtleWJvYXJkLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2Nyb2xsLXRvLXJldmVhbC1z
ZWxlY3Rpb24td2hlbi1zaG93aW5nLXNvZnR3YXJlLWtleWJvYXJkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTI1MzI5NDY3Y2FmOWNjYmM3M2I3NmFmODExN2JiNDI3YzQzYWE0OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9zY3JvbGwtdG8tcmV2ZWFsLXNl
bGVjdGlvbi13aGVuLXNob3dpbmctc29mdHdhcmUta2V5Ym9hcmQuaHRtbApAQCAtMCwwICsxLDU2
IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJs
ZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLCB3aWR0aD1kZXZpY2Utd2lkdGgiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5j
ICgpID0+IHsKKyAgICBsZXQgZWRpdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2W2Nv
bnRlbnRlZGl0YWJsZV0iKTsKKyAgICBkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCBhZnRlciBk
aXNjb25uZWN0aW5nIGEgaGFyZHdhcmUga2V5Ym9hcmQgYW5kIHNob3dpbmcgdGhlIHNvZnR3YXJl
IGtleWJvYXJkLCB3ZSBzY3JvbGwgdG8gcmV2ZWFsIHRoZSBjYXJldCBpbiB0aGUgZm9jdXNlZCB0
ZXh0IGZpZWxkLiIpOworCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklucHV0
U2Vzc2lvbihlZGl0b3IpOworICAgIGxldCBpbml0aWFsQ29udGVudE9mZnNldFkgPSAoYXdhaXQg
VUlIZWxwZXIuY29udGVudE9mZnNldCgpKS55OworCisgICAgYXdhaXQgVUlIZWxwZXIuc2V0SGFy
ZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKKworICAgIGxldCBjb250ZW50T2Zmc2V0WSA9
IGluaXRpYWxDb250ZW50T2Zmc2V0WTsKKyAgICB3aGlsZSAoY29udGVudE9mZnNldFkgPD0gaW5p
dGlhbENvbnRlbnRPZmZzZXRZKSB7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDIw
MCk7CisgICAgICAgIGNvbnRlbnRPZmZzZXRZID0gKGF3YWl0IFVJSGVscGVyLmNvbnRlbnRPZmZz
ZXQoKSkueTsKKyAgICB9CisKKyAgICB0ZXN0UGFzc2VkKCJTY3JvbGxlZCBpbiByZXNwb25zZSB0
byBzaG93aW5nIHNvZnR3YXJlIGtleWJvYXJkIik7CisKKyAgICBlZGl0b3IuYmx1cigpOworICAg
IGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgpOworCisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPHN0eWxlPgoraHRtbCwgYm9keSB7CisgICAgd2lkdGg6
IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAlOworfQorCitkaXZbY29udGVudGVkaXRhYmxlXSB7Cisg
ICAgcG9zaXRpb246IGZpeGVkOworICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsKKyAgICBi
b3R0b206IDFlbTsKKyAgICBib3JkZXI6IHRvbWF0byBzb2xpZCAxcHg7CisgICAgb3V0bGluZTog
bm9uZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNvbnRlbnRlZGl0
YWJsZT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CisgICAgPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>
<flag name="review"
          id="435495"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417742</attachid>
            <date>2021-01-15 14:45:17 -0800</date>
            <delta_ts>2021-01-15 15:57:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220664-20210115144516.patch</filename>
            <type>text/plain</type>
            <size>22456</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVhN2M5NjNmMWUzMTEzMjA0
MTJiYjQ5MmQ1MGVkNTk0NjEzMDNiMWIuLjFlN2E4NTE1MzA5ZjYyM2FhNDI3ZGM5NmFhOTg4MTgy
NzU1YmVjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMjEtMDEtMTUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRW1vamkga2V5
Ym9hcmQgY292ZXJzIHRleHQgZmllbGQgb24gdHdpdHRlci5jb20vbWVzc2FnZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDY2NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjg0MDA0NzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91
c3NvLgorCisgICAgICAgIEFmdGVyIGlPUyAxNCwgdGhlIGVtb2ppIHNvZnR3YXJlIGtleWJvYXJk
IGxheW91dCBub3cgaW5jbHVkZXMgYSBzZWFyY2ggZmllbGQgdGhhdCBjYW4gYmUgdXNlZCB0byBm
aWx0ZXIgZm9yCisgICAgICAgIHNwZWNpZmljIGVtb2ppcy4gVGhpcyBzbGlnaHRseSBpbmNyZWFz
ZXMgdGhlIG92ZXJhbGwgaGVpZ2h0IG9mIHRoZSBzb2Z0d2FyZSBrZXlib2FyZCB3aGVuIHRoZSBl
bW9qaSBrZXlwbGFuZSBpcworICAgICAgICBhY3RpdmU7IGluIHR1cm4sIHRoaXMgbWVhbnMgdGhh
dCBpZiB0aGUgc2VsZWN0aW9uIG9yIGNhcmV0IGlzIHBvc2l0aW9uZWQgcmlnaHQgYWJvdmUgdGhl
IHRvcCBvZiB0aGUgc29mdHdhcmUKKyAgICAgICAga2V5Ym9hcmQgd2hlbiB0aGUgbm9ybWFsIChh
bHBoYWJldGljKSBrZXlwbGFuZSBpcyBhY3RpdmUsIHN3aXRjaGluZyB0byB0aGUgZW1vamkga2V5
cGxhbmUgd2lsbCBjYXVzZSB0aGUKKyAgICAgICAga2V5Ym9hcmQgdG8gb3ZlcmxhcCB0aGUgc2Vs
ZWN0aW9uLCBtYWtpbmcgaXQgZGlmZmljdWx0IHRvIHNlZSBpbnNlcnRlZCB0ZXh0LgorCisgICAg
ICAgIFRvIGFkZHJlc3MgdGhpcywgYWRkIGEgbWVjaGFuaXNtIHRvIGRldGVjdCB3aGVuIGEgY2hh
bmdlIGluIHRoZSBib3VuZHMgb2YgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGNhdXNlcyBhIHZpc2li
bGUKKyAgICAgICAgc2VsZWN0aW9uIG9yIGNhcmV0IHJlY3QgdG8gYmVjb21lIG92ZXJsYXBwZWQs
IGFuZCByZWFjdCBieSBzY3JvbGxpbmcgdG8ga2VlcCB0aGUgc2VsZWN0aW9uIHZpc2libGUuIFRo
aXMgaGFzIHRoZQorICAgICAgICBlZmZlY3Qgb2YgZml4aW5nIHRoaXMgYnVnIGJ5IHNjcm9sbGlu
ZyB0byByZXZlYWwgdGhlIHRleHQgZmllbGQgYWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZSBlbW9qaSBr
ZXlib2FyZCwgYnV0IGl0CisgICAgICAgIGFsc28gaGFzIHRoZSBlZmZlY3Qgb2Ygc2Nyb2xsaW5n
IHRvIGtlZXAgdGhlIHNlbGVjdGlvbiB2aXNpYmxlIGFmdGVyIGRldGFjaGluZyBhIGNvbm5lY3Rl
ZCBoYXJkd2FyZSBrZXlib2FyZCwKKyAgICAgICAgaW4gdGhlIGNhc2Ugd2hlcmUgaXQgd291bGQn
dmUgb3RoZXJ3aXNlIGJlZW4gb3ZlcmxhcHBlZCBieSB0aGUgKG11Y2ggdGFsbGVyKSBzb2Z0d2Fy
ZSBrZXlib2FyZCB0aGF0IGFwcGVhcnMuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zZWxlY3Rp
b24vaW9zL3Njcm9sbC10by1yZXZlYWwtc2VsZWN0aW9uLXdoZW4tc2hvd2luZy1zb2Z0d2FyZS1r
ZXlib2FyZC5odG1sCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1Mu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBfc2VsZWN0aW9uUmVjdElzRnVsbHlWaXNpYmxlQW5kTm9uRW1wdHldKToK
KworICAgICAgICBBZGQgYW4gaW50ZXJuYWwgaGVscGVyIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHNl
bGVjdGlvbiBib3VuZHMgYXJlIGZ1bGx5IHZpc2libGUuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9zY3JvbGxUb1JldmVhbFNlbGVjdGlvbklmTmVlZGVkXSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfem9vbVRvRm9jdXNSZWN0OnNlbGVjdGlvblJlY3Q6Zm9udFNpemU6bWluaW11bVNjYWxlOm1h
eGltdW1TY2FsZTphbGxvd1NjYWxpbmc6Zm9yY2VTY3JvbGw6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfa2V5Ym9hcmRDaGFuZ2VkV2l0aEluZm86YWRqdXN0U2Nyb2xsVmlldzpdKToKKworICAg
ICAgICBJbiB0aGUgY2FzZSB3aGVyZSBjaGFuZ2luZyBpbnB1dCB2aWV3IGJvdW5kcyBjYXVzZXMg
YSBwcmV2aW91c2x5IHZpc2libGUgc2VsZWN0aW9uIHRvIGJlY29tZSBvdmVybGFwcGVkLCBjYWxs
CisgICAgICAgIGAtX3Njcm9sbFRvUmV2ZWFsU2VsZWN0aW9uSWZOZWVkZWRgIHRvIG1ha2UgdGhl
IHNlbGVjdGlvbiB2aXNpYmxlIGFnYWluLgorCisgICAgICAgICgtW1dLV2ViVmlldyBfem9vbVRv
Rm9jdXNSZWN0OnNlbGVjdGlvblJlY3Q6aW5zaWRlRml4ZWQ6Zm9udFNpemU6bWluaW11bVNjYWxl
Om1heGltdW1TY2FsZTphbGxvd1NjYWxpbmc6Zm9yY2VTY3JvbGw6XSk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfem9vbVRvRm9jdXNSZWN0OnNlbGVjdGlvblJl
Y3Q6Zm9udFNpemU6bWluaW11bVNjYWxlOm1heGltdW1TY2FsZTphbGxvd1NjYWxpbmc6Zm9yY2VT
Y3JvbGw6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3pvb21Ub0ZvY3VzUmVjdDpzZWxl
Y3Rpb25SZWN0Omluc2lkZUZpeGVkOmZvbnRTaXplOm1pbmltdW1TY2FsZTptYXhpbXVtU2NhbGU6
YWxsb3dTY2FsaW5nOmZvcmNlU2Nyb2xsOl0pOiBEZWxldGVkLgorCisgICAgICAgIERyaXZlLWJ5
IGZpeDogcmVtb3ZlIHRoZSB1bnVzZWQgYGluc2lkZUZpeGVkOmAgcGFyYW1ldGVyIGZyb20gdGhp
cyBhZGphY2VudCBtZXRob2QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyByZWN0VG9SZXZlYWxX
aGVuWm9vbWluZ1RvRm9jdXNlZEVsZW1lbnRdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
em9vbVRvUmV2ZWFsRm9jdXNlZEVsZW1lbnRdKToKKyAgICAgICAgKHJlY3RUb1JldmVhbFdoZW5a
b29taW5nVG9Gb2N1c2VkRWxlbWVudCk6IERlbGV0ZWQuCisKKyAgICAgICAgUHVsbCB0aGlzIGlu
dG8gdGhlIGAtcmVjdFRvUmV2ZWFsV2hlblpvb21pbmdUb0ZvY3VzZWRFbGVtZW50YCBpbnRlcm5h
bCBoZWxwZXIgbWV0aG9kIGluc3RlYWQsIGFuZCB1c2UgdGhlIG5ldworICAgICAgICBgc2VsZWN0
aW9uQm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzYCBtZXRob2QgYmVsb3cuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzZWxlY3Rpb25Cb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0
ZXMgY29uc3QpOgorCisgICAgICAgIFB1bGwgb3V0IGNvZGUgdG8gY29tcHV0ZSB0aGUgc2VsZWN0
aW9uIGJvdW5kaW5nIHJlY3QgKGZvciBib3RoIHJhbmdlZCBhbmQgY2FyZXQgc2VsZWN0aW9ucykg
aW50byBhIG1ldGhvZCBvbgorICAgICAgICBgV2ViUGFnZVByb3h5YCwgc28gdGhhdCBpdCBjYW4g
YmUgdXNlZCBpbiBgV0tDb250ZW50Vmlld2AgYW5kIGBXS1dlYlZpZXdgLgorCiAyMDIxLTAxLTE0
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF1b
aU9TXSBDcmVhdGUgc2FuZGJveCBleHRlbnNpb25zIGZvciBjYWNoZSBhbmQgdGVtcCBkaXJlY3Rv
cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCmlu
ZGV4IDZmYTljYmYwMjFhOWRjYzQzNDQ5NjljZWVjNDc3MDUxOGEzYzhjODEuLjZkMDllNzY1M2Jh
NDYzYThjMTI2MzA2MGE0NWI0N2ZkZjkxMjRiYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaApAQCAtNjksNyArNjksNyBAQAogLSAoZG91Ymxl
KV9jb250ZW50Wm9vbVNjYWxlOwogCiAtIChkb3VibGUpX3RhcmdldENvbnRlbnRab29tU2NhbGVG
b3JSZWN0Oihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKXRhcmdldFJlY3QgY3VycmVudFNjYWxl
Oihkb3VibGUpY3VycmVudFNjYWxlIGZpdEVudGlyZVJlY3Q6KEJPT0wpZml0RW50aXJlUmVjdCBt
aW5pbXVtU2NhbGU6KGRvdWJsZSltaW5pbXVtU2NhbGUgbWF4aW11bVNjYWxlOihkb3VibGUpbWF4
aW11bVNjYWxlOwotLSAodm9pZClfem9vbVRvRm9jdXNSZWN0Oihjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmKWZvY3VzZWRFbGVtZW50UmVjdCBzZWxlY3Rpb25SZWN0Oihjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmKXNlbGVjdGlvblJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMgaW5zaWRlRml4ZWQ6
KEJPT0wpaW5zaWRlRml4ZWQgZm9udFNpemU6KGZsb2F0KWZvbnRTaXplIG1pbmltdW1TY2FsZToo
ZG91YmxlKW1pbmltdW1TY2FsZSBtYXhpbXVtU2NhbGU6KGRvdWJsZSltYXhpbXVtU2NhbGUgYWxs
b3dTY2FsaW5nOihCT09MKWFsbG93U2NhbGluZyBmb3JjZVNjcm9sbDooQk9PTClmb3JjZVNjcm9s
bDsKKy0gKHZvaWQpX3pvb21Ub0ZvY3VzUmVjdDooY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jilm
b2N1c2VkRWxlbWVudFJlY3Qgc2VsZWN0aW9uUmVjdDooY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JilzZWxlY3Rpb25SZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzIGZvbnRTaXplOihmbG9hdClmb250
U2l6ZSBtaW5pbXVtU2NhbGU6KGRvdWJsZSltaW5pbXVtU2NhbGUgbWF4aW11bVNjYWxlOihkb3Vi
bGUpbWF4aW11bVNjYWxlIGFsbG93U2NhbGluZzooQk9PTClhbGxvd1NjYWxpbmcgZm9yY2VTY3Jv
bGw6KEJPT0wpZm9yY2VTY3JvbGw7CiAtIChCT09MKV96b29tVG9SZWN0OihXZWJDb3JlOjpGbG9h
dFJlY3QpdGFyZ2V0UmVjdCB3aXRoT3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBm
aXRFbnRpcmVSZWN0OihCT09MKWZpdEVudGlyZVJlY3QgbWluaW11bVNjYWxlOihkb3VibGUpbWlu
aW11bVNjYWxlIG1heGltdW1TY2FsZTooZG91YmxlKW1heGltdW1TY2FsZSBtaW5pbXVtU2Nyb2xs
RGlzdGFuY2U6KGZsb2F0KW1pbmltdW1TY3JvbGxEaXN0YW5jZTsKIC0gKHZvaWQpX3pvb21PdXRX
aXRoT3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBhbmltYXRlZDooQk9PTClhbmlt
YXRlZDsKIC0gKHZvaWQpX3pvb21Ub0luaXRpYWxTY2FsZVdpdGhPcmlnaW46KFdlYkNvcmU6OkZs
b2F0UG9pbnQpb3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCAzYWFhMDg5ZDk5MTFj
YmU3Yjc2ZDkxMWFmNzFiZjA3MDllNDc2MDJjLi40ZGMzYzg5YWQ0MzAxYjIyOTBkZGVhNzMwZGNm
ODhlYzRlOWQ5YzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5tbQpAQCAtMTE4NywxMiArMTE4Nyw1MSBAQCAtICh2b2lkKV96b29tVG9Jbml0
aWFsU2NhbGVXaXRoT3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KW9yaWdpbiBhbmltYXRlZDoo
Qk9PTAogICAgIFtzZWxmIF96b29tVG9Qb2ludDpvcmlnaW4gYXRTY2FsZTpfaW5pdGlhbFNjYWxl
RmFjdG9yIGFuaW1hdGVkOmFuaW1hdGVkXTsKIH0KIAotLy8gZm9jdXNlZEVsZW1lbnRSZWN0IGFu
ZCBzZWxlY3Rpb25SZWN0IGFyZSBib3RoIGluIGRvY3VtZW50IGNvb3JkaW5hdGVzLgotLSAodm9p
ZClfem9vbVRvRm9jdXNSZWN0Oihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKWZvY3VzZWRFbGVt
ZW50UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcyBzZWxlY3Rpb25SZWN0Oihjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKXNlbGVjdGlvblJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMgaW5zaWRlRml4
ZWQ6KEJPT0wpaW5zaWRlRml4ZWQKKy0gKEJPT0wpX3NlbGVjdGlvblJlY3RJc0Z1bGx5VmlzaWJs
ZUFuZE5vbkVtcHR5Cit7CisgICAgYXV0byByZWN0ID0gX3BhZ2UtPnNlbGVjdGlvbkJvdW5kaW5n
UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpOworICAgIHJldHVybiAhcmVjdC5pc0VtcHR5KCkg
JiYgQ0dSZWN0Q29udGFpbnNSZWN0KHNlbGYuX2NvbnRlbnRSZWN0Rm9yVXNlckludGVyYWN0aW9u
LCByZWN0KTsKK30KKworLSAodm9pZClfc2Nyb2xsVG9BbmRSZXZlYWxTZWxlY3Rpb25JZk5lZWRl
ZAoreworICAgIGlmICghW19zY3JvbGxWaWV3IGlzU2Nyb2xsRW5hYmxlZF0pCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8gc2VsZWN0aW9uUmVjdCA9IF9wYWdlLT5zZWxlY3Rpb25Cb3VuZGlu
Z1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICBjb25zdGV4cHIgQ0dGbG9hdCBzZWxl
Y3Rpb25SZWN0UGFkZGluZyA9IDQ7CisgICAgc2VsZWN0aW9uUmVjdC5pbmZsYXRlKHNlbGVjdGlv
blJlY3RQYWRkaW5nKTsKKyAgICBzZWxlY3Rpb25SZWN0LmludGVyc2VjdChbX2NvbnRlbnRWaWV3
IGJvdW5kc10pOworICAgIGlmIChzZWxlY3Rpb25SZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHVzZXJJbnRlcmFjdGlvbkNvbnRlbnRSZWN0
ID0gc2VsZi5fY29udGVudFJlY3RGb3JVc2VySW50ZXJhY3Rpb247CisgICAgYXV0byBzY3JvbGxE
ZWx0YUluQ29udGVudENvb3JkaW5hdGVzID0gQ0dTaXplWmVybzsKKworICAgIGlmICh1c2VySW50
ZXJhY3Rpb25Db250ZW50UmVjdC5tYXhZKCkgPCBzZWxlY3Rpb25SZWN0Lm1heFkoKSkKKyAgICAg
ICAgc2Nyb2xsRGVsdGFJbkNvbnRlbnRDb29yZGluYXRlcy5oZWlnaHQgPSBzZWxlY3Rpb25SZWN0
Lm1heFkoKSAtIHVzZXJJbnRlcmFjdGlvbkNvbnRlbnRSZWN0Lm1heFkoKTsKKyAgICBlbHNlIGlm
ICh1c2VySW50ZXJhY3Rpb25Db250ZW50UmVjdC55KCkgPiBzZWxlY3Rpb25SZWN0LnkoKSkKKyAg
ICAgICAgc2Nyb2xsRGVsdGFJbkNvbnRlbnRDb29yZGluYXRlcy5oZWlnaHQgPSBzZWxlY3Rpb25S
ZWN0LnkoKSAtIHVzZXJJbnRlcmFjdGlvbkNvbnRlbnRSZWN0LnkoKTsKKworICAgIGlmICh1c2Vy
SW50ZXJhY3Rpb25Db250ZW50UmVjdC5tYXhYKCkgPCBzZWxlY3Rpb25SZWN0Lm1heFgoKSkKKyAg
ICAgICAgc2Nyb2xsRGVsdGFJbkNvbnRlbnRDb29yZGluYXRlcy53aWR0aCA9IHNlbGVjdGlvblJl
Y3QubWF4WCgpIC0gdXNlckludGVyYWN0aW9uQ29udGVudFJlY3QubWF4WCgpOworICAgIGVsc2Ug
aWYgKHVzZXJJbnRlcmFjdGlvbkNvbnRlbnRSZWN0LngoKSA+IHNlbGVjdGlvblJlY3QueCgpKQor
ICAgICAgICBzY3JvbGxEZWx0YUluQ29udGVudENvb3JkaW5hdGVzLndpZHRoID0gc2VsZWN0aW9u
UmVjdC54KCkgLSB1c2VySW50ZXJhY3Rpb25Db250ZW50UmVjdC54KCk7CisKKyAgICBpZiAoQ0dT
aXplRXF1YWxUb1NpemUoc2Nyb2xsRGVsdGFJbkNvbnRlbnRDb29yZGluYXRlcywgQ0dTaXplWmVy
bykpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gc2NhbGUgPSBjb250ZW50Wm9vbVNjYWxl
KHNlbGYpOworICAgIGF1dG8gbmV3Q29udGVudE9mZnNldCA9IFtfc2Nyb2xsVmlldyBjb250ZW50
T2Zmc2V0XTsKKyAgICBuZXdDb250ZW50T2Zmc2V0LnggKz0gc2Nyb2xsRGVsdGFJbkNvbnRlbnRD
b29yZGluYXRlcy53aWR0aCAqIHNjYWxlOworICAgIG5ld0NvbnRlbnRPZmZzZXQueSArPSBzY3Jv
bGxEZWx0YUluQ29udGVudENvb3JkaW5hdGVzLmhlaWdodCAqIHNjYWxlOworICAgIFtfc2Nyb2xs
VmlldyBzZXRDb250ZW50T2Zmc2V0Om5ld0NvbnRlbnRPZmZzZXQgYW5pbWF0ZWQ6WUVTXTsKK30K
KworLSAodm9pZClfem9vbVRvRm9jdXNSZWN0Oihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKWZv
Y3VzZWRFbGVtZW50UmVjdEluRG9jdW1lbnRDb29yZGluYXRlcyBzZWxlY3Rpb25SZWN0Oihjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKXNlbGVjdGlvblJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMK
ICAgICBmb250U2l6ZTooZmxvYXQpZm9udFNpemUgbWluaW11bVNjYWxlOihkb3VibGUpbWluaW11
bVNjYWxlIG1heGltdW1TY2FsZTooZG91YmxlKW1heGltdW1TY2FsZSBhbGxvd1NjYWxpbmc6KEJP
T0wpYWxsb3dTY2FsaW5nIGZvcmNlU2Nyb2xsOihCT09MKWZvcmNlU2Nyb2xsCiB7CiAgICAgTE9H
X1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJfem9vbVRvRm9jdXNSZWN0OiIg
PDwgZm9jdXNlZEVsZW1lbnRSZWN0SW5Eb2N1bWVudENvb3JkaW5hdGVzIDw8ICIgc2VsZWN0aW9u
UmVjdDoiIDw8IHNlbGVjdGlvblJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMpOwotICAgIFVOVVNF
RF9QQVJBTShpbnNpZGVGaXhlZCk7CiAKICAgICBjb25zdCBkb3VibGUgbWluaW11bUhlaWdodFRv
U2hvd0NvbnRlbnRBYm92ZUtleWJvYXJkID0gMTA2OwogICAgIGNvbnN0IENGVGltZUludGVydmFs
IGZvcm1Db250cm9sWm9vbUFuaW1hdGlvbkR1cmF0aW9uID0gMC4yNTsKQEAgLTIyNDksNiArMjI4
OCw5IEBAIC0gKHZvaWQpX2tleWJvYXJkQ2hhbmdlZFdpdGhJbmZvOihOU0RpY3Rpb25hcnkgKilr
ZXlib2FyZEluZm8gYWRqdXN0U2Nyb2xsVmlldzooCiAgICAgaWYgKCFlbmRGcmFtZVZhbHVlKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBhdXRvIHByZXZpb3VzSW5wdXRWaWV3Qm91bmRzID0gX2lu
cHV0Vmlld0JvdW5kczsKKyAgICBCT09MIHNlbGVjdGlvbldhc1Zpc2libGUgPSBzZWxmLl9zZWxl
Y3Rpb25SZWN0SXNGdWxseVZpc2libGVBbmROb25FbXB0eTsKKwogICAgIC8vIFRoZSBrZXlib2Fy
ZCByZWN0IGlzIGFsd2F5cyBpbiBzY3JlZW4gY29vcmRpbmF0ZXMuIEluIHRoZSB2aWV3IHNlcnZp
Y2VzIGNhc2UgdGhlIHdpbmRvdyBkb2VzIG5vdAogICAgIC8vIGhhdmUgdGhlIGludGVyZmFjZSBv
cmllbnRhdGlvbiByb3RhdGlvbiB0cmFuc2Zvcm1hdGlvbjsgaXRzIGhvc3QgZG9lcy4gU28sIGl0
IG1ha2VzIG5vIHNlbnNlIHRvCiAgICAgLy8gY2xpcCB0aGUga2V5Ym9hcmQgcmVjdCBhZ2FpbnN0
IGl0cyBzY3JlZW4uCkBAIC0yMjcyLDYgKzIzMTQsOSBAQCAtICh2b2lkKV9rZXlib2FyZENoYW5n
ZWRXaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopa2V5Ym9hcmRJbmZvIGFkanVzdFNjcm9sbFZpZXc6
KAogICAgICAgICAgICAgX3RvdGFsU2Nyb2xsVmlld0JvdHRvbUluc2V0QWRqdXN0bWVudEZvcktl
eWJvYXJkICs9IGJvdHRvbUluc2V0QWZ0ZXJBZGp1c3RtZW50IC0gYm90dG9tSW5zZXRCZWZvcmVB
ZGp1c3RtZW50OwogICAgIH0KIAorICAgIGlmIChzZWxlY3Rpb25XYXNWaXNpYmxlICYmIFtfY29u
dGVudFZpZXcgX2hhc0ZvY3VzZWRFbGVtZW50XSAmJiAhQ0dSZWN0SXNFbXB0eShwcmV2aW91c0lu
cHV0Vmlld0JvdW5kcykgJiYgIUNHUmVjdElzRW1wdHkoX2lucHV0Vmlld0JvdW5kcykgJiYgIUNH
UmVjdEVxdWFsVG9SZWN0KHByZXZpb3VzSW5wdXRWaWV3Qm91bmRzLCBfaW5wdXRWaWV3Qm91bmRz
KSkKKyAgICAgICAgW3NlbGYgX3Njcm9sbFRvQW5kUmV2ZWFsU2VsZWN0aW9uSWZOZWVkZWRdOwor
CiAgICAgW3NlbGYgX3NjaGVkdWxlVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlXTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3YWNiNjM4YzMyNmM3MjdjNTBj
OTBiYTM3NjAyOGVhMzUzMGU4NWNmLi42N2E0ZWI5ZjYyMWQ0MzczOGUwMWI5ZWFmMDExMjkzY2Vi
NTdjOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODE4LDYg
KzgxOCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2Nyb2xsaW5nT3Jab29taW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1Njcm9sbGluZ09yWm9vbWluZzsgfQogICAgIHZvaWQgcmVxdWVzdEV2YXNp
b25SZWN0c0Fib3ZlU2VsZWN0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OkZsb2F0UmVjdD4mKT4mJik7CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25XaXRo
RGVsdGEoaW50NjRfdCBsb2NhdGlvbkRlbHRhLCBpbnQ2NF90IGxlbmd0aERlbHRhLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzZWxlY3Rpb25C
b3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSBjb25zdDsKICAgICB2b2lkIHJlcXVl
c3REb2N1bWVudEVkaXRpbmdDb250ZXh0KFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJl
cXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250
ZXh0KT4mJik7CiAgICAgdm9pZCBnZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKFN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kVHlwZSk7CiAgICAgdm9pZCBzaG93RGF0YURldGVjdG9yc1VJRm9y
UG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKaW5kZXgg
ZDk0ODkwODllOGZlM2IxMWJkNjQ1MDk4NGZiZDNiYTI1NTk2NTE2MS4uNTM5MTllMWExZGQ0NmQ3
OWE4YjQxZDdkMmYzYjMwYzA5NDQ3Mjk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5oCkBAIC0xMTcsNyArMTE3LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bv
b2w7CiAtICh2b2lkKV9zZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuOihOU0RhdGEgKilk
YXRhOwogCiAtIChCT09MKV9zY3JvbGxUb1JlY3Q6KENHUmVjdCl0YXJnZXRSZWN0IHdpdGhPcmln
aW46KENHUG9pbnQpb3JpZ2luIG1pbmltdW1TY3JvbGxEaXN0YW5jZTooQ0dGbG9hdCltaW5pbXVt
U2Nyb2xsRGlzdGFuY2U7Ci0tICh2b2lkKV96b29tVG9Gb2N1c1JlY3Q6KENHUmVjdClyZWN0VG9G
b2N1cyBzZWxlY3Rpb25SZWN0OihDR1JlY3Qpc2VsZWN0aW9uUmVjdCBpbnNpZGVGaXhlZDooQk9P
TClpbnNpZGVGaXhlZCBmb250U2l6ZTooZmxvYXQpZm9udFNpemUgbWluaW11bVNjYWxlOihkb3Vi
bGUpbWluaW11bVNjYWxlIG1heGltdW1TY2FsZTooZG91YmxlKW1heGltdW1TY2FsZSBhbGxvd1Nj
YWxpbmc6KEJPT0wpYWxsb3dTY2FsaW5nIGZvcmNlU2Nyb2xsOihCT09MKWZvcmNlU2Nyb2xsOwor
LSAodm9pZClfem9vbVRvRm9jdXNSZWN0OihDR1JlY3QpcmVjdFRvRm9jdXMgc2VsZWN0aW9uUmVj
dDooQ0dSZWN0KXNlbGVjdGlvblJlY3QgZm9udFNpemU6KGZsb2F0KWZvbnRTaXplIG1pbmltdW1T
Y2FsZTooZG91YmxlKW1pbmltdW1TY2FsZSBtYXhpbXVtU2NhbGU6KGRvdWJsZSltYXhpbXVtU2Nh
bGUgYWxsb3dTY2FsaW5nOihCT09MKWFsbG93U2NhbGluZyBmb3JjZVNjcm9sbDooQk9PTClmb3Jj
ZVNjcm9sbDsKIC0gKEJPT0wpX3pvb21Ub1JlY3Q6KENHUmVjdCl0YXJnZXRSZWN0IHdpdGhPcmln
aW46KENHUG9pbnQpb3JpZ2luIGZpdEVudGlyZVJlY3Q6KEJPT0wpZml0RW50aXJlUmVjdCBtaW5p
bXVtU2NhbGU6KGRvdWJsZSltaW5pbXVtU2NhbGUgbWF4aW11bVNjYWxlOihkb3VibGUpbWF4aW11
bVNjYWxlIG1pbmltdW1TY3JvbGxEaXN0YW5jZTooQ0dGbG9hdCltaW5pbXVtU2Nyb2xsRGlzdGFu
Y2U7CiAtICh2b2lkKV96b29tT3V0V2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW47CiAtICh2b2lk
KV96b29tVG9Jbml0aWFsU2NhbGVXaXRoT3JpZ2luOihDR1BvaW50KW9yaWdpbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggYzU3NmE5NWM5ZjNi
MTAwZjAxYjJmNGJiYjY1NDUwYTIyYmRkOTc1ZS4uZDMxYjYzZWEwYjBlNDFiNGIyODE2ZjQwZmYy
MmM2MWYyNzVjM2IwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0KQEAgLTcxMywxMSArNzEzLDEwIEBAIC0gKEJPT0wpX3Njcm9sbFRvUmVjdDooQ0dS
ZWN0KXRhcmdldFJlY3Qgd2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW4gbWluaW11bVNjcm9sCiAg
ICAgcmV0dXJuIFtfd2ViVmlldyBfc2Nyb2xsVG9SZWN0OnRhcmdldFJlY3Qgb3JpZ2luOm9yaWdp
biBtaW5pbXVtU2Nyb2xsRGlzdGFuY2U6bWluaW11bVNjcm9sbERpc3RhbmNlXTsKIH0KIAotLSAo
dm9pZClfem9vbVRvRm9jdXNSZWN0OihDR1JlY3QpcmVjdFRvRm9jdXMgc2VsZWN0aW9uUmVjdDoo
Q0dSZWN0KXNlbGVjdGlvblJlY3QgaW5zaWRlRml4ZWQ6KEJPT0wpaW5zaWRlRml4ZWQgZm9udFNp
emU6KGZsb2F0KWZvbnRTaXplIG1pbmltdW1TY2FsZTooZG91YmxlKW1pbmltdW1TY2FsZSBtYXhp
bXVtU2NhbGU6KGRvdWJsZSltYXhpbXVtU2NhbGUgYWxsb3dTY2FsaW5nOihCT09MKWFsbG93U2Nh
bGluZyBmb3JjZVNjcm9sbDooQk9PTClmb3JjZVNjcm9sbAorLSAodm9pZClfem9vbVRvRm9jdXNS
ZWN0OihDR1JlY3QpcmVjdFRvRm9jdXMgc2VsZWN0aW9uUmVjdDooQ0dSZWN0KXNlbGVjdGlvblJl
Y3QgZm9udFNpemU6KGZsb2F0KWZvbnRTaXplIG1pbmltdW1TY2FsZTooZG91YmxlKW1pbmltdW1T
Y2FsZSBtYXhpbXVtU2NhbGU6KGRvdWJsZSltYXhpbXVtU2NhbGUgYWxsb3dTY2FsaW5nOihCT09M
KWFsbG93U2NhbGluZyBmb3JjZVNjcm9sbDooQk9PTClmb3JjZVNjcm9sbAogewogICAgIFtfd2Vi
VmlldyBfem9vbVRvRm9jdXNSZWN0OnJlY3RUb0ZvY3VzCiAgICAgICAgICAgICAgICAgIHNlbGVj
dGlvblJlY3Q6c2VsZWN0aW9uUmVjdAotICAgICAgICAgICAgICAgICAgIGluc2lkZUZpeGVkOmlu
c2lkZUZpeGVkCiAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6Zm9udFNpemUKICAgICAg
ICAgICAgICAgICAgIG1pbmltdW1TY2FsZTptaW5pbXVtU2NhbGUKICAgICAgICAgICAgICAgICAg
IG1heGltdW1TY2FsZTptYXhpbXVtU2NhbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDEyNjQ1ZmE5ZjQy
MTIzN2QwNjA2MzA3MzAwYmE4NDEwZjgxYzQ0MjcuLjZhYjllOTUyNjM3ODU0NjQxZjVmOWM3ZWEx
YmRlYWRjNTdkODQ3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMjAxNyw2ICsyMDE3LDIzIEBAIC0g
KEJPT0wpX3JlcXVpcmVzS2V5Ym9hcmRSZXNldE9uUmVsb2FkCiAgICAgcmV0dXJuIFlFUzsKIH0K
IAorLSAoV2ViQ29yZTo6RmxvYXRSZWN0KXJlY3RUb1JldmVhbFdoZW5ab29taW5nVG9Gb2N1c2Vk
RWxlbWVudAoreworICAgIFdlYkNvcmU6OkludFJlY3QgZWxlbWVudEludGVyYWN0aW9uUmVjdDsK
KyAgICBpZiAoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0LmNvbnRh
aW5zKF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmxhc3RJbnRlcmFjdGlvbkxvY2F0aW9uKSkK
KyAgICAgICAgZWxlbWVudEludGVyYWN0aW9uUmVjdCA9IHsgX2ZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb24ubGFzdEludGVyYWN0aW9uTG9jYXRpb24sIHsgMSwgMSB9IH07CisKKyAgICBpZiAoIW1h
eUNvbnRhaW5TZWxlY3RhYmxlVGV4dChfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50
VHlwZSkpCisgICAgICAgIHJldHVybiBlbGVtZW50SW50ZXJhY3Rpb25SZWN0OworCisgICAgaWYg
KF9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhKQorICAgICAgICBy
ZXR1cm4gZWxlbWVudEludGVyYWN0aW9uUmVjdDsKKworICAgIGF1dG8gYm91bmRpbmdSZWN0ID0g
X3BhZ2UtPnNlbGVjdGlvbkJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpOworICAg
IGJvdW5kaW5nUmVjdC5pbnRlcnNlY3QoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW50ZXJh
Y3Rpb25SZWN0KTsKKyAgICByZXR1cm4gYm91bmRpbmdSZWN0OworfQorCiAtICh2b2lkKV96b29t
VG9SZXZlYWxGb2N1c2VkRWxlbWVudAogewogICAgIGlmIChfc3VwcHJlc3NTZWxlY3Rpb25Bc3Np
c3RhbnRSZWFzb25zIHx8IF90ZXh0SW50ZXJhY3Rpb25Jc0hhcHBlbmluZykKQEAgLTIwMjUsOCAr
MjA0Miw3IEBAIC0gKHZvaWQpX3pvb21Ub1JldmVhbEZvY3VzZWRFbGVtZW50CiAgICAgLy8gSW4g
Y2FzZSB1c2VyIHNjYWxpbmcgaXMgZm9yY2UgZW5hYmxlZCwgZG8gbm90IHVzZSB0aGF0IHNjYWxp
bmcgd2hlbiB6b29taW5nIGluIHdpdGggYW4gaW5wdXQgZmllbGQuCiAgICAgLy8gWm9vbWluZyBh
Ym92ZSB0aGUgcGFnZSdzIGRlZmF1bHQgc2NhbGUgZmFjdG9yIHNob3VsZCBvbmx5IGhhcHBlbiB3
aGVuIHRoZSB1c2VyIHBlcmZvcm1zIGl0LgogICAgIFtzZWxmIF96b29tVG9Gb2N1c1JlY3Q6X2Zv
Y3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0Ci0gICAgICAgIHNlbGVjdGlv
blJlY3Q6X2RpZEFjY2Vzc29yeVRhYkluaXRpYXRlRm9jdXMgPyBXZWJDb3JlOjpGbG9hdFJlY3Qo
KSA6IHJlY3RUb1JldmVhbFdoZW5ab29taW5nVG9Gb2N1c2VkRWxlbWVudChfZm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbiwgX3BhZ2UtPmVkaXRvclN0YXRlKCkpCi0gICAgICAgIGluc2lkZUZpeGVk
Ol9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmluc2lkZUZpeGVkUG9zaXRpb24KKyAgICAgICAg
c2VsZWN0aW9uUmVjdDpfZGlkQWNjZXNzb3J5VGFiSW5pdGlhdGVGb2N1cyA/IFdlYkNvcmU6OkZs
b2F0UmVjdCgpIDogc2VsZi5yZWN0VG9SZXZlYWxXaGVuWm9vbWluZ1RvRm9jdXNlZEVsZW1lbnQK
ICAgICAgICAgZm9udFNpemU6X2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24ubm9kZUZvbnRTaXpl
CiAgICAgICAgIG1pbmltdW1TY2FsZTpfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5taW5pbXVt
U2NhbGVGYWN0b3IKICAgICAgICAgbWF4aW11bVNjYWxlOl9mb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uLm1heGltdW1TY2FsZUZhY3Rvcklnbm9yaW5nQWx3YXlzU2NhbGFibGUKQEAgLTU5MDUsMzUg
KzU5MjEsNiBAQCBzdGF0aWMgYm9vbCBzaG91bGRTaG93S2V5Ym9hcmRGb3JFbGVtZW50KGNvbnN0
IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbgogICAgIHJldHVybiBlbGVtZW50VHlw
ZVJlcXVpcmVzQWNjZXNzb3J5VmlldyhpbmZvcm1hdGlvbi5lbGVtZW50VHlwZSk7CiB9CiAKLXN0
YXRpYyBXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdFRvUmV2ZWFsV2hlblpvb21pbmdUb0ZvY3VzZWRF
bGVtZW50KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgZWxlbWVudElu
Zm8sIGNvbnN0IFdlYktpdDo6RWRpdG9yU3RhdGUmIGVkaXRvclN0YXRlKQotewotICAgIFdlYkNv
cmU6OkludFJlY3QgZWxlbWVudEludGVyYWN0aW9uUmVjdDsKLSAgICBpZiAoZWxlbWVudEluZm8u
aW50ZXJhY3Rpb25SZWN0LmNvbnRhaW5zKGVsZW1lbnRJbmZvLmxhc3RJbnRlcmFjdGlvbkxvY2F0
aW9uKSkKLSAgICAgICAgZWxlbWVudEludGVyYWN0aW9uUmVjdCA9IHsgZWxlbWVudEluZm8ubGFz
dEludGVyYWN0aW9uTG9jYXRpb24sIHsgMSwgMSB9IH07Ci0KLSAgICBpZiAoIW1heUNvbnRhaW5T
ZWxlY3RhYmxlVGV4dChlbGVtZW50SW5mby5lbGVtZW50VHlwZSkpCi0gICAgICAgIHJldHVybiBl
bGVtZW50SW50ZXJhY3Rpb25SZWN0OwotCi0gICAgaWYgKGVkaXRvclN0YXRlLmlzTWlzc2luZ1Bv
c3RMYXlvdXREYXRhKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBy
ZXR1cm4gZWxlbWVudEludGVyYWN0aW9uUmVjdDsKLSAgICB9Ci0KLSAgICBpZiAoZWRpdG9yU3Rh
dGUuc2VsZWN0aW9uSXNOb25lKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgV2ViQ29yZTo6
RmxvYXRSZWN0IHNlbGVjdGlvbkJvdW5kaW5nUmVjdDsKLSAgICBhdXRvJiBwb3N0TGF5b3V0RGF0
YSA9IGVkaXRvclN0YXRlLnBvc3RMYXlvdXREYXRhKCk7Ci0gICAgaWYgKGVkaXRvclN0YXRlLnNl
bGVjdGlvbklzUmFuZ2UpIHsKLSAgICAgICAgZm9yIChhdXRvJiByZWN0IDogcG9zdExheW91dERh
dGEuc2VsZWN0aW9uUmVjdHMpCi0gICAgICAgICAgICBzZWxlY3Rpb25Cb3VuZGluZ1JlY3QudW5p
dGUocmVjdC5yZWN0KCkpOwotICAgIH0gZWxzZQotICAgICAgICBzZWxlY3Rpb25Cb3VuZGluZ1Jl
Y3QgPSBwb3N0TGF5b3V0RGF0YS5jYXJldFJlY3RBdFN0YXJ0OwotCi0gICAgc2VsZWN0aW9uQm91
bmRpbmdSZWN0LmludGVyc2VjdChlbGVtZW50SW5mby5pbnRlcmFjdGlvblJlY3QpOwotICAgIHJl
dHVybiBzZWxlY3Rpb25Cb3VuZGluZ1JlY3Q7Ci19Ci0KIHN0YXRpYyBSZXRhaW5QdHI8TlNPYmpl
Y3QgPFdLRm9ybVBlcmlwaGVyYWw+PiBjcmVhdGVJbnB1dFBlcmlwaGVyYWxXaXRoVmlldyhXZWJL
aXQ6OklucHV0VHlwZSB0eXBlLCBXS0NvbnRlbnRWaWV3ICp2aWV3KQogewogI2lmIFBMQVRGT1JN
KFdBVENIT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQppbmRleCA1NmY1YjA3NDI0MDA5M2I5NDkwMTlkNzg5MDcxMjU0MWIyY2IxMzkwLi5iMDlj
YzkyZmIxNDJmZGE5ZDQzMjMwZGY2NDY4MTUzYjExZDI3NjczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTExNDYsNiArMTE0NiwyNSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlU2VsZWN0aW9uV2l0aERlbHRhKGludDY0X3QgbG9j
YXRpb25EZWx0YSwgaW50NjRfdCBsZW5ndAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViUGFnZTo6VXBkYXRlU2VsZWN0aW9uV2l0aERlbHRhKGxvY2F0aW9uRGVsdGEsIGxlbmd0
aERlbHRhKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCitXZWJDb3JlOjpGbG9h
dFJlY3QgV2ViUGFnZVByb3h5OjpzZWxlY3Rpb25Cb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRp
bmF0ZXMoKSBjb25zdAoreworICAgIGlmIChtX2VkaXRvclN0YXRlLnNlbGVjdGlvbklzTm9uZSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmIChtX2VkaXRvclN0YXRlLmlzTWlzc2luZ1Bv
c3RMYXlvdXREYXRhKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IGJvdW5kczsKKyAgICBhdXRvJiBwb3N0TGF5b3V0RGF0YSA9IG1fZWRpdG9yU3RhdGUucG9z
dExheW91dERhdGEoKTsKKyAgICBpZiAobV9lZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc1JhbmdlKSB7
CisgICAgICAgIGZvciAoYXV0byYgcmVjdCA6IHBvc3RMYXlvdXREYXRhLnNlbGVjdGlvblJlY3Rz
KQorICAgICAgICAgICAgYm91bmRzLnVuaXRlKHJlY3QucmVjdCgpKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgYm91bmRzID0gcG9zdExheW91dERhdGEuY2FyZXRSZWN0QXRTdGFydDsKKworICAgIHJl
dHVybiBib3VuZHM7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RG9jdW1lbnRFZGl0
aW5nQ29udGV4dChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0IHJlcXVlc3Qs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0KT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZTRmZTA3Nzk1YzMzYjRkZjE1ODY1ODcwMGEwYzJmMzM3NTkwMzA4Li5jNThiNjRk
NGYzNWVlZmY3NDc5ZTAwYzlmYTQxYWY0MmFkMTc3OTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMjEtMDEtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gRW1vamkga2V5Ym9hcmQgY292ZXJzIHRleHQgZmllbGQgb24gdHdpdHRlci5j
b20vbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMDY2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjg0MDA0NzE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5
IHRoYXQgYWZ0ZXIgZGlzY29ubmVjdGluZyBhIGhhcmR3YXJlIGtleWJvYXJkIGFuZCBzaG93aW5n
IHRoZSBzb2Z0d2FyZSBrZXlib2FyZCwgd2Ugc2Nyb2xsCisgICAgICAgIHVwIHRvIHJldmVhbCB0
aGUgY2FyZXQgaW4gYSBmb2N1c2VkIHRleHQgZmllbGQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9pb3Mvc2Nyb2xsLXRvLXJldmVhbC1zZWxlY3Rpb24td2hlbi1zaG93aW5nLXNvZnR3
YXJlLWtleWJvYXJkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vaW9zL3Njcm9sbC10by1yZXZlYWwtc2VsZWN0aW9uLXdoZW4tc2hvd2luZy1zb2Z0d2Fy
ZS1rZXlib2FyZC5odG1sOiBBZGRlZC4KKwogMjAyMS0wMS0xNCAgTWFydGluIFJvYmluc29uICA8
bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1zY3JvbGwtc25hcF0gc2Nyb2xs
LXNuYXAtYWxpZ24gcGFyc2luZyBpcyBpbmNvcnJlY3QvYmFja3dhcmRzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2Nyb2xsLXRvLXJldmVhbC1zZWxlY3Rp
b24td2hlbi1zaG93aW5nLXNvZnR3YXJlLWtleWJvYXJkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9zY3JvbGwtdG8tcmV2ZWFsLXNlbGVjdGlvbi13aGVu
LXNob3dpbmctc29mdHdhcmUta2V5Ym9hcmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MzBj
YjYwZWExY2Q1MDFiY2NjN2Q4NTk5NDc5YzY5ODYyNDJhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2Nyb2xsLXRvLXJldmVhbC1zZWxlY3Rp
b24td2hlbi1zaG93aW5nLXNvZnR3YXJlLWtleWJvYXJkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKK1ZlcmlmaWVzIHRoYXQgYWZ0ZXIgZGlzY29ubmVjdGluZyBhIGhhcmR3YXJlIGtleWJv
YXJkIGFuZCBzaG93aW5nIHRoZSBzb2Z0d2FyZSBrZXlib2FyZCwgd2Ugc2Nyb2xsIHRvIHJldmVh
bCB0aGUgY2FyZXQgaW4gdGhlIGZvY3VzZWQgdGV4dCBmaWVsZC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCitQQVNTIFNjcm9sbGVkIGluIHJlc3BvbnNlIHRvIHNob3dpbmcgc29mdHdh
cmUga2V5Ym9hcmQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2Ny
b2xsLXRvLXJldmVhbC1zZWxlY3Rpb24td2hlbi1zaG93aW5nLXNvZnR3YXJlLWtleWJvYXJkLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2Nyb2xsLXRvLXJldmVhbC1z
ZWxlY3Rpb24td2hlbi1zaG93aW5nLXNvZnR3YXJlLWtleWJvYXJkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDI5OTJjNWEwYzE5NmY5MGU3M2Y5YTcyYWQ3MDE1ZmI0YmIwNDdkMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9zY3JvbGwtdG8tcmV2ZWFsLXNl
bGVjdGlvbi13aGVuLXNob3dpbmctc29mdHdhcmUta2V5Ym9hcmQuaHRtbApAQCAtMCwwICsxLDU2
IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJs
ZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLCB3aWR0aD1kZXZpY2Utd2lkdGgiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5j
ICgpID0+IHsKKyAgICBsZXQgZWRpdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2W2Nv
bnRlbnRlZGl0YWJsZV0iKTsKKyAgICBkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCBhZnRlciBk
aXNjb25uZWN0aW5nIGEgaGFyZHdhcmUga2V5Ym9hcmQgYW5kIHNob3dpbmcgdGhlIHNvZnR3YXJl
IGtleWJvYXJkLCB3ZSBzY3JvbGwgdG8gcmV2ZWFsIHRoZSBjYXJldCBpbiB0aGUgZm9jdXNlZCB0
ZXh0IGZpZWxkLiIpOworCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklucHV0
U2Vzc2lvbihlZGl0b3IpOworICAgIGxldCBpbml0aWFsQ29udGVudE9mZnNldCA9IGF3YWl0IFVJ
SGVscGVyLmNvbnRlbnRPZmZzZXQoKTsKKworICAgIGF3YWl0IFVJSGVscGVyLnNldEhhcmR3YXJl
S2V5Ym9hcmRBdHRhY2hlZChmYWxzZSk7CisKKyAgICBsZXQgY29udGVudE9mZnNldCA9IGluaXRp
YWxDb250ZW50T2Zmc2V0OworICAgIHdoaWxlIChjb250ZW50T2Zmc2V0LnkgPD0gaW5pdGlhbENv
bnRlbnRPZmZzZXQueSkgeworICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcigyMDApOwor
ICAgICAgICBjb250ZW50T2Zmc2V0ID0gYXdhaXQgVUlIZWxwZXIuY29udGVudE9mZnNldCgpOwor
ICAgIH0KKworICAgIHRlc3RQYXNzZWQoIlNjcm9sbGVkIGluIHJlc3BvbnNlIHRvIHNob3dpbmcg
c29mdHdhcmUga2V5Ym9hcmQiKTsKKworICAgIGVkaXRvci5ibHVyKCk7CisgICAgYXdhaXQgVUlI
ZWxwZXIud2FpdEZvcktleWJvYXJkVG9IaWRlKCk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30p
OworPC9zY3JpcHQ+Cis8c3R5bGU+CitodG1sLCBib2R5IHsKKyAgICB3aWR0aDogMTAwJTsKKyAg
ICBoZWlnaHQ6IDEwMCU7Cit9CisKK2Rpdltjb250ZW50ZWRpdGFibGVdIHsKKyAgICBwb3NpdGlv
bjogZml4ZWQ7CisgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOworICAgIGJvdHRvbTogMWVt
OworICAgIGJvcmRlcjogdG9tYXRvIHNvbGlkIDFweDsKKyAgICBvdXRsaW5lOiBub25lOworfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY29udGVudGVkaXRhYmxlPjwvZGl2
PgorICAgIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>