<?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>224287</bug_id>
          
          <creation_ts>2021-04-07 09:25:37 -0700</creation_ts>
          <short_desc>[iOS][FCR] Use context menus for text input datalist dropdowns</short_desc>
          <delta_ts>2021-04-09 06:25:41 -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>Forms</component>
          <version>Other</version>
          <rep_platform>iPhone / iPad</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="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>cdumez</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>1747918</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-04-07 09:25:37 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747919</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-04-07 09:25:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/76351317&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747921</commentid>
    <comment_count>2</comment_count>
      <attachid>425410</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-04-07 09:28:23 -0700</bug_when>
    <thetext>Created attachment 425410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747926</commentid>
    <comment_count>3</comment_count>
      <attachid>425412</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-04-07 09:46:31 -0700</bug_when>
    <thetext>Created attachment 425412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747939</commentid>
    <comment_count>4</comment_count>
      <attachid>425414</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-04-07 10:02:18 -0700</bug_when>
    <thetext>Created attachment 425414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748584</commentid>
    <comment_count>5</comment_count>
      <attachid>425414</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-08 19:45:36 -0700</bug_when>
    <thetext>Comment on attachment 425414
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9817
&gt; +    return [_dataListSuggestionsControl.getAutoreleased() isShowingSuggestions];

Nit - I think you can remove the `.getAutoreleased()` here.

&gt; Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:48
&gt; +@property (nonatomic, readwrite) BOOL isShowingSuggestions;

Nit - I think you don&apos;t need the `readwrite` here, since @property is readwrite by default.

&gt; Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:479
&gt; +        [_suggestionsContextMenuInteraction updateVisibleMenuWithBlock:[self](UIMenu *visibleMenu) -&gt; UIMenu * {

Nit - I think you can just use &amp; in the block capture and omit the `self-&gt;` below, since this block is run synchronously.

&gt; Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:594
&gt; +        if (strongSelf)

Nit - you can do `if (auto strongSelf = weakSelf.get())` here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748591</commentid>
    <comment_count>6</comment_count>
      <attachid>425580</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-04-08 20:32:29 -0700</bug_when>
    <thetext>Created attachment 425580
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748592</commentid>
    <comment_count>7</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-04-08 20:33:54 -0700</bug_when>
    <thetext>Thanks for the review! Made all the requested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748710</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-09 06:25:40 -0700</bug_when>
    <thetext>Committed r275760 (236338@main): &lt;https://commits.webkit.org/236338@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425580.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425410</attachid>
            <date>2021-04-07 09:28:23 -0700</date>
            <delta_ts>2021-04-07 09:46:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224287-20210407122822.patch</filename>
            <type>text/plain</type>
            <size>24751</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRhMGVkMTYzYTllMjZmNzY1
MzAyZTk2N2U2ZjBhZDAxNDhjYWMwZDUuLmQ0MGRiNGU1NzEwZDExZDE0ODJhMWE3NDE0NTNhNTQ1
NmMzODE0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMDQtMDcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW0ZDUl0gVXNlIGNv
bnRleHQgbWVudXMgZm9yIHRleHQgaW5wdXQgZGF0YWxpc3QgZHJvcGRvd25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc2MzUxMzE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBjb250ZXh0IG1lbnVzIHJhdGhlciB0aGFuIHBvcG92ZXJzIHRv
IHByZXNlbnQgc3VnZ2VzdGVkIHZhbHVlcyBmb3IKKyAgICAgICAgdGV4dCBpbnB1dHMgd2l0aCBh
biBhc3NvY2lhdGVkIGRhdGFsaXN0IGVsZW1lbnQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmdJT1MuaDoKKworICAgICAgICBFeHBvc2UgX2lzU2hvd2luZ0RhdGFsaXN0
U3VnZ2VzdGlvbnMgZm9yIHRlc3RpbmcuIFByZXZpb3VzbHksIHRoZSB0ZXN0CisgICAgICAgIHJ1
bm5lciB0cmF2ZXJzZWQgdGhlIHZpZXcgaGllcmFyY2h5IGluIG9yZGVyIHRvIGRldGVybWluZSB3
aGV0aGVyIHRoZQorICAgICAgICBzdWdnZXN0aW9ucyB3ZXJlIHZpc2libGUuIEhvd2V2ZXIsIHRo
YXQgYXBwcm9hY2ggaXMgbm90IHJlbGlhYmxlIHNpbmNlCisgICAgICAgIHdlIG5vIGxvbmdlciBv
d24gdGhlIHByZXNlbnRlZCB2aWV3LCBhbmQgVUlLaXQgY291bGQgY2hhbmdlIHRoZQorICAgICAg
ICBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIGNvbnRleHQgbWVudXMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2lzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnNdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGRvQWZ0ZXJFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50Ol0pOgorCisgICAg
ICAgIEFkZCBhIG1lY2hhbmlzbSB0byBwZXJmb3JtIGFjdGlvbnMgYWZ0ZXIgYW4gZWRpdG9yIHN0
YXRlIHVwZGF0ZSB3aGVuCisgICAgICAgIGZvY3VzaW5nIGFuIGVsZW1lbnQuIElmIGFuIHVwZGF0
ZSBpcyBub3QgZXhwZWN0ZWQsIHJ1biB0aGUgYmxvY2sKKyAgICAgICAgaW1tZWRpYXRlbHkuCisK
KyAgICAgICAgU2VlIGJlbG93IGZvciBkZXRhaWxzIG9uIHdoeSB0aGlzIGlzIG5lY2Vzc2FyeS4K
KworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRVcGRhdGVFZGl0b3JTdGF0ZV0pOgorCisg
ICAgICAgIFJ1biBhbnkgcGVuZGluZyBibG9ja3MgdGhhdCB3ZXJlIGF3YWl0aW5nIGFuIGVkaXRv
ciBzdGF0ZSB1cGRhdGUuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpc1Nob3dpbmdEYXRh
TGlzdFN1Z2dlc3Rpb25zXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd25JT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbToKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd24gaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93biBkaWRTZWxlY3RPcHRpb25BdEluZGV4Ol0pOgorICAgICAgICAoLVtXS0Rh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBfc2hvd1N1Z2dlc3Rpb25zXSk6CisKKyAgICAgICAg
UHJlc2VudCBhIGNvbnRleHQgbWVudSBkaXNwbGF5aW5nIHRoZSBzdWdnZXN0aW9ucyBpZiBvbmUg
aXMgbm90IGFscmVhZHkKKyAgICAgICAgcHJlc2VudGVkLgorCisgICAgICAgIE5vdGUgdGhhdCBm
b2N1c2luZyB0ZXh0IGZpZWxkcyBjYW4gcmVzdWx0IGluIGF1dG9tYXRpYyB6b29taW5nIG9mIHRo
ZQorICAgICAgICB3ZWJ2aWV3LiBUaGlzIHpvb21pbmcgb2NjdXJzIGFmdGVyIGFuIGVkaXRvciBz
dGF0ZSB1cGRhdGUgZm9yIGZvY3VzZWQKKyAgICAgICAgZWxlbWVudHMuIFRoZSBwcmVzZW50YXRp
b24gb2YgdGhlIGNvbnRleHQgbWVudSBpcyBkZWZlcnJlZCB0byBydW4KKyAgICAgICAgYWZ0ZXIg
YW4gZWRpdG9yIHN0YXRlIHVwZGF0ZSB0byBlbnN1cmUgYW55IHpvb21pbmcgb2NjdXJzIGJlZm9y
ZQorICAgICAgICBzaG93aW5nIHRoZSBtZW51LiBXaXRob3V0IHRoaXMgZGVmZXJyZWQgcHJlc2Vu
dGF0aW9uIG1lY2hhbmlzbSwgdGhlCisgICAgICAgIGNvbnRleHQgbWVudSBjYW4gYmUgcHJlc2Vu
dGVkIGJlZm9yZSB0aGUgc3RhdGUgdXBkYXRlLCBwYXJ0aWFsbHkKKyAgICAgICAgb2JzY3VyaW5n
IHRoZSB3ZWJ2aWV3IGFuZCByZXN1bHRpbmcgaW4gYW4gaW5jb3JyZWN0IHpvb20gb25jZSB0aGUK
KyAgICAgICAgdXBkYXRlIG9jY3Vycy4KKworICAgICAgICBJZiBhIG1lbnUgaXMgYWxyZWFkeSBw
cmVzZW50ZWQsIHVzZSBgdXBkYXRlVmlzaWJsZU1lbnVXaXRoQmxvY2s6YCB0bworICAgICAgICB1
cGRhdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSBtZW51LgorCisgICAgICAgICgtW1dLRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duIF91cGRhdGVUZXh0U3VnZ2VzdGlvbnNdKToKKyAgICAgICAgKC1b
V0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gX3VwZGF0ZVN1Z2dlc3Rpb25zTWVudUVsZW1l
bnRzXSk6CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9yZW1vdmVD
b250ZXh0TWVudUludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duIF9zdWdnZXN0aW9uc01lbnVEaWRQcmVzZW50XSk6CisgICAgICAgICgtW1dLRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9zdWdnZXN0aW9uc01lbnVEaWREaXNtaXNzXSk6Cisg
ICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9wcmVmZXJyZWRFZGdlSW5z
ZXRzRm9yU3VnZ2VzdGlvbnNNZW51XSk6CisKKyAgICAgICAgQnkgZGVmYXVsdCwgY29udGV4dCBt
ZW51cyBjYW4gb2JzY3VyZSB0aGUgcHJlc2VudGluZyBlbGVtZW50IGlmIHRoZXJlCisgICAgICAg
IGFyZSB0b28gbWFueSBvcHRpb25zLiBJbnNldCB0aGUgbWVudSBzbyB0aGF0IGl0IGRvZXMgbm90
IG92ZXJsYXAgdGhlCisgICAgICAgIHRleHQgZmllbGQuIFByZXNlbnQgdGhlIG1lbnUgYWJvdmUg
dGhlIHRleHQgZmllbGQgaWYgdGhlcmUgaXMgbGVzcworICAgICAgICBzcGFjZSB1bmRlcm5lYXRo
IHRoZSBmaWVsZC4KKworICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBj
b250ZXh0TWVudUludGVyYWN0aW9uOnByZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZp
Z3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9j
b250ZXh0TWVudUludGVyYWN0aW9uOnN0eWxlRm9yTWVudVdpdGhDb25maWd1cmF0aW9uOl0pOgor
ICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBjb250ZXh0TWVudUludGVy
YWN0aW9uOmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpdKToKKyAgICAgICAgKC1bV0tE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gY29udGV4dE1lbnVJbnRlcmFjdGlvbjp3aWxsRGlz
cGxheU1lbnVGb3JDb25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorICAgICAgICAoLVtXS0RhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93biBjb250ZXh0TWVudUludGVyYWN0aW9uOndpbGxFbmRGb3JD
b25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorCiAyMDIxLTA0LTA2ICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhZGRpdGlvbmFsIHBhZ2UgbG9hZCBk
aWFnbm9zdGljIGxvZ2dpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
LmgKaW5kZXggODg1ZDk0MTZmYWZmZGY0ZDg5Mjk1YTg0YTI0ZWM1MDJhZjlhYjYxMy4uNzI2ZTcz
NTMwY2EwNmViMDNmOTU0NzVlNzQwMmQ5NDkyMjI2MTM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTEyMTIsNiArMTIxMiw3IEBAIHR5cGVkZWYgTlNf
RU5VTShOU1VJbnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewogCiBAaW50ZXJmYWNlIF9V
SUNvbnRleHRNZW51U3R5bGUgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogQHByb3BlcnR5IChub25h
dG9taWMpIF9VSUNvbnRleHRNZW51TGF5b3V0IHByZWZlcnJlZExheW91dDsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljKSBVSUVkZ2VJbnNldHMgcHJlZmVycmVkRWRnZUluc2V0czsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIGhhc0ludGVyYWN0aXZlUHJldmlldzsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcpIE5TQXJyYXkgKnByZWZlcnJlZEJhY2tncm91bmRFZmZlY3RzOwogKyAoaW5z
dGFuY2V0eXBlKWRlZmF1bHRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAppbmRl
eCAyN2U5OTEwZTU5NjZmYTNhNjcwNzY0MDEyZDU5NzAzMzc5Nzk2Zjg3Li5lODI1YTkwM2FhZTE1
OGZlZTMzMGRhOWEyZDA5MDRhZjMwY2NjZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lP
Uy5oCkBAIC01Myw2ICs1Myw3IEBACiAtIChCT09MKXNlbGVjdEZvcm1BY2Nlc3NvcnlIYXNDaGVj
a2VkSXRlbUF0Um93Oihsb25nKXJvd0luZGV4OwogLSAodm9pZClzZXRTZWxlY3RlZENvbG9yRm9y
Q29sb3JQaWNrZXI6KFVJQ29sb3IgKiljb2xvcjsKIC0gKHZvaWQpX3NlbGVjdERhdGFMaXN0T3B0
aW9uOihpbnQpb3B0aW9uSW5kZXg7CistIChCT09MKV9pc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rp
b25zOwogCiAtIChCT09MKV9tYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdDooQ0dSZWN0
KXJlY3Q7CiAtICh2b2lkKV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdCly
ZWN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PF9XS1RleHRJbnB1dENvbnRl
eHQgKj4gKikpY29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5kZXggODcyYjBiMTI1YmYw
N2JkNWY2NjQ5NTQyODBlOTc3NGViZTdmNjNlYy4uMmE3MWQ5N2FlYTY4Y2FhNWMyNzg0YTNmMDAx
Njc5NTZiZWJjMGE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtMTc5LDYgKzE3OSwxNSBAQAogI2VuZGlm
CiB9CiAKKy0gKEJPT0wpX2lzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMKK3sKKyNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICByZXR1cm4gW19jb250ZW50VmlldyBpc1Nob3dpbmdE
YXRhTGlzdFN1Z2dlc3Rpb25zXTsKKyNlbHNlCisgICAgcmV0dXJuIE5POworI2VuZGlmCit9CisK
IC0gKE5TU3RyaW5nICopdGV4dENvbnRlbnRUeXBlRm9yVGVzdGluZwogewogICAgIHJldHVybiBb
X2NvbnRlbnRWaWV3IHRleHRDb250ZW50VHlwZUZvclRlc3RpbmddOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4
IDljNWJiNDY2Mzc4NmZmODljMjExZjdmZDdlNjBlNzZhZWI3NDcwM2YuLmVkNmFiZTFlNmFhZjI5
ZDM1MDFhM2Q1YTU2M2RiMTJkN2JhNmVjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTM3OCw2ICszNzgs
OCBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIDogYm9vbCB7CiAKICAg
ICBSZXRhaW5QdHI8V0tLZXlib2FyZFNjcm9sbFZpZXdBbmltYXRvcj4gX2tleWJvYXJkU2Nyb2xs
aW5nQW5pbWF0b3I7CiAKKyAgICBWZWN0b3I8QmxvY2tQdHI8dm9pZCgpPj4gX2FjdGlvbnNUb1Bl
cmZvcm1BZnRlckVkaXRvclN0YXRlVXBkYXRlOworCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCiAgICAgUmV0YWluUHRyPFVJVmlldyA8V0tGb3JtQ29udHJvbD4+IF9kYXRhTGlzdFRleHRT
dWdnZXN0aW9uc0lucHV0VmlldzsKICAgICBSZXRhaW5QdHI8TlNBcnJheTxVSVRleHRTdWdnZXN0
aW9uICo+PiBfZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnM7CkBAIC02NDIsNiArNjQ0LDggQEAgRk9S
X0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25V
cGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24p
KWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
KXJlcXVlc3Q7CiAtIChCT09MKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOihX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CiAKKy0gKHZvaWQp
ZG9BZnRlckVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1c2luZ0VsZW1lbnQ6KGRpc3BhdGNoX2Js
b2NrX3QpYmxvY2s7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogLSAodm9pZClfZGlkQ2hh
bmdlRHJhZ0ludGVyYWN0aW9uUG9saWN5OwogLSAodm9pZClfZGlkUGVyZm9ybURyYWdPcGVyYXRp
b246KEJPT0wpaGFuZGxlZDsKQEAgLTY3OCw2ICs2ODIsOCBAQCBGT1JfRUFDSF9QUklWQVRFX1dL
Q09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9W
SUVXKQogLSAodm9pZClzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZW5h
YmxlZDsKIAogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorLSAoVUlWaWV3ICopdGV4dEVmZmVjdHNX
aW5kb3c7CisKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopX2NyZWF0ZVRhcmdldGVkQ29udGV4dE1l
bnVIaW50UHJldmlld0ZvckZvY3VzZWRFbGVtZW50OwogLSAoVUlUYXJnZXRlZFByZXZpZXcgKilf
Y3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRQcmV2aWV3SWZQb3NzaWJsZTsKIC0gKHZvaWQp
X3JlbW92ZUNvbnRleHRNZW51Vmlld0lmUG9zc2libGU7CkBAIC03MzIsNiArNzM4LDggQEAgRk9S
X0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OX0ZPUl9XRUJfVklFVykKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIC0gKHZv
aWQpX3NlbGVjdERhdGFMaXN0T3B0aW9uOihOU0ludGVnZXIpb3B0aW9uSW5kZXg7CiAtICh2b2lk
KV9zZXREYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbDooV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbCAqKWNvbnRyb2w7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBp
c1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNTdHJpbmcgKnRleHRDb250ZW50VHlwZUZvclRlc3Rpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCAyNjJlODYwOTllNjBkYWZmM2FjM2MzNzkyYjFjNDMyNzViNDU4YmEwLi4z
ZjAxN2RjNTIwNTM1YWFkYTI2NjU1YzE0NmNmZTA5NDRjZTg5OTQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTY0NjEsNiArNjQ2MSwxNiBAQCBzdGF0aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRlbU9yaWdp
bnNNYXRjaE9yaWdpbihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIGNvbnN0CiAgICAgW1VJTWVu
dUNvbnRyb2xsZXIuc2hhcmVkTWVudUNvbnRyb2xsZXIgc2hvd01lbnVGcm9tVmlldzpzZWxmIHJl
Y3Q6bWVudUNvbnRyb2xsZXJSZWN0XTsKIH0KIAorLSAodm9pZClkb0FmdGVyRWRpdG9yU3RhdGVV
cGRhdGVBZnRlckZvY3VzaW5nRWxlbWVudDooZGlzcGF0Y2hfYmxvY2tfdClibG9jaworeworICAg
IGlmICghX3BhZ2UtPndhaXRpbmdGb3JQb3N0TGF5b3V0RWRpdG9yU3RhdGVVcGRhdGVBZnRlckZv
Y3VzaW5nRWxlbWVudCgpKSB7CisgICAgICAgIGJsb2NrKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyRWRpdG9yU3RhdGVVcGRhdGUuYXBwZW5k
KG1ha2VCbG9ja1B0cihibG9jaykpOworfQorCiAtICh2b2lkKV9kaWRVcGRhdGVFZGl0b3JTdGF0
ZQogewogICAgIFtzZWxmIF91cGRhdGVJbml0aWFsV3JpdGluZ0RpcmVjdGlvbklmTmVjZXNzYXJ5
XTsKQEAgLTY0NzEsNiArNjQ4MSw5IEBAIHN0YXRpYyBCT09MIGFsbFBhc3RlYm9hcmRJdGVtT3Jp
Z2luc01hdGNoT3JpZ2luKFVJUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgY29uc3QKICAgICAgICAg
W3NlbGYgX3pvb21Ub1JldmVhbEZvY3VzZWRFbGVtZW50XTsKIAogICAgIF90cmVhdEFzQ29udGVu
dEVkaXRhYmxlVW50aWxOZXh0RWRpdG9yU3RhdGVVcGRhdGUgPSBOTzsKKworICAgIGZvciAoYXV0
byBibG9jayA6IHN0ZDo6ZXhjaGFuZ2UoX2FjdGlvbnNUb1BlcmZvcm1BZnRlckVkaXRvclN0YXRl
VXBkYXRlLCB7IH0pKQorICAgICAgICBibG9jaygpOwogfQogCiAtICh2b2lkKV91cGRhdGVJbml0
aWFsV3JpdGluZ0RpcmVjdGlvbklmTmVjZXNzYXJ5CkBAIC05Nzk4LDYgKzk4MTEsMTEgQEAgc3Rh
dGljIFJldGFpblB0cjxOU0l0ZW1Qcm92aWRlcj4gY3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdl
YktpdDo6V2ViUGFnZVByb3h5JgogewogICAgIF9kYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbCA9
IGNvbnRyb2w7CiB9CisKKy0gKEJPT0wpaXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9ucworewor
ICAgIHJldHVybiBbX2RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sLmdldEF1dG9yZWxlYXNlZCgp
IGlzU2hvd2luZ1N1Z2dlc3Rpb25zXTsKK30KICNlbmRpZgogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duSU9TLmgKaW5kZXggYWZhNjFhNmE4MjY2OTg4OWYyZTMzNDEyZDRhNTE0OTFhN2Iz
NDMxMS4uMzU3NTYyNjhlYzYzNTRmYjU5MjRhNTFjY2M0MzcyZmViNmE1ZDM3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bklPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd25JT1MuaApAQCAtMzYsMTAgKzM2LDE0IEBAIE9CSkNfQ0xBU1MgV0tD
b250ZW50VmlldzsKIEBlbmQKIAogQGludGVyZmFjZSBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250
cm9sIDogTlNPYmplY3QKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlz
U2hvd2luZ1N1Z2dlc3Rpb25zOworCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJbmZvcm1hdGlv
bjooV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24mJilpbmZvcm1hdGlvbiBp
blZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3OwogLSAodm9pZCl1cGRhdGVXaXRoSW5mb3JtYXRp
b246KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uJiYpaW5mb3JtYXRpb247
CiAtICh2b2lkKWRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6KE5TSW50ZWdlcilpbmRleDsKIC0gKHZv
aWQpaW52YWxpZGF0ZTsKKwogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0
aW9uc0Ryb3Bkb3duSU9TLm1tCmluZGV4IDg0Nzc4MzczM2U4NmViM2VjZDIxN2M3OWJiNzNiYTFh
MTE1N2NkZDIuLmZlYjMxODUzZjk0NzRlMDA3NTc3YTI0ODNkM2FkMDlmMzRiNjE3NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAi
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgiCiAjaW1wb3J0ICJXS0Zvcm1QZXJpcGhlcmFsLmgi
CiAjaW1wb3J0ICJXS0Zvcm1Qb3BvdmVyLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAKIHN0YXRpYyBjb25zdCBDR0Zs
b2F0IG1heFZpc2libGVTdWdnZXN0aW9ucyA9IDU7CkBAIC00NCw2ICs0NSw3IEBAIHN0YXRpYyBO
U1N0cmluZyAqIGNvbnN0IHN1Z2dlc3Rpb25DZWxsUmV1c2VJZGVudGlmaWVyID0gQCJXS0RhdGFM
aXN0U3VnZ2VzdGlvbkNlCiBAaW50ZXJmYWNlIFdLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRyb2wg
KCkKIAogQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIFdLQ29udGVudFZpZXcgKnZpZXc7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlKSBCT09MIGlzU2hvd2luZ1N1Z2dlc3Rpb25z
OwogCiAtICh2b2lkKXNob3dTdWdnZXN0aW9uc0Ryb3Bkb3duOihXZWJLaXQ6OldlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bklPUyYpZHJvcGRvd24gYWN0aXZhdGlvblR5cGU6KFdlYkNvcmU6
OkRhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2YXRpb25UeXBlOwogCkBAIC03
MSw3ICs3Myw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHN1Z2dlc3Rpb25DZWxsUmV1c2VJ
ZGVudGlmaWVyID0gQCJXS0RhdGFMaXN0U3VnZ2VzdGlvbkNlCiBAZW5kCiAKICNpZiBFTkFCTEUo
SU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQotQGludGVyZmFjZSBXS0RhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93biA6IFdLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRyb2wgPFVJUG9wb3ZlclByZXNl
bnRhdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd24gOiBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sIDxVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb25EZWxlZ2F0ZT4KIEBlbmQKICNlbmRpZgogCkBAIC0zOTcsOCArMzk5LDEwIEBA
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI3ByYWdtYSBtYXJrIC0gV0tEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24KIAogQGltcGxlbWVudGF0aW9uIFdLRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duIHsKLSAgICBSZXRhaW5QdHI8V0tEYXRhTGlzdFN1Z2dlc3Rpb25zVmll
d0NvbnRyb2xsZXI+IF9zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyOwotICAgIFJldGFpblB0cjxO
U09iamVjdD4gX2tleWJvYXJkRGlzbWlzc2FsT2JzZXJ2ZXI7CisjaWYgVVNFKFVJQ09OVEVYVE1F
TlUpCisgICAgUmV0YWluUHRyPE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPj4gX3N1Z2dlc3Rpb25z
TWVudUVsZW1lbnRzOworICAgIFJldGFpblB0cjxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24+IF9z
dWdnZXN0aW9uc0NvbnRleHRNZW51SW50ZXJhY3Rpb247CisjZW5kaWYKIH0KIAogLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoSW5mb3JtYXRpb246KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvbklu
Zm9ybWF0aW9uJiYpaW5mb3JtYXRpb24gaW5WaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldwpAQCAt
NDI1LDIzICs0MjksMTUgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0g
KHZvaWQpaW52YWxpZGF0ZQogewotICAgIFtbX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgcHJl
c2VudGluZ1ZpZXdDb250cm9sbGVyXSBkaXNtaXNzVmlld0NvbnRyb2xsZXJBbmltYXRlZDpOTyBj
b21wbGV0aW9uOm5pbF07Ci0gICAgW19zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIHNldENvbnRy
b2w6bmlsXTsKKyAgICBbc2VsZiBfcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CiB9CiAK
IC0gKHZvaWQpZGlkU2VsZWN0T3B0aW9uQXRJbmRleDooTlNJbnRlZ2VyKWluZGV4CiB7Ci0gICAg
W1tfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlciBwcmVzZW50aW5nVmlld0NvbnRyb2xsZXJdIGRp
c21pc3NWaWV3Q29udHJvbGxlckFuaW1hdGVkOk5PIGNvbXBsZXRpb246bmlsXTsKICAgICBbc2Vs
Zi52aWV3IHVwZGF0ZUZvY3VzZWRFbGVtZW50Rm9jdXNlZFdpdGhEYXRhTGlzdERyb3Bkb3duOk5P
XTsKICAgICBbc3VwZXIgZGlkU2VsZWN0T3B0aW9uQXRJbmRleDppbmRleF07CiB9CiAKLS0gKHZv
aWQpZGVhbGxvYwotewotICAgIFtzZWxmIF9yZW1vdmVLZXlib2FyZERpc21pc3NhbE9ic2VydmVy
XTsKLSAgICBbc3VwZXIgZGVhbGxvY107Ci19Ci0KIC0gKHZvaWQpX2Rpc3BsYXlXaXRoQWN0aXZh
dGlvblR5cGU6KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2
YXRpb25UeXBlCiB7CiAgICAgaWYgKGFjdGl2YXRpb25UeXBlID09IFdlYkNvcmU6OkRhdGFMaXN0
U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlOjpJbmRpY2F0b3JDbGlja2VkKQpAQCAtNDU5LDc0ICs0
NTUsMTQzIEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAtICh2b2lkKV9z
aG93U3VnZ2VzdGlvbnMKIHsKLSAgICBpZiAoIV9zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyKSB7
Ci0gICAgICAgIF9zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRGF0YUxp
c3RTdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFN0eWxlOlVJVGFibGVW
aWV3U3R5bGVQbGFpbl0pOwotICAgICAgICBbX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgc2V0
TW9kYWxQcmVzZW50YXRpb25TdHlsZTpVSU1vZGFsUHJlc2VudGF0aW9uUG9wb3Zlcl07Ci0gICAg
ICAgIFtbX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgdGFibGVWaWV3XSBzZXRTZXBhcmF0b3JJ
bnNldDpVSUVkZ2VJbnNldHNaZXJvXTsKLSAgICAgICAgW19zdWdnZXN0aW9uc1ZpZXdDb250cm9s
bGVyIHNldENvbnRyb2w6c2VsZl07Ci0gICAgfQorI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAg
IFtzZWxmIF91cGRhdGVTdWdnZXN0aW9uc01lbnVFbGVtZW50c107CiAKLSAgICBbX3N1Z2dlc3Rp
b25zVmlld0NvbnRyb2xsZXIgcmVsb2FkRGF0YV07CisgICAgaWYgKCFfc3VnZ2VzdGlvbnNDb250
ZXh0TWVudUludGVyYWN0aW9uKSB7CisgICAgICAgIF9zdWdnZXN0aW9uc0NvbnRleHRNZW51SW50
ZXJhY3Rpb24gPSBhZG9wdE5TKFtbVUlDb250ZXh0TWVudUludGVyYWN0aW9uIGFsbG9jXSBpbml0
V2l0aERlbGVnYXRlOnNlbGZdKTsKKyAgICAgICAgW3NlbGYudmlldyBhZGRJbnRlcmFjdGlvbjpf
c3VnZ2VzdGlvbnNDb250ZXh0TWVudUludGVyYWN0aW9uLmdldCgpXTsKIAotICAgIGlmIChbX3N1
Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgaXNCZWluZ1ByZXNlbnRlZF0gfHwgW1tfc3VnZ2VzdGlv
bnNWaWV3Q29udHJvbGxlciB2aWV3SWZMb2FkZWRdIHdpbmRvd10gIT0gbmlsKQotICAgICAgICBy
ZXR1cm47CisgICAgICAgIFtzZWxmLnZpZXcgZG9BZnRlckVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJG
b2N1c2luZ0VsZW1lbnQ6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd24+KHNlbGYpXSB7CisgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFr
U2VsZi5nZXQoKTsKKyAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICBVSVBvcG92ZXJQcmVzZW50YXRpb25Db250cm9sbGVyICpwcmVzZW50
YXRpb25Db250cm9sbGVyID0gW19zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIHBvcG92ZXJQcmVz
ZW50YXRpb25Db250cm9sbGVyXTsKLSAgICBwcmVzZW50YXRpb25Db250cm9sbGVyLnNvdXJjZVZp
ZXcgPSBzZWxmLnZpZXc7Ci0gICAgcHJlc2VudGF0aW9uQ29udHJvbGxlci5zb3VyY2VSZWN0ID0g
Q0dSZWN0SW50ZWdyYWwoc2VsZi52aWV3LmZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW50ZXJh
Y3Rpb25SZWN0KTsKLSAgICBwcmVzZW50YXRpb25Db250cm9sbGVyLnBlcm1pdHRlZEFycm93RGly
ZWN0aW9ucyA9IFVJUG9wb3ZlckFycm93RGlyZWN0aW9uVXA7Ci0gICAgcHJlc2VudGF0aW9uQ29u
dHJvbGxlci5kZWxlZ2F0ZSA9IHNlbGY7Ci0gICAgW3ByZXNlbnRhdGlvbkNvbnRyb2xsZXIgX3Nl
dFNob3VsZEhpZGVBcnJvdzpZRVNdOwotICAgIFtwcmVzZW50YXRpb25Db250cm9sbGVyIF9zZXRQ
cmVmZXJyZWRIb3Jpem9udGFsQWxpZ25tZW50Ol9VSVBvcG92ZXJQcmVzZW50YXRpb25Ib3Jpem9u
dGFsQWxpZ25tZW50TGVhZGluZ107CisgICAgICAgICAgICBbc3Ryb25nU2VsZi0+X3N1Z2dlc3Rp
b25zQ29udGV4dE1lbnVJbnRlcmFjdGlvbiBfcHJlc2VudE1lbnVBdExvY2F0aW9uOltbc3Ryb25n
U2VsZiB2aWV3XSBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbl1dOworICAgICAgICB9XTsKKyAgICB9
IGVsc2UgeworICAgICAgICBbX3N1Z2dlc3Rpb25zQ29udGV4dE1lbnVJbnRlcmFjdGlvbiB1cGRh
dGVWaXNpYmxlTWVudVdpdGhCbG9jazpbc2VsZl0oVUlNZW51ICp2aXNpYmxlTWVudSkgLT4gVUlN
ZW51ICogeworICAgICAgICAgICAgcmV0dXJuIFt2aXNpYmxlTWVudSBtZW51QnlSZXBsYWNpbmdD
aGlsZHJlbjpzZWxmLT5fc3VnZ2VzdGlvbnNNZW51RWxlbWVudHMuZ2V0KCldOworICAgICAgICB9
XTsKKyAgICB9CisjZW5kaWYKK30KKworLSAodm9pZClfdXBkYXRlVGV4dFN1Z2dlc3Rpb25zCit7
CisgICAgc2VsZi52aWV3LmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zID0gc2VsZi50ZXh0U3VnZ2Vz
dGlvbnM7Cit9CiAKLSAgICAvLyBXaGVuIGEgaGFyZHdhcmUga2V5Ym9hcmQgaXMgbm90IHVzZWQs
IHRoZSBzdWdnZXN0aW9ucyBkcm9wZG93biBhbmQgc29mdHdhcmUga2V5Ym9hcmQgY2Fubm90IGJl
Ci0gICAgLy8gZGlzcGxheWVkIGF0IHRoZSBzYW1lIHRpbWUuIFdlIHdhaXQgdW50aWwgdGhlIGtl
eWJvYXJkIGlzIGRpc21pc3NlZCBwcmlvciB0byBwcmVzZW50aW5nIHRoZQotICAgIC8vIHN1Z2dl
c3Rpb25zLCB0byBhdm9pZCB0aGUga2V5Ym9hcmQncyBkaXNtaXNzYWwgcmVwb3NpdGlvbmluZyB0
aGUgZHJvcGRvd24uCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKLSAgICBpZiAoW1VJS2V5Ym9h
cmQgaXNPblNjcmVlbl0gJiYgIVtVSUtleWJvYXJkIGlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZV0p
IHsKLSAgICAgICAgX2tleWJvYXJkRGlzbWlzc2FsT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUtleWJvYXJkRGlkSGlk
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOlt3ZWFrU2VsZiA9
IFdlYWtPYmpDUHRyPFdLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPihzZWxmKV0gKE5TTm90
aWZpY2F0aW9uICopIHsKKy0gKHZvaWQpX3VwZGF0ZVN1Z2dlc3Rpb25zTWVudUVsZW1lbnRzCit7
CisgICAgTlNNdXRhYmxlQXJyYXkgKnN1Z2dlc3Rpb25zID0gW05TTXV0YWJsZUFycmF5IGFycmF5
V2l0aENhcGFjaXR5OnNlbGYuc3VnZ2VzdGlvbnNDb3VudF07CisKKyAgICBmb3IgKE5TSW50ZWdl
ciBpbmRleCA9IDA7IGluZGV4IDwgc2VsZi5zdWdnZXN0aW9uc0NvdW50OyBpbmRleCsrKSB7Cisg
ICAgICAgIFVJQWN0aW9uICpzdWdnZXN0aW9uQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhU
aXRsZTpbc2VsZiBzdWdnZXN0aW9uQXRJbmRleDppbmRleF0gaW1hZ2U6bmlsIGlkZW50aWZpZXI6
bmlsIGhhbmRsZXI6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd24+KHNlbGYpLCBpbmRleF0gKFVJQWN0aW9uICopIHsKICAgICAgICAgICAgIGF1dG8g
c3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwogICAgICAgICAgICAgaWYgKCFzdHJvbmdTZWxm
KQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX3By
ZXNlbnRTdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyXTsKLSAgICAgICAgICAgIFtzdHJvbmdTZWxm
IF9yZW1vdmVLZXlib2FyZERpc21pc3NhbE9ic2VydmVyXTsKKyAgICAgICAgICAgIFtzdHJvbmdT
ZWxmIGRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6aW5kZXhdOwogICAgICAgICB9XTsKLSAgICB9IGVs
c2UKLSAgICAgICAgW3NlbGYgX3ByZXNlbnRTdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyXTsKKwor
ICAgICAgICBbc3VnZ2VzdGlvbnMgYWRkT2JqZWN0OnN1Z2dlc3Rpb25BY3Rpb25dOworICAgIH0K
KworICAgIF9zdWdnZXN0aW9uc01lbnVFbGVtZW50cyA9IGFkb3B0TlMoW3N1Z2dlc3Rpb25zIGNv
cHldKTsKIH0KIAotLSAodm9pZClfcHJlc2VudFN1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIKKy0g
KHZvaWQpX3JlbW92ZUNvbnRleHRNZW51SW50ZXJhY3Rpb24KIHsKLSAgICBVSVZpZXdDb250cm9s
bGVyICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJvbGxlciBfdmlld0Nv
bnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6c2VsZi52aWV3XTsKLSAg
ICBbcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyIHByZXNlbnRWaWV3Q29udHJvbGxlcjpfc3VnZ2Vz
dGlvbnNWaWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpOTyBjb21wbGV0aW9uOm5pbF07Cisg
ICAgaWYgKCFfc3VnZ2VzdGlvbnNDb250ZXh0TWVudUludGVyYWN0aW9uKQorICAgICAgICByZXR1
cm47CisKKyAgICBbc2VsZi52aWV3IHJlbW92ZUludGVyYWN0aW9uOl9zdWdnZXN0aW9uc0NvbnRl
eHRNZW51SW50ZXJhY3Rpb24uZ2V0KCldOworICAgIF9zdWdnZXN0aW9uc0NvbnRleHRNZW51SW50
ZXJhY3Rpb24gPSBuaWw7CisgICAgW3NlbGYudmlldyBfcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQ
b3NzaWJsZV07CisgICAgW3NlbGYudmlldy53ZWJWaWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVd
OwogfQogCi0tICh2b2lkKV91cGRhdGVUZXh0U3VnZ2VzdGlvbnMKKy0gKHZvaWQpX3N1Z2dlc3Rp
b25zTWVudURpZFByZXNlbnQKIHsKLSAgICBzZWxmLnZpZXcuZGF0YUxpc3RUZXh0U3VnZ2VzdGlv
bnMgPSBzZWxmLnRleHRTdWdnZXN0aW9uczsKKyAgICBzZWxmLmlzU2hvd2luZ1N1Z2dlc3Rpb25z
ID0gWUVTOworCisgICAgW3NlbGYudmlldy53ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdOwor
fQorCistICh2b2lkKV9zdWdnZXN0aW9uc01lbnVEaWREaXNtaXNzCit7CisgICAgc2VsZi5pc1No
b3dpbmdTdWdnZXN0aW9ucyA9IE5POworCisgICAgW3NlbGYudmlldyB1cGRhdGVGb2N1c2VkRWxl
bWVudEZvY3VzZWRXaXRoRGF0YUxpc3REcm9wZG93bjpOT107CisgICAgW3NlbGYgX3VwZGF0ZVRl
eHRTdWdnZXN0aW9uc107CisKKyAgICBbc2VsZiBfcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlv
bl07CiB9CiAKLS0gKHZvaWQpX3JlbW92ZUtleWJvYXJkRGlzbWlzc2FsT2JzZXJ2ZXIKKy0gKFVJ
RWRnZUluc2V0cylfcHJlZmVycmVkRWRnZUluc2V0c0ZvclN1Z2dlc3Rpb25zTWVudQogewotICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6X2tl
eWJvYXJkRGlzbWlzc2FsT2JzZXJ2ZXIuZ2V0KCldOwotICAgIF9rZXlib2FyZERpc21pc3NhbE9i
c2VydmVyID0gbmlsOworICAgIENHUmVjdCB3aW5kb3dCb3VuZHMgPSBzZWxmLnZpZXcudGV4dEVm
ZmVjdHNXaW5kb3cuYm91bmRzOworICAgIENHUmVjdCBlbGVtZW50RnJhbWVJbldpbmRvd0Nvb3Jk
aW5hdGVzID0gW3NlbGYudmlldyBjb252ZXJ0UmVjdDpzZWxmLnZpZXcuZm9jdXNlZEVsZW1lbnRJ
bmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3QgdG9WaWV3Om5pbF07CisKKyAgICBpZiAoQ0dSZWN0
R2V0TWlkWShlbGVtZW50RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKSA+IENHUmVjdEdldE1pZFko
d2luZG93Qm91bmRzKSkKKyAgICAgICAgcmV0dXJuIFVJRWRnZUluc2V0c01ha2UoMCwgMCwgQ0dS
ZWN0R2V0TWF4WSh3aW5kb3dCb3VuZHMpIC0gQ0dSZWN0R2V0TWluWShlbGVtZW50RnJhbWVJbldp
bmRvd0Nvb3JkaW5hdGVzKSwgMCk7CisKKyAgICAvLyBVc2UgTWluWSByYXRoZXIgdGhhbiBNYXhZ
IHRvIGFjY291bnQgZm9yIHRoZSBoaW50IHByZXZpZXcuCisgICAgcmV0dXJuIFVJRWRnZUluc2V0
c01ha2UoQ0dSZWN0R2V0TWluWShlbGVtZW50RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKSwgMCwg
MCwgMCk7CiB9CiAKLSNwcmFnbWEgbWFyayBVSVBvcG92ZXJQcmVzZW50YXRpb25Db250cm9sbGVy
RGVsZWdhdGUKKyNwcmFnbWEgbWFyayBVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25EZWxlZ2F0ZQog
Ci0tICh2b2lkKXByZXNlbnRhdGlvbkNvbnRyb2xsZXJEaWREaXNtaXNzOihVSVByZXNlbnRhdGlv
bkNvbnRyb2xsZXIgKilwcmVzZW50YXRpb25Db250cm9sbGVyCistIChVSVRhcmdldGVkUHJldmll
dyAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWlu
dGVyYWN0aW9uIHByZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJ
Q29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogewotICAgIFtzZWxmLnZp
ZXcgdXBkYXRlRm9jdXNlZEVsZW1lbnRGb2N1c2VkV2l0aERhdGFMaXN0RHJvcGRvd246Tk9dOwot
ICAgIFtzZWxmIF91cGRhdGVUZXh0U3VnZ2VzdGlvbnNdOworICAgIHJldHVybiBbc2VsZi52aWV3
IF9jcmVhdGVUYXJnZXRlZENvbnRleHRNZW51SGludFByZXZpZXdGb3JGb2N1c2VkRWxlbWVudF07
Cit9CisKKy0gKF9VSUNvbnRleHRNZW51U3R5bGUgKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjoo
VUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gc3R5bGVGb3JNZW51V2l0aENv
bmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgor
eworICAgIF9VSUNvbnRleHRNZW51U3R5bGUgKnN0eWxlID0gW19VSUNvbnRleHRNZW51U3R5bGUg
ZGVmYXVsdFN0eWxlXTsKKyAgICBzdHlsZS5wcmVmZXJyZWRMYXlvdXQgPSBfVUlDb250ZXh0TWVu
dUxheW91dENvbXBhY3RNZW51OworICAgIHN0eWxlLnByZWZlcnJlZEVkZ2VJbnNldHMgPSBbc2Vs
ZiBfcHJlZmVycmVkRWRnZUluc2V0c0ZvclN1Z2dlc3Rpb25zTWVudV07CisKKyAgICByZXR1cm4g
c3R5bGU7Cit9CisKKy0gKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmln
dXJhdGlvbkZvck1lbnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uCit7CisgICAgVUlDb250
ZXh0TWVudUFjdGlvblByb3ZpZGVyIGFjdGlvbk1lbnVQcm92aWRlciA9IFt3ZWFrU2VsZiA9IFdl
YWtPYmpDUHRyPFdLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPihzZWxmKV0gKE5TQXJyYXk8
VUlNZW51RWxlbWVudCAqPiAqKSAtPiBVSU1lbnUgKiB7CisgICAgICAgIGF1dG8gc3Ryb25nU2Vs
ZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAg
ICByZXR1cm4gbmlsOworCisgICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRoVGl0bGU6QCIi
IGNoaWxkcmVuOnN0cm9uZ1NlbGYtPl9zdWdnZXN0aW9uc01lbnVFbGVtZW50cy5nZXQoKV07Cisg
ICAgfTsKKworICAgIHJldHVybiBbVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gY29uZmlndXJh
dGlvbldpdGhJZGVudGlmaWVyOm5pbCBwcmV2aWV3UHJvdmlkZXI6bmlsIGFjdGlvblByb3ZpZGVy
OmFjdGlvbk1lbnVQcm92aWRlcl07CiB9CiAKLS0gKFVJTW9kYWxQcmVzZW50YXRpb25TdHlsZSlh
ZGFwdGl2ZVByZXNlbnRhdGlvblN0eWxlRm9yUHJlc2VudGF0aW9uQ29udHJvbGxlcjooVUlQcmVz
ZW50YXRpb25Db250cm9sbGVyICopY29udHJvbGxlciB0cmFpdENvbGxlY3Rpb246KFVJVHJhaXRD
b2xsZWN0aW9uICopdHJhaXRDb2xsZWN0aW9uCistICh2b2lkKWNvbnRleHRNZW51SW50ZXJhY3Rp
b246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHdpbGxEaXNwbGF5TWVu
dUZvckNvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJh
dGlvbiBhbmltYXRvcjooaWQgPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbkFuaW1hdGluZz4pYW5p
bWF0b3IKIHsKLSAgICAvLyBGb3JjZXMgYSBwb3BvdmVyIHByZXNlbnRhdGlvbi4KLSAgICByZXR1
cm4gVUlNb2RhbFByZXNlbnRhdGlvbk5vbmU7CisgICAgW2FuaW1hdG9yIGFkZENvbXBsZXRpb246
W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+KHNl
bGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAg
ICBpZiAoc3Ryb25nU2VsZikKKyAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9zdWdnZXN0aW9uc01l
bnVEaWRQcmVzZW50XTsKKyAgICB9XTsKIH0KIAorLSAodm9pZCljb250ZXh0TWVudUludGVyYWN0
aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiB3aWxsRW5kRm9yQ29u
ZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGFu
aW1hdG9yOihpZCA8VUlDb250ZXh0TWVudUludGVyYWN0aW9uQW5pbWF0aW5nPilhbmltYXRvcgor
eworICAgIFthbmltYXRvciBhZGRDb21wbGV0aW9uOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdL
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPihzZWxmKV0geworICAgICAgICBhdXRvIHN0cm9u
Z1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKHN0cm9uZ1NlbGYpCisgICAgICAg
ICAgICBbc3Ryb25nU2VsZiBfc3VnZ2VzdGlvbnNNZW51RGlkRGlzbWlzc107CisgICAgfV07Cit9
CisKKyNlbmRpZiAvLyBVU0UoVUlDT05URVhUTUVOVSkKKwogQGVuZAogCiAjZW5kaWYgLy8gRU5B
QkxFKElPU19GT1JNX0NPTlRST0xfUkVGUkVTSCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MTU3ZGM5MWNkMmMyNTE3MDg1YmYzZjRiMDZhNTQ5
N2I2ZjkyYzBkLi44NmU1MjZmZTBjNjc4NmY2ZGE4NjM3ODY2OWVkNTVjNDhhOTM4YjdlIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMjEtMDQtMDcgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdW0ZDUl0gVXNlIGNvbnRleHQgbWVudXMgZm9yIHRleHQgaW5wdXQgZGF0
YWxpc3QgZHJvcGRvd25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MzUxMzE3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlw
dENvbnRyb2xsZXJJT1M6OmlzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMgY29uc3QpOgorCisg
ICAgICAgIFVzZSB0aGUgZXhwb3NlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSB3ZWJ2aWV3IHRvIGRl
dGVybWluZSB3aGV0aGVyIHRoZQorICAgICAgICBkYXRhbGlzdCBzdWdnZXN0aW9ucyBhcmUgdmlz
aWJsZSwgcmF0aGVyIHRoYW4gdHJhdmVyc2luZyB0aGUgdmlldworICAgICAgICBoaWVyYXJjaHku
CisKIDIwMjEtMDQtMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBBZGQgVSswNTgxIGFuZCBVKzA1ODUgdG8gbGlzdCBvZiBBcm1lbmlhbiBj
aGFyYWN0ZXJzIHRoYXQgbG9vayBsaWtlIExhdGluIGNoYXJhY3RlcnMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQppbmRleCA2ZDM1
YjIyY2JlOTNhNjE3MmFkZTYyOGZjM2JiOWY3NTcyM2EwYjdmLi5iYjRmMTRkOWE5NGU2ZTI3ZDRm
NzcyYzZmZWFlMGIxZTQ4ODI1OWZiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC0xMTE1LDEyICsxMTE1LDggQEAgdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmFjdGl2YXRlRGF0YUxpc3RTdWdnZXN0aW9uKHVuc2ln
bmVkIGluZGV4LCBKU1ZhbHVlUmUKIGJvb2wgVUlTY3JpcHRDb250cm9sbGVySU9TOjppc1Nob3dp
bmdEYXRhTGlzdFN1Z2dlc3Rpb25zKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoSU9TX0ZPUk1fQ09O
VFJPTF9SRUZSRVNIKQotICAgIFVJVmlld0NvbnRyb2xsZXIgKnByZXNlbnRlZFZpZXdDb250cm9s
bGVyID0gW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNl
bnRhdGlvbkZyb21WaWV3OndlYlZpZXcoKV07Ci0gICAgQ2xhc3Mgc3VnZ2VzdGlvbnNWaWV3Q29u
dHJvbGxlckNsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJXS0RhdGFMaXN0U3VnZ2VzdGlvbnNW
aWV3Q29udHJvbGxlciIpOwotICAgIGlmIChbcHJlc2VudGVkVmlld0NvbnRyb2xsZXIgaXNLaW5k
T2ZDbGFzczpzdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyQ2xhc3NdKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSNlbmRpZgotCisgICAgcmV0dXJuIFt3ZWJWaWV3KCkgX2lzU2hvd2luZ0RhdGFMaXN0
U3VnZ2VzdGlvbnNdOworI2Vsc2UKICAgICBDbGFzcyByZW1vdGVLZXlib2FyZFdpbmRvd0NsYXNz
ID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJVSVJlbW90ZUtleWJvYXJkV2luZG93Iik7CiAgICAgQ2xh
c3Mgc3VnZ2VzdGlvbnNQaWNrZXJWaWV3Q2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyhAIldLRGF0
YUxpc3RTdWdnZXN0aW9uc1BpY2tlclZpZXciKTsKICAgICBVSVdpbmRvdyAqcmVtb3RlSW5wdXRI
b3N0aW5nV2luZG93ID0gbmlsOwpAQCAtMTE0MSw2ICsxMTM3LDcgQEAgYm9vbCBVSVNjcmlwdENv
bnRyb2xsZXJJT1M6OmlzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMoKSBjb25zdAogICAgICAg
ICAqc3RvcCA9IFlFUzsKICAgICB9KTsKICAgICByZXR1cm4gZm91bmREYXRhTGlzdFN1Z2dlc3Rp
b25zUGlja2VyVmlldzsKKyNlbmRpZgogfQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6
c2V0U2VsZWN0ZWRDb2xvckZvckNvbG9yUGlja2VyKGRvdWJsZSByZWQsIGRvdWJsZSBncmVlbiwg
ZG91YmxlIGJsdWUpCg==
</data>
<flag name="commit-queue"
          id="445359"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425412</attachid>
            <date>2021-04-07 09:46:31 -0700</date>
            <delta_ts>2021-04-07 10:02:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224287-20210407124630.patch</filename>
            <type>text/plain</type>
            <size>24783</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRhMGVkMTYzYTllMjZmNzY1
MzAyZTk2N2U2ZjBhZDAxNDhjYWMwZDUuLmQ0MGRiNGU1NzEwZDExZDE0ODJhMWE3NDE0NTNhNTQ1
NmMzODE0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMDQtMDcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW0ZDUl0gVXNlIGNv
bnRleHQgbWVudXMgZm9yIHRleHQgaW5wdXQgZGF0YWxpc3QgZHJvcGRvd25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc2MzUxMzE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBjb250ZXh0IG1lbnVzIHJhdGhlciB0aGFuIHBvcG92ZXJzIHRv
IHByZXNlbnQgc3VnZ2VzdGVkIHZhbHVlcyBmb3IKKyAgICAgICAgdGV4dCBpbnB1dHMgd2l0aCBh
biBhc3NvY2lhdGVkIGRhdGFsaXN0IGVsZW1lbnQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmdJT1MuaDoKKworICAgICAgICBFeHBvc2UgX2lzU2hvd2luZ0RhdGFsaXN0
U3VnZ2VzdGlvbnMgZm9yIHRlc3RpbmcuIFByZXZpb3VzbHksIHRoZSB0ZXN0CisgICAgICAgIHJ1
bm5lciB0cmF2ZXJzZWQgdGhlIHZpZXcgaGllcmFyY2h5IGluIG9yZGVyIHRvIGRldGVybWluZSB3
aGV0aGVyIHRoZQorICAgICAgICBzdWdnZXN0aW9ucyB3ZXJlIHZpc2libGUuIEhvd2V2ZXIsIHRo
YXQgYXBwcm9hY2ggaXMgbm90IHJlbGlhYmxlIHNpbmNlCisgICAgICAgIHdlIG5vIGxvbmdlciBv
d24gdGhlIHByZXNlbnRlZCB2aWV3LCBhbmQgVUlLaXQgY291bGQgY2hhbmdlIHRoZQorICAgICAg
ICBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIGNvbnRleHQgbWVudXMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2lzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnNdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGRvQWZ0ZXJFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50Ol0pOgorCisgICAg
ICAgIEFkZCBhIG1lY2hhbmlzbSB0byBwZXJmb3JtIGFjdGlvbnMgYWZ0ZXIgYW4gZWRpdG9yIHN0
YXRlIHVwZGF0ZSB3aGVuCisgICAgICAgIGZvY3VzaW5nIGFuIGVsZW1lbnQuIElmIGFuIHVwZGF0
ZSBpcyBub3QgZXhwZWN0ZWQsIHJ1biB0aGUgYmxvY2sKKyAgICAgICAgaW1tZWRpYXRlbHkuCisK
KyAgICAgICAgU2VlIGJlbG93IGZvciBkZXRhaWxzIG9uIHdoeSB0aGlzIGlzIG5lY2Vzc2FyeS4K
KworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRVcGRhdGVFZGl0b3JTdGF0ZV0pOgorCisg
ICAgICAgIFJ1biBhbnkgcGVuZGluZyBibG9ja3MgdGhhdCB3ZXJlIGF3YWl0aW5nIGFuIGVkaXRv
ciBzdGF0ZSB1cGRhdGUuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpc1Nob3dpbmdEYXRh
TGlzdFN1Z2dlc3Rpb25zXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd25JT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbToKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd24gaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93biBkaWRTZWxlY3RPcHRpb25BdEluZGV4Ol0pOgorICAgICAgICAoLVtXS0Rh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBfc2hvd1N1Z2dlc3Rpb25zXSk6CisKKyAgICAgICAg
UHJlc2VudCBhIGNvbnRleHQgbWVudSBkaXNwbGF5aW5nIHRoZSBzdWdnZXN0aW9ucyBpZiBvbmUg
aXMgbm90IGFscmVhZHkKKyAgICAgICAgcHJlc2VudGVkLgorCisgICAgICAgIE5vdGUgdGhhdCBm
b2N1c2luZyB0ZXh0IGZpZWxkcyBjYW4gcmVzdWx0IGluIGF1dG9tYXRpYyB6b29taW5nIG9mIHRo
ZQorICAgICAgICB3ZWJ2aWV3LiBUaGlzIHpvb21pbmcgb2NjdXJzIGFmdGVyIGFuIGVkaXRvciBz
dGF0ZSB1cGRhdGUgZm9yIGZvY3VzZWQKKyAgICAgICAgZWxlbWVudHMuIFRoZSBwcmVzZW50YXRp
b24gb2YgdGhlIGNvbnRleHQgbWVudSBpcyBkZWZlcnJlZCB0byBydW4KKyAgICAgICAgYWZ0ZXIg
YW4gZWRpdG9yIHN0YXRlIHVwZGF0ZSB0byBlbnN1cmUgYW55IHpvb21pbmcgb2NjdXJzIGJlZm9y
ZQorICAgICAgICBzaG93aW5nIHRoZSBtZW51LiBXaXRob3V0IHRoaXMgZGVmZXJyZWQgcHJlc2Vu
dGF0aW9uIG1lY2hhbmlzbSwgdGhlCisgICAgICAgIGNvbnRleHQgbWVudSBjYW4gYmUgcHJlc2Vu
dGVkIGJlZm9yZSB0aGUgc3RhdGUgdXBkYXRlLCBwYXJ0aWFsbHkKKyAgICAgICAgb2JzY3VyaW5n
IHRoZSB3ZWJ2aWV3IGFuZCByZXN1bHRpbmcgaW4gYW4gaW5jb3JyZWN0IHpvb20gb25jZSB0aGUK
KyAgICAgICAgdXBkYXRlIG9jY3Vycy4KKworICAgICAgICBJZiBhIG1lbnUgaXMgYWxyZWFkeSBw
cmVzZW50ZWQsIHVzZSBgdXBkYXRlVmlzaWJsZU1lbnVXaXRoQmxvY2s6YCB0bworICAgICAgICB1
cGRhdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSBtZW51LgorCisgICAgICAgICgtW1dLRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duIF91cGRhdGVUZXh0U3VnZ2VzdGlvbnNdKToKKyAgICAgICAgKC1b
V0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gX3VwZGF0ZVN1Z2dlc3Rpb25zTWVudUVsZW1l
bnRzXSk6CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9yZW1vdmVD
b250ZXh0TWVudUludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duIF9zdWdnZXN0aW9uc01lbnVEaWRQcmVzZW50XSk6CisgICAgICAgICgtW1dLRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9zdWdnZXN0aW9uc01lbnVEaWREaXNtaXNzXSk6Cisg
ICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9wcmVmZXJyZWRFZGdlSW5z
ZXRzRm9yU3VnZ2VzdGlvbnNNZW51XSk6CisKKyAgICAgICAgQnkgZGVmYXVsdCwgY29udGV4dCBt
ZW51cyBjYW4gb2JzY3VyZSB0aGUgcHJlc2VudGluZyBlbGVtZW50IGlmIHRoZXJlCisgICAgICAg
IGFyZSB0b28gbWFueSBvcHRpb25zLiBJbnNldCB0aGUgbWVudSBzbyB0aGF0IGl0IGRvZXMgbm90
IG92ZXJsYXAgdGhlCisgICAgICAgIHRleHQgZmllbGQuIFByZXNlbnQgdGhlIG1lbnUgYWJvdmUg
dGhlIHRleHQgZmllbGQgaWYgdGhlcmUgaXMgbGVzcworICAgICAgICBzcGFjZSB1bmRlcm5lYXRo
IHRoZSBmaWVsZC4KKworICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBj
b250ZXh0TWVudUludGVyYWN0aW9uOnByZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZp
Z3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9j
b250ZXh0TWVudUludGVyYWN0aW9uOnN0eWxlRm9yTWVudVdpdGhDb25maWd1cmF0aW9uOl0pOgor
ICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBjb250ZXh0TWVudUludGVy
YWN0aW9uOmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpdKToKKyAgICAgICAgKC1bV0tE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gY29udGV4dE1lbnVJbnRlcmFjdGlvbjp3aWxsRGlz
cGxheU1lbnVGb3JDb25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorICAgICAgICAoLVtXS0RhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93biBjb250ZXh0TWVudUludGVyYWN0aW9uOndpbGxFbmRGb3JD
b25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorCiAyMDIxLTA0LTA2ICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhZGRpdGlvbmFsIHBhZ2UgbG9hZCBk
aWFnbm9zdGljIGxvZ2dpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
LmgKaW5kZXggODg1ZDk0MTZmYWZmZGY0ZDg5Mjk1YTg0YTI0ZWM1MDJhZjlhYjYxMy4uNzI2ZTcz
NTMwY2EwNmViMDNmOTU0NzVlNzQwMmQ5NDkyMjI2MTM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTEyMTIsNiArMTIxMiw3IEBAIHR5cGVkZWYgTlNf
RU5VTShOU1VJbnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewogCiBAaW50ZXJmYWNlIF9V
SUNvbnRleHRNZW51U3R5bGUgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogQHByb3BlcnR5IChub25h
dG9taWMpIF9VSUNvbnRleHRNZW51TGF5b3V0IHByZWZlcnJlZExheW91dDsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljKSBVSUVkZ2VJbnNldHMgcHJlZmVycmVkRWRnZUluc2V0czsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIGhhc0ludGVyYWN0aXZlUHJldmlldzsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcpIE5TQXJyYXkgKnByZWZlcnJlZEJhY2tncm91bmRFZmZlY3RzOwogKyAoaW5z
dGFuY2V0eXBlKWRlZmF1bHRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAppbmRl
eCAyN2U5OTEwZTU5NjZmYTNhNjcwNzY0MDEyZDU5NzAzMzc5Nzk2Zjg3Li5lODI1YTkwM2FhZTE1
OGZlZTMzMGRhOWEyZDA5MDRhZjMwY2NjZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lP
Uy5oCkBAIC01Myw2ICs1Myw3IEBACiAtIChCT09MKXNlbGVjdEZvcm1BY2Nlc3NvcnlIYXNDaGVj
a2VkSXRlbUF0Um93Oihsb25nKXJvd0luZGV4OwogLSAodm9pZClzZXRTZWxlY3RlZENvbG9yRm9y
Q29sb3JQaWNrZXI6KFVJQ29sb3IgKiljb2xvcjsKIC0gKHZvaWQpX3NlbGVjdERhdGFMaXN0T3B0
aW9uOihpbnQpb3B0aW9uSW5kZXg7CistIChCT09MKV9pc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rp
b25zOwogCiAtIChCT09MKV9tYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdDooQ0dSZWN0
KXJlY3Q7CiAtICh2b2lkKV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdCly
ZWN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PF9XS1RleHRJbnB1dENvbnRl
eHQgKj4gKikpY29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5kZXggODcyYjBiMTI1YmYw
N2JkNWY2NjQ5NTQyODBlOTc3NGViZTdmNjNlYy4uMmE3MWQ5N2FlYTY4Y2FhNWMyNzg0YTNmMDAx
Njc5NTZiZWJjMGE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtMTc5LDYgKzE3OSwxNSBAQAogI2VuZGlm
CiB9CiAKKy0gKEJPT0wpX2lzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMKK3sKKyNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICByZXR1cm4gW19jb250ZW50VmlldyBpc1Nob3dpbmdE
YXRhTGlzdFN1Z2dlc3Rpb25zXTsKKyNlbHNlCisgICAgcmV0dXJuIE5POworI2VuZGlmCit9CisK
IC0gKE5TU3RyaW5nICopdGV4dENvbnRlbnRUeXBlRm9yVGVzdGluZwogewogICAgIHJldHVybiBb
X2NvbnRlbnRWaWV3IHRleHRDb250ZW50VHlwZUZvclRlc3RpbmddOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4
IDljNWJiNDY2Mzc4NmZmODljMjExZjdmZDdlNjBlNzZhZWI3NDcwM2YuLmVkNmFiZTFlNmFhZjI5
ZDM1MDFhM2Q1YTU2M2RiMTJkN2JhNmVjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTM3OCw2ICszNzgs
OCBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIDogYm9vbCB7CiAKICAg
ICBSZXRhaW5QdHI8V0tLZXlib2FyZFNjcm9sbFZpZXdBbmltYXRvcj4gX2tleWJvYXJkU2Nyb2xs
aW5nQW5pbWF0b3I7CiAKKyAgICBWZWN0b3I8QmxvY2tQdHI8dm9pZCgpPj4gX2FjdGlvbnNUb1Bl
cmZvcm1BZnRlckVkaXRvclN0YXRlVXBkYXRlOworCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCiAgICAgUmV0YWluUHRyPFVJVmlldyA8V0tGb3JtQ29udHJvbD4+IF9kYXRhTGlzdFRleHRT
dWdnZXN0aW9uc0lucHV0VmlldzsKICAgICBSZXRhaW5QdHI8TlNBcnJheTxVSVRleHRTdWdnZXN0
aW9uICo+PiBfZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnM7CkBAIC02NDIsNiArNjQ0LDggQEAgRk9S
X0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25V
cGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24p
KWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
KXJlcXVlc3Q7CiAtIChCT09MKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOihX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CiAKKy0gKHZvaWQp
ZG9BZnRlckVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1c2luZ0VsZW1lbnQ6KGRpc3BhdGNoX2Js
b2NrX3QpYmxvY2s7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogLSAodm9pZClfZGlkQ2hh
bmdlRHJhZ0ludGVyYWN0aW9uUG9saWN5OwogLSAodm9pZClfZGlkUGVyZm9ybURyYWdPcGVyYXRp
b246KEJPT0wpaGFuZGxlZDsKQEAgLTY3OCw2ICs2ODIsOCBAQCBGT1JfRUFDSF9QUklWQVRFX1dL
Q09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9W
SUVXKQogLSAodm9pZClzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZW5h
YmxlZDsKIAogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorLSAoVUlWaWV3ICopdGV4dEVmZmVjdHNX
aW5kb3c7CisKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopX2NyZWF0ZVRhcmdldGVkQ29udGV4dE1l
bnVIaW50UHJldmlld0ZvckZvY3VzZWRFbGVtZW50OwogLSAoVUlUYXJnZXRlZFByZXZpZXcgKilf
Y3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRQcmV2aWV3SWZQb3NzaWJsZTsKIC0gKHZvaWQp
X3JlbW92ZUNvbnRleHRNZW51Vmlld0lmUG9zc2libGU7CkBAIC03MzIsNiArNzM4LDggQEAgRk9S
X0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OX0ZPUl9XRUJfVklFVykKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIC0gKHZv
aWQpX3NlbGVjdERhdGFMaXN0T3B0aW9uOihOU0ludGVnZXIpb3B0aW9uSW5kZXg7CiAtICh2b2lk
KV9zZXREYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbDooV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbCAqKWNvbnRyb2w7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBp
c1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNTdHJpbmcgKnRleHRDb250ZW50VHlwZUZvclRlc3Rpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCAyNjJlODYwOTllNjBkYWZmM2FjM2MzNzkyYjFjNDMyNzViNDU4YmEwLi4z
ZjAxN2RjNTIwNTM1YWFkYTI2NjU1YzE0NmNmZTA5NDRjZTg5OTQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTY0NjEsNiArNjQ2MSwxNiBAQCBzdGF0aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRlbU9yaWdp
bnNNYXRjaE9yaWdpbihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIGNvbnN0CiAgICAgW1VJTWVu
dUNvbnRyb2xsZXIuc2hhcmVkTWVudUNvbnRyb2xsZXIgc2hvd01lbnVGcm9tVmlldzpzZWxmIHJl
Y3Q6bWVudUNvbnRyb2xsZXJSZWN0XTsKIH0KIAorLSAodm9pZClkb0FmdGVyRWRpdG9yU3RhdGVV
cGRhdGVBZnRlckZvY3VzaW5nRWxlbWVudDooZGlzcGF0Y2hfYmxvY2tfdClibG9jaworeworICAg
IGlmICghX3BhZ2UtPndhaXRpbmdGb3JQb3N0TGF5b3V0RWRpdG9yU3RhdGVVcGRhdGVBZnRlckZv
Y3VzaW5nRWxlbWVudCgpKSB7CisgICAgICAgIGJsb2NrKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyRWRpdG9yU3RhdGVVcGRhdGUuYXBwZW5k
KG1ha2VCbG9ja1B0cihibG9jaykpOworfQorCiAtICh2b2lkKV9kaWRVcGRhdGVFZGl0b3JTdGF0
ZQogewogICAgIFtzZWxmIF91cGRhdGVJbml0aWFsV3JpdGluZ0RpcmVjdGlvbklmTmVjZXNzYXJ5
XTsKQEAgLTY0NzEsNiArNjQ4MSw5IEBAIHN0YXRpYyBCT09MIGFsbFBhc3RlYm9hcmRJdGVtT3Jp
Z2luc01hdGNoT3JpZ2luKFVJUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgY29uc3QKICAgICAgICAg
W3NlbGYgX3pvb21Ub1JldmVhbEZvY3VzZWRFbGVtZW50XTsKIAogICAgIF90cmVhdEFzQ29udGVu
dEVkaXRhYmxlVW50aWxOZXh0RWRpdG9yU3RhdGVVcGRhdGUgPSBOTzsKKworICAgIGZvciAoYXV0
byBibG9jayA6IHN0ZDo6ZXhjaGFuZ2UoX2FjdGlvbnNUb1BlcmZvcm1BZnRlckVkaXRvclN0YXRl
VXBkYXRlLCB7IH0pKQorICAgICAgICBibG9jaygpOwogfQogCiAtICh2b2lkKV91cGRhdGVJbml0
aWFsV3JpdGluZ0RpcmVjdGlvbklmTmVjZXNzYXJ5CkBAIC05Nzk4LDYgKzk4MTEsMTEgQEAgc3Rh
dGljIFJldGFpblB0cjxOU0l0ZW1Qcm92aWRlcj4gY3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdl
YktpdDo6V2ViUGFnZVByb3h5JgogewogICAgIF9kYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbCA9
IGNvbnRyb2w7CiB9CisKKy0gKEJPT0wpaXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9ucworewor
ICAgIHJldHVybiBbX2RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sLmdldEF1dG9yZWxlYXNlZCgp
IGlzU2hvd2luZ1N1Z2dlc3Rpb25zXTsKK30KICNlbmRpZgogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duSU9TLmgKaW5kZXggYWZhNjFhNmE4MjY2OTg4OWYyZTMzNDEyZDRhNTE0OTFhN2Iz
NDMxMS4uMzU3NTYyNjhlYzYzNTRmYjU5MjRhNTFjY2M0MzcyZmViNmE1ZDM3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bklPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd25JT1MuaApAQCAtMzYsMTAgKzM2LDE0IEBAIE9CSkNfQ0xBU1MgV0tD
b250ZW50VmlldzsKIEBlbmQKIAogQGludGVyZmFjZSBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250
cm9sIDogTlNPYmplY3QKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlz
U2hvd2luZ1N1Z2dlc3Rpb25zOworCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJbmZvcm1hdGlv
bjooV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24mJilpbmZvcm1hdGlvbiBp
blZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3OwogLSAodm9pZCl1cGRhdGVXaXRoSW5mb3JtYXRp
b246KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uJiYpaW5mb3JtYXRpb247
CiAtICh2b2lkKWRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6KE5TSW50ZWdlcilpbmRleDsKIC0gKHZv
aWQpaW52YWxpZGF0ZTsKKwogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0
aW9uc0Ryb3Bkb3duSU9TLm1tCmluZGV4IDg0Nzc4MzczM2U4NmViM2VjZDIxN2M3OWJiNzNiYTFh
MTE1N2NkZDIuLjZlZGM2NWE4OGJjMzE5M2UwZDcyZmU0M2ZhNjNhYzM2N2ZmMzYzNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAi
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgiCiAjaW1wb3J0ICJXS0Zvcm1QZXJpcGhlcmFsLmgi
CiAjaW1wb3J0ICJXS0Zvcm1Qb3BvdmVyLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAKIHN0YXRpYyBjb25zdCBDR0Zs
b2F0IG1heFZpc2libGVTdWdnZXN0aW9ucyA9IDU7CkBAIC00NCw2ICs0NSw3IEBAIHN0YXRpYyBO
U1N0cmluZyAqIGNvbnN0IHN1Z2dlc3Rpb25DZWxsUmV1c2VJZGVudGlmaWVyID0gQCJXS0RhdGFM
aXN0U3VnZ2VzdGlvbkNlCiBAaW50ZXJmYWNlIFdLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRyb2wg
KCkKIAogQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIFdLQ29udGVudFZpZXcgKnZpZXc7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlKSBCT09MIGlzU2hvd2luZ1N1Z2dlc3Rpb25z
OwogCiAtICh2b2lkKXNob3dTdWdnZXN0aW9uc0Ryb3Bkb3duOihXZWJLaXQ6OldlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bklPUyYpZHJvcGRvd24gYWN0aXZhdGlvblR5cGU6KFdlYkNvcmU6
OkRhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2YXRpb25UeXBlOwogCkBAIC03
MSw3ICs3Myw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHN1Z2dlc3Rpb25DZWxsUmV1c2VJ
ZGVudGlmaWVyID0gQCJXS0RhdGFMaXN0U3VnZ2VzdGlvbkNlCiBAZW5kCiAKICNpZiBFTkFCTEUo
SU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQotQGludGVyZmFjZSBXS0RhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93biA6IFdLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRyb2wgPFVJUG9wb3ZlclByZXNl
bnRhdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd24gOiBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sIDxVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb25EZWxlZ2F0ZT4KIEBlbmQKICNlbmRpZgogCkBAIC0zOTcsOCArMzk5LDEwIEBA
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI3ByYWdtYSBtYXJrIC0gV0tEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24KIAogQGltcGxlbWVudGF0aW9uIFdLRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duIHsKLSAgICBSZXRhaW5QdHI8V0tEYXRhTGlzdFN1Z2dlc3Rpb25zVmll
d0NvbnRyb2xsZXI+IF9zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyOwotICAgIFJldGFpblB0cjxO
U09iamVjdD4gX2tleWJvYXJkRGlzbWlzc2FsT2JzZXJ2ZXI7CisjaWYgVVNFKFVJQ09OVEVYVE1F
TlUpCisgICAgUmV0YWluUHRyPE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPj4gX3N1Z2dlc3Rpb25z
TWVudUVsZW1lbnRzOworICAgIFJldGFpblB0cjxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24+IF9z
dWdnZXN0aW9uc0NvbnRleHRNZW51SW50ZXJhY3Rpb247CisjZW5kaWYKIH0KIAogLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoSW5mb3JtYXRpb246KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvbklu
Zm9ybWF0aW9uJiYpaW5mb3JtYXRpb24gaW5WaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldwpAQCAt
NDI1LDIzICs0MjksMTcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0g
KHZvaWQpaW52YWxpZGF0ZQogewotICAgIFtbX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgcHJl
c2VudGluZ1ZpZXdDb250cm9sbGVyXSBkaXNtaXNzVmlld0NvbnRyb2xsZXJBbmltYXRlZDpOTyBj
b21wbGV0aW9uOm5pbF07Ci0gICAgW19zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIHNldENvbnRy
b2w6bmlsXTsKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyAgICBbc2VsZiBfcmVtb3ZlQ29udGV4
dE1lbnVJbnRlcmFjdGlvbl07CisjZW5kaWYKIH0KIAogLSAodm9pZClkaWRTZWxlY3RPcHRpb25B
dEluZGV4OihOU0ludGVnZXIpaW5kZXgKIHsKLSAgICBbW19zdWdnZXN0aW9uc1ZpZXdDb250cm9s
bGVyIHByZXNlbnRpbmdWaWV3Q29udHJvbGxlcl0gZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0
ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOwogICAgIFtzZWxmLnZpZXcgdXBkYXRlRm9jdXNlZEVsZW1l
bnRGb2N1c2VkV2l0aERhdGFMaXN0RHJvcGRvd246Tk9dOwogICAgIFtzdXBlciBkaWRTZWxlY3RP
cHRpb25BdEluZGV4OmluZGV4XTsKIH0KIAotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgW3NlbGYg
X3JlbW92ZUtleWJvYXJkRGlzbWlzc2FsT2JzZXJ2ZXJdOwotICAgIFtzdXBlciBkZWFsbG9jXTsK
LX0KLQogLSAodm9pZClfZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZTooV2ViQ29yZTo6RGF0YUxp
c3RTdWdnZXN0aW9uQWN0aXZhdGlvblR5cGUpYWN0aXZhdGlvblR5cGUKIHsKICAgICBpZiAoYWN0
aXZhdGlvblR5cGUgPT0gV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uQWN0aXZhdGlvblR5cGU6
OkluZGljYXRvckNsaWNrZWQpCkBAIC00NTksNzQgKzQ1NywxNDMgQEAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKHZvaWQpX3Nob3dTdWdnZXN0aW9ucwogewotICAgIGlm
ICghX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIpIHsKLSAgICAgICAgX3N1Z2dlc3Rpb25zVmll
d0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tEYXRhTGlzdFN1Z2dlc3Rpb25zVmlld0NvbnRyb2xs
ZXIgYWxsb2NdIGluaXRXaXRoU3R5bGU6VUlUYWJsZVZpZXdTdHlsZVBsYWluXSk7Ci0gICAgICAg
IFtfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlciBzZXRNb2RhbFByZXNlbnRhdGlvblN0eWxlOlVJ
TW9kYWxQcmVzZW50YXRpb25Qb3BvdmVyXTsKLSAgICAgICAgW1tfc3VnZ2VzdGlvbnNWaWV3Q29u
dHJvbGxlciB0YWJsZVZpZXddIHNldFNlcGFyYXRvckluc2V0OlVJRWRnZUluc2V0c1plcm9dOwot
ICAgICAgICBbX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgc2V0Q29udHJvbDpzZWxmXTsKLSAg
ICB9CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgW3NlbGYgX3VwZGF0ZVN1Z2dlc3Rpb25z
TWVudUVsZW1lbnRzXTsKIAotICAgIFtfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlciByZWxvYWRE
YXRhXTsKKyAgICBpZiAoIV9zdWdnZXN0aW9uc0NvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsKKyAg
ICAgICAgX3N1Z2dlc3Rpb25zQ29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tVSUNv
bnRleHRNZW51SW50ZXJhY3Rpb24gYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6c2VsZl0pOworICAg
ICAgICBbc2VsZi52aWV3IGFkZEludGVyYWN0aW9uOl9zdWdnZXN0aW9uc0NvbnRleHRNZW51SW50
ZXJhY3Rpb24uZ2V0KCldOwogCi0gICAgaWYgKFtfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlciBp
c0JlaW5nUHJlc2VudGVkXSB8fCBbW19zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIHZpZXdJZkxv
YWRlZF0gd2luZG93XSAhPSBuaWwpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgW3NlbGYudmll
dyBkb0FmdGVyRWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzaW5nRWxlbWVudDpbd2Vha1NlbGYg
PSBXZWFrT2JqQ1B0cjxXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4oc2VsZildIHsKKyAg
ICAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAg
aWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgIFVJUG9wb3Zl
clByZXNlbnRhdGlvbkNvbnRyb2xsZXIgKnByZXNlbnRhdGlvbkNvbnRyb2xsZXIgPSBbX3N1Z2dl
c3Rpb25zVmlld0NvbnRyb2xsZXIgcG9wb3ZlclByZXNlbnRhdGlvbkNvbnRyb2xsZXJdOwotICAg
IHByZXNlbnRhdGlvbkNvbnRyb2xsZXIuc291cmNlVmlldyA9IHNlbGYudmlldzsKLSAgICBwcmVz
ZW50YXRpb25Db250cm9sbGVyLnNvdXJjZVJlY3QgPSBDR1JlY3RJbnRlZ3JhbChzZWxmLnZpZXcu
Zm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3QpOwotICAgIHByZXNlbnRh
dGlvbkNvbnRyb2xsZXIucGVybWl0dGVkQXJyb3dEaXJlY3Rpb25zID0gVUlQb3BvdmVyQXJyb3dE
aXJlY3Rpb25VcDsKLSAgICBwcmVzZW50YXRpb25Db250cm9sbGVyLmRlbGVnYXRlID0gc2VsZjsK
LSAgICBbcHJlc2VudGF0aW9uQ29udHJvbGxlciBfc2V0U2hvdWxkSGlkZUFycm93OllFU107Ci0g
ICAgW3ByZXNlbnRhdGlvbkNvbnRyb2xsZXIgX3NldFByZWZlcnJlZEhvcml6b250YWxBbGlnbm1l
bnQ6X1VJUG9wb3ZlclByZXNlbnRhdGlvbkhvcml6b250YWxBbGlnbm1lbnRMZWFkaW5nXTsKKyAg
ICAgICAgICAgIFtzdHJvbmdTZWxmLT5fc3VnZ2VzdGlvbnNDb250ZXh0TWVudUludGVyYWN0aW9u
IF9wcmVzZW50TWVudUF0TG9jYXRpb246W1tzdHJvbmdTZWxmIHZpZXddIGxhc3RJbnRlcmFjdGlv
bkxvY2F0aW9uXV07CisgICAgICAgIH1dOworICAgIH0gZWxzZSB7CisgICAgICAgIFtfc3VnZ2Vz
dGlvbnNDb250ZXh0TWVudUludGVyYWN0aW9uIHVwZGF0ZVZpc2libGVNZW51V2l0aEJsb2NrOltz
ZWxmXShVSU1lbnUgKnZpc2libGVNZW51KSAtPiBVSU1lbnUgKiB7CisgICAgICAgICAgICByZXR1
cm4gW3Zpc2libGVNZW51IG1lbnVCeVJlcGxhY2luZ0NoaWxkcmVuOnNlbGYtPl9zdWdnZXN0aW9u
c01lbnVFbGVtZW50cy5nZXQoKV07CisgICAgICAgIH1dOworICAgIH0KKyNlbmRpZgorfQorCist
ICh2b2lkKV91cGRhdGVUZXh0U3VnZ2VzdGlvbnMKK3sKKyAgICBzZWxmLnZpZXcuZGF0YUxpc3RU
ZXh0U3VnZ2VzdGlvbnMgPSBzZWxmLnRleHRTdWdnZXN0aW9uczsKK30KKworI2lmIFVTRShVSUNP
TlRFWFRNRU5VKQogCi0gICAgLy8gV2hlbiBhIGhhcmR3YXJlIGtleWJvYXJkIGlzIG5vdCB1c2Vk
LCB0aGUgc3VnZ2VzdGlvbnMgZHJvcGRvd24gYW5kIHNvZnR3YXJlIGtleWJvYXJkIGNhbm5vdCBi
ZQotICAgIC8vIGRpc3BsYXllZCBhdCB0aGUgc2FtZSB0aW1lLiBXZSB3YWl0IHVudGlsIHRoZSBr
ZXlib2FyZCBpcyBkaXNtaXNzZWQgcHJpb3IgdG8gcHJlc2VudGluZyB0aGUKLSAgICAvLyBzdWdn
ZXN0aW9ucywgdG8gYXZvaWQgdGhlIGtleWJvYXJkJ3MgZGlzbWlzc2FsIHJlcG9zaXRpb25pbmcg
dGhlIGRyb3Bkb3duLgorLSAodm9pZClfdXBkYXRlU3VnZ2VzdGlvbnNNZW51RWxlbWVudHMKK3sK
KyAgICBOU011dGFibGVBcnJheSAqc3VnZ2VzdGlvbnMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlX
aXRoQ2FwYWNpdHk6c2VsZi5zdWdnZXN0aW9uc0NvdW50XTsKIAotICAgIGlmIChbVUlLZXlib2Fy
ZCBpc09uU2NyZWVuXSAmJiAhW1VJS2V5Ym9hcmQgaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlXSkg
ewotICAgICAgICBfa2V5Ym9hcmREaXNtaXNzYWxPYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJS2V5Ym9hcmREaWRIaWRl
Tm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVldWU6bmlsIHVzaW5nQmxvY2s6W3dlYWtTZWxmID0g
V2Vha09iakNQdHI8V0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+KHNlbGYpXSAoTlNOb3Rp
ZmljYXRpb24gKikgeworICAgIGZvciAoTlNJbnRlZ2VyIGluZGV4ID0gMDsgaW5kZXggPCBzZWxm
LnN1Z2dlc3Rpb25zQ291bnQ7IGluZGV4KyspIHsKKyAgICAgICAgVUlBY3Rpb24gKnN1Z2dlc3Rp
b25BY3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOltzZWxmIHN1Z2dlc3Rpb25BdElu
ZGV4OmluZGV4XSBpbWFnZTpuaWwgaWRlbnRpZmllcjpuaWwgaGFuZGxlcjpbd2Vha1NlbGYgPSBX
ZWFrT2JqQ1B0cjxXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4oc2VsZiksIGluZGV4XSAo
VUlBY3Rpb24gKikgewogICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0
KCk7CiAgICAgICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgICAgICBbc3Ryb25nU2VsZiBfcHJlc2VudFN1Z2dlc3Rpb25zVmlld0NvbnRy
b2xsZXJdOwotICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX3JlbW92ZUtleWJvYXJkRGlzbWlzc2Fs
T2JzZXJ2ZXJdOworICAgICAgICAgICAgW3N0cm9uZ1NlbGYgZGlkU2VsZWN0T3B0aW9uQXRJbmRl
eDppbmRleF07CiAgICAgICAgIH1dOwotICAgIH0gZWxzZQotICAgICAgICBbc2VsZiBfcHJlc2Vu
dFN1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXJdOworCisgICAgICAgIFtzdWdnZXN0aW9ucyBhZGRP
YmplY3Q6c3VnZ2VzdGlvbkFjdGlvbl07CisgICAgfQorCisgICAgX3N1Z2dlc3Rpb25zTWVudUVs
ZW1lbnRzID0gYWRvcHROUyhbc3VnZ2VzdGlvbnMgY29weV0pOwogfQogCi0tICh2b2lkKV9wcmVz
ZW50U3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlcgorLSAodm9pZClfcmVtb3ZlQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbgogewotICAgIFVJVmlld0NvbnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJv
bGxlciA9IFtVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVz
ZW50YXRpb25Gcm9tVmlldzpzZWxmLnZpZXddOwotICAgIFtwcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXIgcHJlc2VudFZpZXdDb250cm9sbGVyOl9zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyLmdldCgp
IGFuaW1hdGVkOk5PIGNvbXBsZXRpb246bmlsXTsKKyAgICBpZiAoIV9zdWdnZXN0aW9uc0NvbnRl
eHRNZW51SW50ZXJhY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIFtzZWxmLnZpZXcgcmVt
b3ZlSW50ZXJhY3Rpb246X3N1Z2dlc3Rpb25zQ29udGV4dE1lbnVJbnRlcmFjdGlvbi5nZXQoKV07
CisgICAgX3N1Z2dlc3Rpb25zQ29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IG5pbDsKKyAgICBbc2Vs
Zi52aWV3IF9yZW1vdmVDb250ZXh0TWVudVZpZXdJZlBvc3NpYmxlXTsKKyAgICBbc2VsZi52aWV3
LndlYlZpZXcgX2RpZERpc21pc3NDb250ZXh0TWVudV07CiB9CiAKLS0gKHZvaWQpX3VwZGF0ZVRl
eHRTdWdnZXN0aW9ucworLSAodm9pZClfc3VnZ2VzdGlvbnNNZW51RGlkUHJlc2VudAogewotICAg
IHNlbGYudmlldy5kYXRhTGlzdFRleHRTdWdnZXN0aW9ucyA9IHNlbGYudGV4dFN1Z2dlc3Rpb25z
OworICAgIHNlbGYuaXNTaG93aW5nU3VnZ2VzdGlvbnMgPSBZRVM7CisKKyAgICBbc2VsZi52aWV3
LndlYlZpZXcgX2RpZFNob3dDb250ZXh0TWVudV07CiB9CiAKLS0gKHZvaWQpX3JlbW92ZUtleWJv
YXJkRGlzbWlzc2FsT2JzZXJ2ZXIKKy0gKHZvaWQpX3N1Z2dlc3Rpb25zTWVudURpZERpc21pc3MK
IHsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOl9rZXlib2FyZERpc21pc3NhbE9ic2VydmVyLmdldCgpXTsKLSAgICBfa2V5Ym9hcmREaXNt
aXNzYWxPYnNlcnZlciA9IG5pbDsKKyAgICBzZWxmLmlzU2hvd2luZ1N1Z2dlc3Rpb25zID0gTk87
CisKKyAgICBbc2VsZi52aWV3IHVwZGF0ZUZvY3VzZWRFbGVtZW50Rm9jdXNlZFdpdGhEYXRhTGlz
dERyb3Bkb3duOk5PXTsKKyAgICBbc2VsZiBfdXBkYXRlVGV4dFN1Z2dlc3Rpb25zXTsKKworICAg
IFtzZWxmIF9yZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKIH0KIAotI3ByYWdtYSBtYXJr
IFVJUG9wb3ZlclByZXNlbnRhdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZQorLSAoVUlFZGdlSW5zZXRz
KV9wcmVmZXJyZWRFZGdlSW5zZXRzRm9yU3VnZ2VzdGlvbnNNZW51Cit7CisgICAgQ0dSZWN0IHdp
bmRvd0JvdW5kcyA9IHNlbGYudmlldy50ZXh0RWZmZWN0c1dpbmRvdy5ib3VuZHM7CisgICAgQ0dS
ZWN0IGVsZW1lbnRGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBbc2VsZi52aWV3IGNvbnZlcnRS
ZWN0OnNlbGYudmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmludGVyYWN0aW9uUmVjdCB0
b1ZpZXc6bmlsXTsKKworICAgIGlmIChDR1JlY3RHZXRNaWRZKGVsZW1lbnRGcmFtZUluV2luZG93
Q29vcmRpbmF0ZXMpID4gQ0dSZWN0R2V0TWlkWSh3aW5kb3dCb3VuZHMpKQorICAgICAgICByZXR1
cm4gVUlFZGdlSW5zZXRzTWFrZSgwLCAwLCBDR1JlY3RHZXRNYXhZKHdpbmRvd0JvdW5kcykgLSBD
R1JlY3RHZXRNaW5ZKGVsZW1lbnRGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpLCAwKTsKIAotLSAo
dm9pZClwcmVzZW50YXRpb25Db250cm9sbGVyRGlkRGlzbWlzczooVUlQcmVzZW50YXRpb25Db250
cm9sbGVyICopcHJlc2VudGF0aW9uQ29udHJvbGxlcgorICAgIC8vIFVzZSBNaW5ZIHJhdGhlciB0
aGFuIE1heFkgdG8gYWNjb3VudCBmb3IgdGhlIGhpbnQgcHJldmlldy4KKyAgICByZXR1cm4gVUlF
ZGdlSW5zZXRzTWFrZShDR1JlY3RHZXRNaW5ZKGVsZW1lbnRGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMpLCAwLCAwLCAwKTsKK30KKworI3ByYWdtYSBtYXJrIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlv
bkRlbGVnYXRlCisKKy0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY29udGV4dE1lbnVJbnRlcmFjdGlv
bjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmlld0ZvckhpZ2hs
aWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24g
Kiljb25maWd1cmF0aW9uCiB7Ci0gICAgW3NlbGYudmlldyB1cGRhdGVGb2N1c2VkRWxlbWVudEZv
Y3VzZWRXaXRoRGF0YUxpc3REcm9wZG93bjpOT107Ci0gICAgW3NlbGYgX3VwZGF0ZVRleHRTdWdn
ZXN0aW9uc107CisgICAgcmV0dXJuIFtzZWxmLnZpZXcgX2NyZWF0ZVRhcmdldGVkQ29udGV4dE1l
bnVIaW50UHJldmlld0ZvckZvY3VzZWRFbGVtZW50XTsKK30KKworLSAoX1VJQ29udGV4dE1lbnVT
dHlsZSAqKV9jb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24g
KilpbnRlcmFjdGlvbiBzdHlsZUZvck1lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVu
dUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCit7CisgICAgX1VJQ29udGV4dE1lbnVTdHls
ZSAqc3R5bGUgPSBbX1VJQ29udGV4dE1lbnVTdHlsZSBkZWZhdWx0U3R5bGVdOworICAgIHN0eWxl
LnByZWZlcnJlZExheW91dCA9IF9VSUNvbnRleHRNZW51TGF5b3V0Q29tcGFjdE1lbnU7CisgICAg
c3R5bGUucHJlZmVycmVkRWRnZUluc2V0cyA9IFtzZWxmIF9wcmVmZXJyZWRFZGdlSW5zZXRzRm9y
U3VnZ2VzdGlvbnNNZW51XTsKKworICAgIHJldHVybiBzdHlsZTsKK30KKworLSAoVUlDb250ZXh0
TWVudUNvbmZpZ3VyYXRpb24gKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246
KENHUG9pbnQpbG9jYXRpb24KK3sKKyAgICBVSUNvbnRleHRNZW51QWN0aW9uUHJvdmlkZXIgYWN0
aW9uTWVudVByb3ZpZGVyID0gW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd24+KHNlbGYpXSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopIC0+IFVJ
TWVudSAqIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAg
ICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVybiBuaWw7CisKKyAgICAgICAg
cmV0dXJuIFtVSU1lbnUgbWVudVdpdGhUaXRsZTpAIiIgY2hpbGRyZW46c3Ryb25nU2VsZi0+X3N1
Z2dlc3Rpb25zTWVudUVsZW1lbnRzLmdldCgpXTsKKyAgICB9OworCisgICAgcmV0dXJuIFtVSUNv
bnRleHRNZW51Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uV2l0aElkZW50aWZpZXI6bmlsIHBy
ZXZpZXdQcm92aWRlcjpuaWwgYWN0aW9uUHJvdmlkZXI6YWN0aW9uTWVudVByb3ZpZGVyXTsKIH0K
IAotLSAoVUlNb2RhbFByZXNlbnRhdGlvblN0eWxlKWFkYXB0aXZlUHJlc2VudGF0aW9uU3R5bGVG
b3JQcmVzZW50YXRpb25Db250cm9sbGVyOihVSVByZXNlbnRhdGlvbkNvbnRyb2xsZXIgKiljb250
cm9sbGVyIHRyYWl0Q29sbGVjdGlvbjooVUlUcmFpdENvbGxlY3Rpb24gKil0cmFpdENvbGxlY3Rp
b24KKy0gKHZvaWQpY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0
aW9uICopaW50ZXJhY3Rpb24gd2lsbERpc3BsYXlNZW51Rm9yQ29uZmlndXJhdGlvbjooVUlDb250
ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGFuaW1hdG9yOihpZCA8VUlDb250
ZXh0TWVudUludGVyYWN0aW9uQW5pbWF0aW5nPilhbmltYXRvcgogewotICAgIC8vIEZvcmNlcyBh
IHBvcG92ZXIgcHJlc2VudGF0aW9uLgotICAgIHJldHVybiBVSU1vZGFsUHJlc2VudGF0aW9uTm9u
ZTsKKyAgICBbYW5pbWF0b3IgYWRkQ29tcGxldGlvbjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxX
S0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4oc2VsZildIHsKKyAgICAgICAgYXV0byBzdHJv
bmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmIChzdHJvbmdTZWxmKQorICAgICAg
ICAgICAgW3N0cm9uZ1NlbGYgX3N1Z2dlc3Rpb25zTWVudURpZFByZXNlbnRdOworICAgIH1dOwog
fQogCistICh2b2lkKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbiAqKWludGVyYWN0aW9uIHdpbGxFbmRGb3JDb25maWd1cmF0aW9uOihVSUNvbnRleHRNZW51
Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gYW5pbWF0b3I6KGlkIDxVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb25BbmltYXRpbmc+KWFuaW1hdG9yCit7CisgICAgW2FuaW1hdG9yIGFkZENvbXBs
ZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d24+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwor
ICAgICAgICBpZiAoc3Ryb25nU2VsZikKKyAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9zdWdnZXN0
aW9uc01lbnVEaWREaXNtaXNzXTsKKyAgICB9XTsKK30KKworI2VuZGlmIC8vIFVTRShVSUNPTlRF
WFRNRU5VKQorCiBAZW5kCiAKICNlbmRpZiAvLyBFTkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZS
RVNIKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDcxNTdkYzkxY2QyYzI1MTcwODViZjNmNGIwNmE1NDk3YjZmOTJjMGQuLjg2ZTUyNmZlMGM2Nzg2
ZjZkYTg2Mzc4NjY5ZWQ1NWM0OGE5MzhiN2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNC0wNyAgQWRpdHlh
IEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU11bRkNSXSBVc2Ug
Y29udGV4dCBtZW51cyBmb3IgdGV4dCBpbnB1dCBkYXRhbGlzdCBkcm9wZG93bnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDI4NworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzYzNTEzMTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xs
ZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNTaG93aW5n
RGF0YUxpc3RTdWdnZXN0aW9ucyBjb25zdCk6CisKKyAgICAgICAgVXNlIHRoZSBleHBvc2VkIGlu
Zm9ybWF0aW9uIGZyb20gdGhlIHdlYnZpZXcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlCisgICAg
ICAgIGRhdGFsaXN0IHN1Z2dlc3Rpb25zIGFyZSB2aXNpYmxlLCByYXRoZXIgdGhhbiB0cmF2ZXJz
aW5nIHRoZSB2aWV3CisgICAgICAgIGhpZXJhcmNoeS4KKwogMjAyMS0wNC0wNiAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBVKzA1ODEg
YW5kIFUrMDU4NSB0byBsaXN0IG9mIEFybWVuaWFuIGNoYXJhY3RlcnMgdGhhdCBsb29rIGxpa2Ug
TGF0aW4gY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3Mv
VUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlT
Y3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4IDZkMzViMjJjYmU5M2E2MTcyYWRlNjI4ZmMzYmI5
Zjc1NzIzYTBiN2YuLmJiNGYxNGQ5YTk0ZTZlMjdkNGY3NzJjNmZlYWUwYjFlNDg4MjU5ZmIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklP
Uy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJ
T1MubW0KQEAgLTExMTUsMTIgKzExMTUsOCBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6
YWN0aXZhdGVEYXRhTGlzdFN1Z2dlc3Rpb24odW5zaWduZWQgaW5kZXgsIEpTVmFsdWVSZQogYm9v
bCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmlzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMoKSBj
b25zdAogewogI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCi0gICAgVUlWaWV3
Q29udHJvbGxlciAqcHJlc2VudGVkVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJvbGxlciBf
dmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6d2ViVmlldygp
XTsKLSAgICBDbGFzcyBzdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyQ2xhc3MgPSBOU0NsYXNzRnJv
bVN0cmluZyhAIldLRGF0YUxpc3RTdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIik7Ci0gICAgaWYg
KFtwcmVzZW50ZWRWaWV3Q29udHJvbGxlciBpc0tpbmRPZkNsYXNzOnN1Z2dlc3Rpb25zVmlld0Nv
bnRyb2xsZXJDbGFzc10pCi0gICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0KKyAgICByZXR1
cm4gW3dlYlZpZXcoKSBfaXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9uc107CisjZWxzZQogICAg
IENsYXNzIHJlbW90ZUtleWJvYXJkV2luZG93Q2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyhAIlVJ
UmVtb3RlS2V5Ym9hcmRXaW5kb3ciKTsKICAgICBDbGFzcyBzdWdnZXN0aW9uc1BpY2tlclZpZXdD
bGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tEYXRhTGlzdFN1Z2dlc3Rpb25zUGlja2VyVmll
dyIpOwogICAgIFVJV2luZG93ICpyZW1vdGVJbnB1dEhvc3RpbmdXaW5kb3cgPSBuaWw7CkBAIC0x
MTQxLDYgKzExMzcsNyBAQCBib29sIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNTaG93aW5nRGF0
YUxpc3RTdWdnZXN0aW9ucygpIGNvbnN0CiAgICAgICAgICpzdG9wID0gWUVTOwogICAgIH0pOwog
ICAgIHJldHVybiBmb3VuZERhdGFMaXN0U3VnZ2VzdGlvbnNQaWNrZXJWaWV3OworI2VuZGlmCiB9
CiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjpzZXRTZWxlY3RlZENvbG9yRm9yQ29sb3JQ
aWNrZXIoZG91YmxlIHJlZCwgZG91YmxlIGdyZWVuLCBkb3VibGUgYmx1ZSkK
</data>
<flag name="commit-queue"
          id="445363"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425414</attachid>
            <date>2021-04-07 10:02:18 -0700</date>
            <delta_ts>2021-04-08 19:45:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224287-20210407130217.patch</filename>
            <type>text/plain</type>
            <size>24896</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRhMGVkMTYzYTllMjZmNzY1
MzAyZTk2N2U2ZjBhZDAxNDhjYWMwZDUuLmQ0MGRiNGU1NzEwZDExZDE0ODJhMWE3NDE0NTNhNTQ1
NmMzODE0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMDQtMDcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW0ZDUl0gVXNlIGNv
bnRleHQgbWVudXMgZm9yIHRleHQgaW5wdXQgZGF0YWxpc3QgZHJvcGRvd25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc2MzUxMzE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBjb250ZXh0IG1lbnVzIHJhdGhlciB0aGFuIHBvcG92ZXJzIHRv
IHByZXNlbnQgc3VnZ2VzdGVkIHZhbHVlcyBmb3IKKyAgICAgICAgdGV4dCBpbnB1dHMgd2l0aCBh
biBhc3NvY2lhdGVkIGRhdGFsaXN0IGVsZW1lbnQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmdJT1MuaDoKKworICAgICAgICBFeHBvc2UgX2lzU2hvd2luZ0RhdGFsaXN0
U3VnZ2VzdGlvbnMgZm9yIHRlc3RpbmcuIFByZXZpb3VzbHksIHRoZSB0ZXN0CisgICAgICAgIHJ1
bm5lciB0cmF2ZXJzZWQgdGhlIHZpZXcgaGllcmFyY2h5IGluIG9yZGVyIHRvIGRldGVybWluZSB3
aGV0aGVyIHRoZQorICAgICAgICBzdWdnZXN0aW9ucyB3ZXJlIHZpc2libGUuIEhvd2V2ZXIsIHRo
YXQgYXBwcm9hY2ggaXMgbm90IHJlbGlhYmxlIHNpbmNlCisgICAgICAgIHdlIG5vIGxvbmdlciBv
d24gdGhlIHByZXNlbnRlZCB2aWV3LCBhbmQgVUlLaXQgY291bGQgY2hhbmdlIHRoZQorICAgICAg
ICBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIGNvbnRleHQgbWVudXMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2lzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnNdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGRvQWZ0ZXJFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50Ol0pOgorCisgICAg
ICAgIEFkZCBhIG1lY2hhbmlzbSB0byBwZXJmb3JtIGFjdGlvbnMgYWZ0ZXIgYW4gZWRpdG9yIHN0
YXRlIHVwZGF0ZSB3aGVuCisgICAgICAgIGZvY3VzaW5nIGFuIGVsZW1lbnQuIElmIGFuIHVwZGF0
ZSBpcyBub3QgZXhwZWN0ZWQsIHJ1biB0aGUgYmxvY2sKKyAgICAgICAgaW1tZWRpYXRlbHkuCisK
KyAgICAgICAgU2VlIGJlbG93IGZvciBkZXRhaWxzIG9uIHdoeSB0aGlzIGlzIG5lY2Vzc2FyeS4K
KworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRVcGRhdGVFZGl0b3JTdGF0ZV0pOgorCisg
ICAgICAgIFJ1biBhbnkgcGVuZGluZyBibG9ja3MgdGhhdCB3ZXJlIGF3YWl0aW5nIGFuIGVkaXRv
ciBzdGF0ZSB1cGRhdGUuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpc1Nob3dpbmdEYXRh
TGlzdFN1Z2dlc3Rpb25zXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd25JT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbToKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd24gaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93biBkaWRTZWxlY3RPcHRpb25BdEluZGV4Ol0pOgorICAgICAgICAoLVtXS0Rh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBfc2hvd1N1Z2dlc3Rpb25zXSk6CisKKyAgICAgICAg
UHJlc2VudCBhIGNvbnRleHQgbWVudSBkaXNwbGF5aW5nIHRoZSBzdWdnZXN0aW9ucyBpZiBvbmUg
aXMgbm90IGFscmVhZHkKKyAgICAgICAgcHJlc2VudGVkLgorCisgICAgICAgIE5vdGUgdGhhdCBm
b2N1c2luZyB0ZXh0IGZpZWxkcyBjYW4gcmVzdWx0IGluIGF1dG9tYXRpYyB6b29taW5nIG9mIHRo
ZQorICAgICAgICB3ZWJ2aWV3LiBUaGlzIHpvb21pbmcgb2NjdXJzIGFmdGVyIGFuIGVkaXRvciBz
dGF0ZSB1cGRhdGUgZm9yIGZvY3VzZWQKKyAgICAgICAgZWxlbWVudHMuIFRoZSBwcmVzZW50YXRp
b24gb2YgdGhlIGNvbnRleHQgbWVudSBpcyBkZWZlcnJlZCB0byBydW4KKyAgICAgICAgYWZ0ZXIg
YW4gZWRpdG9yIHN0YXRlIHVwZGF0ZSB0byBlbnN1cmUgYW55IHpvb21pbmcgb2NjdXJzIGJlZm9y
ZQorICAgICAgICBzaG93aW5nIHRoZSBtZW51LiBXaXRob3V0IHRoaXMgZGVmZXJyZWQgcHJlc2Vu
dGF0aW9uIG1lY2hhbmlzbSwgdGhlCisgICAgICAgIGNvbnRleHQgbWVudSBjYW4gYmUgcHJlc2Vu
dGVkIGJlZm9yZSB0aGUgc3RhdGUgdXBkYXRlLCBwYXJ0aWFsbHkKKyAgICAgICAgb2JzY3VyaW5n
IHRoZSB3ZWJ2aWV3IGFuZCByZXN1bHRpbmcgaW4gYW4gaW5jb3JyZWN0IHpvb20gb25jZSB0aGUK
KyAgICAgICAgdXBkYXRlIG9jY3Vycy4KKworICAgICAgICBJZiBhIG1lbnUgaXMgYWxyZWFkeSBw
cmVzZW50ZWQsIHVzZSBgdXBkYXRlVmlzaWJsZU1lbnVXaXRoQmxvY2s6YCB0bworICAgICAgICB1
cGRhdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSBtZW51LgorCisgICAgICAgICgtW1dLRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duIF91cGRhdGVUZXh0U3VnZ2VzdGlvbnNdKToKKyAgICAgICAgKC1b
V0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gX3VwZGF0ZVN1Z2dlc3Rpb25zTWVudUVsZW1l
bnRzXSk6CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9yZW1vdmVD
b250ZXh0TWVudUludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duIF9zdWdnZXN0aW9uc01lbnVEaWRQcmVzZW50XSk6CisgICAgICAgICgtW1dLRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9zdWdnZXN0aW9uc01lbnVEaWREaXNtaXNzXSk6Cisg
ICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9wcmVmZXJyZWRFZGdlSW5z
ZXRzRm9yU3VnZ2VzdGlvbnNNZW51XSk6CisKKyAgICAgICAgQnkgZGVmYXVsdCwgY29udGV4dCBt
ZW51cyBjYW4gb2JzY3VyZSB0aGUgcHJlc2VudGluZyBlbGVtZW50IGlmIHRoZXJlCisgICAgICAg
IGFyZSB0b28gbWFueSBvcHRpb25zLiBJbnNldCB0aGUgbWVudSBzbyB0aGF0IGl0IGRvZXMgbm90
IG92ZXJsYXAgdGhlCisgICAgICAgIHRleHQgZmllbGQuIFByZXNlbnQgdGhlIG1lbnUgYWJvdmUg
dGhlIHRleHQgZmllbGQgaWYgdGhlcmUgaXMgbGVzcworICAgICAgICBzcGFjZSB1bmRlcm5lYXRo
IHRoZSBmaWVsZC4KKworICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBj
b250ZXh0TWVudUludGVyYWN0aW9uOnByZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZp
Z3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF9j
b250ZXh0TWVudUludGVyYWN0aW9uOnN0eWxlRm9yTWVudVdpdGhDb25maWd1cmF0aW9uOl0pOgor
ICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBjb250ZXh0TWVudUludGVy
YWN0aW9uOmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpdKToKKyAgICAgICAgKC1bV0tE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gY29udGV4dE1lbnVJbnRlcmFjdGlvbjp3aWxsRGlz
cGxheU1lbnVGb3JDb25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorICAgICAgICAoLVtXS0RhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93biBjb250ZXh0TWVudUludGVyYWN0aW9uOndpbGxFbmRGb3JD
b25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorCiAyMDIxLTA0LTA2ICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhZGRpdGlvbmFsIHBhZ2UgbG9hZCBk
aWFnbm9zdGljIGxvZ2dpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
LmgKaW5kZXggODg1ZDk0MTZmYWZmZGY0ZDg5Mjk1YTg0YTI0ZWM1MDJhZjlhYjYxMy4uNzI2ZTcz
NTMwY2EwNmViMDNmOTU0NzVlNzQwMmQ5NDkyMjI2MTM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTEyMTIsNiArMTIxMiw3IEBAIHR5cGVkZWYgTlNf
RU5VTShOU1VJbnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewogCiBAaW50ZXJmYWNlIF9V
SUNvbnRleHRNZW51U3R5bGUgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogQHByb3BlcnR5IChub25h
dG9taWMpIF9VSUNvbnRleHRNZW51TGF5b3V0IHByZWZlcnJlZExheW91dDsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljKSBVSUVkZ2VJbnNldHMgcHJlZmVycmVkRWRnZUluc2V0czsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIGhhc0ludGVyYWN0aXZlUHJldmlldzsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcpIE5TQXJyYXkgKnByZWZlcnJlZEJhY2tncm91bmRFZmZlY3RzOwogKyAoaW5z
dGFuY2V0eXBlKWRlZmF1bHRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAppbmRl
eCAyN2U5OTEwZTU5NjZmYTNhNjcwNzY0MDEyZDU5NzAzMzc5Nzk2Zjg3Li5lODI1YTkwM2FhZTE1
OGZlZTMzMGRhOWEyZDA5MDRhZjMwY2NjZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lP
Uy5oCkBAIC01Myw2ICs1Myw3IEBACiAtIChCT09MKXNlbGVjdEZvcm1BY2Nlc3NvcnlIYXNDaGVj
a2VkSXRlbUF0Um93Oihsb25nKXJvd0luZGV4OwogLSAodm9pZClzZXRTZWxlY3RlZENvbG9yRm9y
Q29sb3JQaWNrZXI6KFVJQ29sb3IgKiljb2xvcjsKIC0gKHZvaWQpX3NlbGVjdERhdGFMaXN0T3B0
aW9uOihpbnQpb3B0aW9uSW5kZXg7CistIChCT09MKV9pc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rp
b25zOwogCiAtIChCT09MKV9tYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdDooQ0dSZWN0
KXJlY3Q7CiAtICh2b2lkKV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdCly
ZWN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PF9XS1RleHRJbnB1dENvbnRl
eHQgKj4gKikpY29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5kZXggODcyYjBiMTI1YmYw
N2JkNWY2NjQ5NTQyODBlOTc3NGViZTdmNjNlYy4uMmE3MWQ5N2FlYTY4Y2FhNWMyNzg0YTNmMDAx
Njc5NTZiZWJjMGE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtMTc5LDYgKzE3OSwxNSBAQAogI2VuZGlm
CiB9CiAKKy0gKEJPT0wpX2lzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMKK3sKKyNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICByZXR1cm4gW19jb250ZW50VmlldyBpc1Nob3dpbmdE
YXRhTGlzdFN1Z2dlc3Rpb25zXTsKKyNlbHNlCisgICAgcmV0dXJuIE5POworI2VuZGlmCit9CisK
IC0gKE5TU3RyaW5nICopdGV4dENvbnRlbnRUeXBlRm9yVGVzdGluZwogewogICAgIHJldHVybiBb
X2NvbnRlbnRWaWV3IHRleHRDb250ZW50VHlwZUZvclRlc3RpbmddOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4
IDljNWJiNDY2Mzc4NmZmODljMjExZjdmZDdlNjBlNzZhZWI3NDcwM2YuLmVkNmFiZTFlNmFhZjI5
ZDM1MDFhM2Q1YTU2M2RiMTJkN2JhNmVjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTM3OCw2ICszNzgs
OCBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIDogYm9vbCB7CiAKICAg
ICBSZXRhaW5QdHI8V0tLZXlib2FyZFNjcm9sbFZpZXdBbmltYXRvcj4gX2tleWJvYXJkU2Nyb2xs
aW5nQW5pbWF0b3I7CiAKKyAgICBWZWN0b3I8QmxvY2tQdHI8dm9pZCgpPj4gX2FjdGlvbnNUb1Bl
cmZvcm1BZnRlckVkaXRvclN0YXRlVXBkYXRlOworCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCiAgICAgUmV0YWluUHRyPFVJVmlldyA8V0tGb3JtQ29udHJvbD4+IF9kYXRhTGlzdFRleHRT
dWdnZXN0aW9uc0lucHV0VmlldzsKICAgICBSZXRhaW5QdHI8TlNBcnJheTxVSVRleHRTdWdnZXN0
aW9uICo+PiBfZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnM7CkBAIC02NDIsNiArNjQ0LDggQEAgRk9S
X0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25V
cGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24p
KWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
KXJlcXVlc3Q7CiAtIChCT09MKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOihX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CiAKKy0gKHZvaWQp
ZG9BZnRlckVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1c2luZ0VsZW1lbnQ6KGRpc3BhdGNoX2Js
b2NrX3QpYmxvY2s7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogLSAodm9pZClfZGlkQ2hh
bmdlRHJhZ0ludGVyYWN0aW9uUG9saWN5OwogLSAodm9pZClfZGlkUGVyZm9ybURyYWdPcGVyYXRp
b246KEJPT0wpaGFuZGxlZDsKQEAgLTY3OCw2ICs2ODIsOCBAQCBGT1JfRUFDSF9QUklWQVRFX1dL
Q09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9W
SUVXKQogLSAodm9pZClzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZW5h
YmxlZDsKIAogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorLSAoVUlWaWV3ICopdGV4dEVmZmVjdHNX
aW5kb3c7CisKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopX2NyZWF0ZVRhcmdldGVkQ29udGV4dE1l
bnVIaW50UHJldmlld0ZvckZvY3VzZWRFbGVtZW50OwogLSAoVUlUYXJnZXRlZFByZXZpZXcgKilf
Y3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRQcmV2aWV3SWZQb3NzaWJsZTsKIC0gKHZvaWQp
X3JlbW92ZUNvbnRleHRNZW51Vmlld0lmUG9zc2libGU7CkBAIC03MzIsNiArNzM4LDggQEAgRk9S
X0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OX0ZPUl9XRUJfVklFVykKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIC0gKHZv
aWQpX3NlbGVjdERhdGFMaXN0T3B0aW9uOihOU0ludGVnZXIpb3B0aW9uSW5kZXg7CiAtICh2b2lk
KV9zZXREYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbDooV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29u
dHJvbCAqKWNvbnRyb2w7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBp
c1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNTdHJpbmcgKnRleHRDb250ZW50VHlwZUZvclRlc3Rpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCAyNjJlODYwOTllNjBkYWZmM2FjM2MzNzkyYjFjNDMyNzViNDU4YmEwLi4z
ZjAxN2RjNTIwNTM1YWFkYTI2NjU1YzE0NmNmZTA5NDRjZTg5OTQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTY0NjEsNiArNjQ2MSwxNiBAQCBzdGF0aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRlbU9yaWdp
bnNNYXRjaE9yaWdpbihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIGNvbnN0CiAgICAgW1VJTWVu
dUNvbnRyb2xsZXIuc2hhcmVkTWVudUNvbnRyb2xsZXIgc2hvd01lbnVGcm9tVmlldzpzZWxmIHJl
Y3Q6bWVudUNvbnRyb2xsZXJSZWN0XTsKIH0KIAorLSAodm9pZClkb0FmdGVyRWRpdG9yU3RhdGVV
cGRhdGVBZnRlckZvY3VzaW5nRWxlbWVudDooZGlzcGF0Y2hfYmxvY2tfdClibG9jaworeworICAg
IGlmICghX3BhZ2UtPndhaXRpbmdGb3JQb3N0TGF5b3V0RWRpdG9yU3RhdGVVcGRhdGVBZnRlckZv
Y3VzaW5nRWxlbWVudCgpKSB7CisgICAgICAgIGJsb2NrKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBfYWN0aW9uc1RvUGVyZm9ybUFmdGVyRWRpdG9yU3RhdGVVcGRhdGUuYXBwZW5k
KG1ha2VCbG9ja1B0cihibG9jaykpOworfQorCiAtICh2b2lkKV9kaWRVcGRhdGVFZGl0b3JTdGF0
ZQogewogICAgIFtzZWxmIF91cGRhdGVJbml0aWFsV3JpdGluZ0RpcmVjdGlvbklmTmVjZXNzYXJ5
XTsKQEAgLTY0NzEsNiArNjQ4MSw5IEBAIHN0YXRpYyBCT09MIGFsbFBhc3RlYm9hcmRJdGVtT3Jp
Z2luc01hdGNoT3JpZ2luKFVJUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgY29uc3QKICAgICAgICAg
W3NlbGYgX3pvb21Ub1JldmVhbEZvY3VzZWRFbGVtZW50XTsKIAogICAgIF90cmVhdEFzQ29udGVu
dEVkaXRhYmxlVW50aWxOZXh0RWRpdG9yU3RhdGVVcGRhdGUgPSBOTzsKKworICAgIGZvciAoYXV0
byBibG9jayA6IHN0ZDo6ZXhjaGFuZ2UoX2FjdGlvbnNUb1BlcmZvcm1BZnRlckVkaXRvclN0YXRl
VXBkYXRlLCB7IH0pKQorICAgICAgICBibG9jaygpOwogfQogCiAtICh2b2lkKV91cGRhdGVJbml0
aWFsV3JpdGluZ0RpcmVjdGlvbklmTmVjZXNzYXJ5CkBAIC05Nzk4LDYgKzk4MTEsMTEgQEAgc3Rh
dGljIFJldGFpblB0cjxOU0l0ZW1Qcm92aWRlcj4gY3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdl
YktpdDo6V2ViUGFnZVByb3h5JgogewogICAgIF9kYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbCA9
IGNvbnRyb2w7CiB9CisKKy0gKEJPT0wpaXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9ucworewor
ICAgIHJldHVybiBbX2RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sLmdldEF1dG9yZWxlYXNlZCgp
IGlzU2hvd2luZ1N1Z2dlc3Rpb25zXTsKK30KICNlbmRpZgogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duSU9TLmgKaW5kZXggYWZhNjFhNmE4MjY2OTg4OWYyZTMzNDEyZDRhNTE0OTFhN2Iz
NDMxMS4uMzU3NTYyNjhlYzYzNTRmYjU5MjRhNTFjY2M0MzcyZmViNmE1ZDM3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bklPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd25JT1MuaApAQCAtMzYsMTAgKzM2LDE0IEBAIE9CSkNfQ0xBU1MgV0tD
b250ZW50VmlldzsKIEBlbmQKIAogQGludGVyZmFjZSBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250
cm9sIDogTlNPYmplY3QKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlz
U2hvd2luZ1N1Z2dlc3Rpb25zOworCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJbmZvcm1hdGlv
bjooV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24mJilpbmZvcm1hdGlvbiBp
blZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3OwogLSAodm9pZCl1cGRhdGVXaXRoSW5mb3JtYXRp
b246KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uJiYpaW5mb3JtYXRpb247
CiAtICh2b2lkKWRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6KE5TSW50ZWdlcilpbmRleDsKIC0gKHZv
aWQpaW52YWxpZGF0ZTsKKwogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0
aW9uc0Ryb3Bkb3duSU9TLm1tCmluZGV4IDg0Nzc4MzczM2U4NmViM2VjZDIxN2M3OWJiNzNiYTFh
MTE1N2NkZDIuLmE1OWFjY2ZiODU5YjRlMmRmMzVjMDJjYjBiYjdjMjFmMGFiYTQ2YzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAi
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgiCiAjaW1wb3J0ICJXS0Zvcm1QZXJpcGhlcmFsLmgi
CiAjaW1wb3J0ICJXS0Zvcm1Qb3BvdmVyLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAKIHN0YXRpYyBjb25zdCBDR0Zs
b2F0IG1heFZpc2libGVTdWdnZXN0aW9ucyA9IDU7CkBAIC00NCw2ICs0NSw3IEBAIHN0YXRpYyBO
U1N0cmluZyAqIGNvbnN0IHN1Z2dlc3Rpb25DZWxsUmV1c2VJZGVudGlmaWVyID0gQCJXS0RhdGFM
aXN0U3VnZ2VzdGlvbkNlCiBAaW50ZXJmYWNlIFdLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRyb2wg
KCkKIAogQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIFdLQ29udGVudFZpZXcgKnZpZXc7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlKSBCT09MIGlzU2hvd2luZ1N1Z2dlc3Rpb25z
OwogCiAtICh2b2lkKXNob3dTdWdnZXN0aW9uc0Ryb3Bkb3duOihXZWJLaXQ6OldlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bklPUyYpZHJvcGRvd24gYWN0aXZhdGlvblR5cGU6KFdlYkNvcmU6
OkRhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2YXRpb25UeXBlOwogCkBAIC03
MSw3ICs3MywxMSBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBzdWdnZXN0aW9uQ2VsbFJldXNl
SWRlbnRpZmllciA9IEAiV0tEYXRhTGlzdFN1Z2dlc3Rpb25DZQogQGVuZAogCiAjaWYgRU5BQkxF
KElPU19GT1JNX0NPTlRST0xfUkVGUkVTSCkKLUBpbnRlcmZhY2UgV0tEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd24gOiBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sIDxVSVBvcG92ZXJQcmVz
ZW50YXRpb25Db250cm9sbGVyRGVsZWdhdGU+CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCitAaW50
ZXJmYWNlIFdLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIDogV0tEYXRhTGlzdFN1Z2dlc3Rp
b25zQ29udHJvbCA8VUlDb250ZXh0TWVudUludGVyYWN0aW9uRGVsZWdhdGU+CisjZWxzZQorQGlu
dGVyZmFjZSBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biA6IFdLRGF0YUxpc3RTdWdnZXN0
aW9uc0NvbnRyb2wKKyNlbmRpZgogQGVuZAogI2VuZGlmCiAKQEAgLTM5Nyw4ICs0MDMsMTAgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjcHJhZ21hIG1hcmsgLSBXS0RhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bgogCiBAaW1wbGVtZW50YXRpb24gV0tEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd24gewotICAgIFJldGFpblB0cjxXS0RhdGFMaXN0U3VnZ2VzdGlvbnNWaWV3
Q29udHJvbGxlcj4gX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXI7Ci0gICAgUmV0YWluUHRyPE5T
T2JqZWN0PiBfa2V5Ym9hcmREaXNtaXNzYWxPYnNlcnZlcjsKKyNpZiBVU0UoVUlDT05URVhUTUVO
VSkKKyAgICBSZXRhaW5QdHI8TlNBcnJheTxVSU1lbnVFbGVtZW50ICo+PiBfc3VnZ2VzdGlvbnNN
ZW51RWxlbWVudHM7CisgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX3N1
Z2dlc3Rpb25zQ29udGV4dE1lbnVJbnRlcmFjdGlvbjsKKyNlbmRpZgogfQogCiAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhJbmZvcm1hdGlvbjooV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uSW5m
b3JtYXRpb24mJilpbmZvcm1hdGlvbiBpblZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3CkBAIC00
MjUsMjMgKzQzMywxNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLSAo
dm9pZClpbnZhbGlkYXRlCiB7Ci0gICAgW1tfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlciBwcmVz
ZW50aW5nVmlld0NvbnRyb2xsZXJdIGRpc21pc3NWaWV3Q29udHJvbGxlckFuaW1hdGVkOk5PIGNv
bXBsZXRpb246bmlsXTsKLSAgICBbX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgc2V0Q29udHJv
bDpuaWxdOworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIFtzZWxmIF9yZW1vdmVDb250ZXh0
TWVudUludGVyYWN0aW9uXTsKKyNlbmRpZgogfQogCiAtICh2b2lkKWRpZFNlbGVjdE9wdGlvbkF0
SW5kZXg6KE5TSW50ZWdlcilpbmRleAogewotICAgIFtbX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xs
ZXIgcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyXSBkaXNtaXNzVmlld0NvbnRyb2xsZXJBbmltYXRl
ZDpOTyBjb21wbGV0aW9uOm5pbF07CiAgICAgW3NlbGYudmlldyB1cGRhdGVGb2N1c2VkRWxlbWVu
dEZvY3VzZWRXaXRoRGF0YUxpc3REcm9wZG93bjpOT107CiAgICAgW3N1cGVyIGRpZFNlbGVjdE9w
dGlvbkF0SW5kZXg6aW5kZXhdOwogfQogCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBbc2VsZiBf
cmVtb3ZlS2V5Ym9hcmREaXNtaXNzYWxPYnNlcnZlcl07Ci0gICAgW3N1cGVyIGRlYWxsb2NdOwot
fQotCiAtICh2b2lkKV9kaXNwbGF5V2l0aEFjdGl2YXRpb25UeXBlOihXZWJDb3JlOjpEYXRhTGlz
dFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlwZSlhY3RpdmF0aW9uVHlwZQogewogICAgIGlmIChhY3Rp
dmF0aW9uVHlwZSA9PSBXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlwZTo6
SW5kaWNhdG9yQ2xpY2tlZCkKQEAgLTQ1OSw3NCArNDYxLDE0MyBAQCBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogLSAodm9pZClfc2hvd1N1Z2dlc3Rpb25zCiB7Ci0gICAgaWYg
KCFfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlcikgewotICAgICAgICBfc3VnZ2VzdGlvbnNWaWV3
Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS0RhdGFMaXN0U3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxl
ciBhbGxvY10gaW5pdFdpdGhTdHlsZTpVSVRhYmxlVmlld1N0eWxlUGxhaW5dKTsKLSAgICAgICAg
W19zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIHNldE1vZGFsUHJlc2VudGF0aW9uU3R5bGU6VUlN
b2RhbFByZXNlbnRhdGlvblBvcG92ZXJdOwotICAgICAgICBbW19zdWdnZXN0aW9uc1ZpZXdDb250
cm9sbGVyIHRhYmxlVmlld10gc2V0U2VwYXJhdG9ySW5zZXQ6VUlFZGdlSW5zZXRzWmVyb107Ci0g
ICAgICAgIFtfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlciBzZXRDb250cm9sOnNlbGZdOwotICAg
IH0KKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyAgICBbc2VsZiBfdXBkYXRlU3VnZ2VzdGlvbnNN
ZW51RWxlbWVudHNdOwogCi0gICAgW19zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIHJlbG9hZERh
dGFdOworICAgIGlmICghX3N1Z2dlc3Rpb25zQ29udGV4dE1lbnVJbnRlcmFjdGlvbikgeworICAg
ICAgICBfc3VnZ2VzdGlvbnNDb250ZXh0TWVudUludGVyYWN0aW9uID0gYWRvcHROUyhbW1VJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhEZWxlZ2F0ZTpzZWxmXSk7CisgICAg
ICAgIFtzZWxmLnZpZXcgYWRkSW50ZXJhY3Rpb246X3N1Z2dlc3Rpb25zQ29udGV4dE1lbnVJbnRl
cmFjdGlvbi5nZXQoKV07CiAKLSAgICBpZiAoW19zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIGlz
QmVpbmdQcmVzZW50ZWRdIHx8IFtbX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgdmlld0lmTG9h
ZGVkXSB3aW5kb3ddICE9IG5pbCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBbc2VsZi52aWV3
IGRvQWZ0ZXJFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50Olt3ZWFrU2VsZiA9
IFdlYWtPYmpDUHRyPFdLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPihzZWxmKV0geworICAg
ICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgICAgICBp
ZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBb
c3Ryb25nU2VsZi0+X3N1Z2dlc3Rpb25zQ29udGV4dE1lbnVJbnRlcmFjdGlvbiBfcHJlc2VudE1l
bnVBdExvY2F0aW9uOltbc3Ryb25nU2VsZiB2aWV3XSBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbl1d
OworICAgICAgICB9XTsKKyAgICB9IGVsc2UgeworICAgICAgICBbX3N1Z2dlc3Rpb25zQ29udGV4
dE1lbnVJbnRlcmFjdGlvbiB1cGRhdGVWaXNpYmxlTWVudVdpdGhCbG9jazpbc2VsZl0oVUlNZW51
ICp2aXNpYmxlTWVudSkgLT4gVUlNZW51ICogeworICAgICAgICAgICAgcmV0dXJuIFt2aXNpYmxl
TWVudSBtZW51QnlSZXBsYWNpbmdDaGlsZHJlbjpzZWxmLT5fc3VnZ2VzdGlvbnNNZW51RWxlbWVu
dHMuZ2V0KCldOworICAgICAgICB9XTsKKyAgICB9CisjZW5kaWYKK30KIAotICAgIFVJUG9wb3Zl
clByZXNlbnRhdGlvbkNvbnRyb2xsZXIgKnByZXNlbnRhdGlvbkNvbnRyb2xsZXIgPSBbX3N1Z2dl
c3Rpb25zVmlld0NvbnRyb2xsZXIgcG9wb3ZlclByZXNlbnRhdGlvbkNvbnRyb2xsZXJdOwotICAg
IHByZXNlbnRhdGlvbkNvbnRyb2xsZXIuc291cmNlVmlldyA9IHNlbGYudmlldzsKLSAgICBwcmVz
ZW50YXRpb25Db250cm9sbGVyLnNvdXJjZVJlY3QgPSBDR1JlY3RJbnRlZ3JhbChzZWxmLnZpZXcu
Zm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3QpOwotICAgIHByZXNlbnRh
dGlvbkNvbnRyb2xsZXIucGVybWl0dGVkQXJyb3dEaXJlY3Rpb25zID0gVUlQb3BvdmVyQXJyb3dE
aXJlY3Rpb25VcDsKLSAgICBwcmVzZW50YXRpb25Db250cm9sbGVyLmRlbGVnYXRlID0gc2VsZjsK
LSAgICBbcHJlc2VudGF0aW9uQ29udHJvbGxlciBfc2V0U2hvdWxkSGlkZUFycm93OllFU107Ci0g
ICAgW3ByZXNlbnRhdGlvbkNvbnRyb2xsZXIgX3NldFByZWZlcnJlZEhvcml6b250YWxBbGlnbm1l
bnQ6X1VJUG9wb3ZlclByZXNlbnRhdGlvbkhvcml6b250YWxBbGlnbm1lbnRMZWFkaW5nXTsKKy0g
KHZvaWQpX3VwZGF0ZVRleHRTdWdnZXN0aW9ucworeworICAgIHNlbGYudmlldy5kYXRhTGlzdFRl
eHRTdWdnZXN0aW9ucyA9IHNlbGYudGV4dFN1Z2dlc3Rpb25zOworfQorCisjaWYgVVNFKFVJQ09O
VEVYVE1FTlUpCiAKLSAgICAvLyBXaGVuIGEgaGFyZHdhcmUga2V5Ym9hcmQgaXMgbm90IHVzZWQs
IHRoZSBzdWdnZXN0aW9ucyBkcm9wZG93biBhbmQgc29mdHdhcmUga2V5Ym9hcmQgY2Fubm90IGJl
Ci0gICAgLy8gZGlzcGxheWVkIGF0IHRoZSBzYW1lIHRpbWUuIFdlIHdhaXQgdW50aWwgdGhlIGtl
eWJvYXJkIGlzIGRpc21pc3NlZCBwcmlvciB0byBwcmVzZW50aW5nIHRoZQotICAgIC8vIHN1Z2dl
c3Rpb25zLCB0byBhdm9pZCB0aGUga2V5Ym9hcmQncyBkaXNtaXNzYWwgcmVwb3NpdGlvbmluZyB0
aGUgZHJvcGRvd24uCistICh2b2lkKV91cGRhdGVTdWdnZXN0aW9uc01lbnVFbGVtZW50cworewor
ICAgIE5TTXV0YWJsZUFycmF5ICpzdWdnZXN0aW9ucyA9IFtOU011dGFibGVBcnJheSBhcnJheVdp
dGhDYXBhY2l0eTpzZWxmLnN1Z2dlc3Rpb25zQ291bnRdOwogCi0gICAgaWYgKFtVSUtleWJvYXJk
IGlzT25TY3JlZW5dICYmICFbVUlLZXlib2FyZCBpc0luSGFyZHdhcmVLZXlib2FyZE1vZGVdKSB7
Ci0gICAgICAgIF9rZXlib2FyZERpc21pc3NhbE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6VUlLZXlib2FyZERpZEhpZGVO
b3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpuaWwgdXNpbmdCbG9jazpbd2Vha1NlbGYgPSBX
ZWFrT2JqQ1B0cjxXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4oc2VsZildIChOU05vdGlm
aWNhdGlvbiAqKSB7CisgICAgZm9yIChOU0ludGVnZXIgaW5kZXggPSAwOyBpbmRleCA8IHNlbGYu
c3VnZ2VzdGlvbnNDb3VudDsgaW5kZXgrKykgeworICAgICAgICBVSUFjdGlvbiAqc3VnZ2VzdGlv
bkFjdGlvbiA9IFtVSUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6W3NlbGYgc3VnZ2VzdGlvbkF0SW5k
ZXg6aW5kZXhdIGltYWdlOm5pbCBpZGVudGlmaWVyOm5pbCBoYW5kbGVyOlt3ZWFrU2VsZiA9IFdl
YWtPYmpDUHRyPFdLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPihzZWxmKSwgaW5kZXhdIChV
SUFjdGlvbiAqKSB7CiAgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQo
KTsKICAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9wcmVzZW50U3VnZ2VzdGlvbnNWaWV3Q29udHJv
bGxlcl07Ci0gICAgICAgICAgICBbc3Ryb25nU2VsZiBfcmVtb3ZlS2V5Ym9hcmREaXNtaXNzYWxP
YnNlcnZlcl07CisgICAgICAgICAgICBbc3Ryb25nU2VsZiBkaWRTZWxlY3RPcHRpb25BdEluZGV4
OmluZGV4XTsKICAgICAgICAgfV07Ci0gICAgfSBlbHNlCi0gICAgICAgIFtzZWxmIF9wcmVzZW50
U3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlcl07CisKKyAgICAgICAgW3N1Z2dlc3Rpb25zIGFkZE9i
amVjdDpzdWdnZXN0aW9uQWN0aW9uXTsKKyAgICB9CisKKyAgICBfc3VnZ2VzdGlvbnNNZW51RWxl
bWVudHMgPSBhZG9wdE5TKFtzdWdnZXN0aW9ucyBjb3B5XSk7CiB9CiAKLS0gKHZvaWQpX3ByZXNl
bnRTdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyCistICh2b2lkKV9yZW1vdmVDb250ZXh0TWVudUlu
dGVyYWN0aW9uCiB7Ci0gICAgVUlWaWV3Q29udHJvbGxlciAqcHJlc2VudGluZ1ZpZXdDb250cm9s
bGVyID0gW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNl
bnRhdGlvbkZyb21WaWV3OnNlbGYudmlld107Ci0gICAgW3ByZXNlbnRpbmdWaWV3Q29udHJvbGxl
ciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6X3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIuZ2V0KCkg
YW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOworICAgIGlmICghX3N1Z2dlc3Rpb25zQ29udGV4
dE1lbnVJbnRlcmFjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgW3NlbGYudmlldyByZW1v
dmVJbnRlcmFjdGlvbjpfc3VnZ2VzdGlvbnNDb250ZXh0TWVudUludGVyYWN0aW9uLmdldCgpXTsK
KyAgICBfc3VnZ2VzdGlvbnNDb250ZXh0TWVudUludGVyYWN0aW9uID0gbmlsOworICAgIFtzZWxm
LnZpZXcgX3JlbW92ZUNvbnRleHRNZW51Vmlld0lmUG9zc2libGVdOworICAgIFtzZWxmLnZpZXcu
d2ViVmlldyBfZGlkRGlzbWlzc0NvbnRleHRNZW51XTsKIH0KIAotLSAodm9pZClfdXBkYXRlVGV4
dFN1Z2dlc3Rpb25zCistICh2b2lkKV9zdWdnZXN0aW9uc01lbnVEaWRQcmVzZW50CiB7Ci0gICAg
c2VsZi52aWV3LmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zID0gc2VsZi50ZXh0U3VnZ2VzdGlvbnM7
CisgICAgc2VsZi5pc1Nob3dpbmdTdWdnZXN0aW9ucyA9IFlFUzsKKworICAgIFtzZWxmLnZpZXcu
d2ViVmlldyBfZGlkU2hvd0NvbnRleHRNZW51XTsKIH0KIAotLSAodm9pZClfcmVtb3ZlS2V5Ym9h
cmREaXNtaXNzYWxPYnNlcnZlcgorLSAodm9pZClfc3VnZ2VzdGlvbnNNZW51RGlkRGlzbWlzcwog
ewotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2
ZXI6X2tleWJvYXJkRGlzbWlzc2FsT2JzZXJ2ZXIuZ2V0KCldOwotICAgIF9rZXlib2FyZERpc21p
c3NhbE9ic2VydmVyID0gbmlsOworICAgIHNlbGYuaXNTaG93aW5nU3VnZ2VzdGlvbnMgPSBOTzsK
KworICAgIFtzZWxmLnZpZXcgdXBkYXRlRm9jdXNlZEVsZW1lbnRGb2N1c2VkV2l0aERhdGFMaXN0
RHJvcGRvd246Tk9dOworICAgIFtzZWxmIF91cGRhdGVUZXh0U3VnZ2VzdGlvbnNdOworCisgICAg
W3NlbGYgX3JlbW92ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOwogfQogCi0jcHJhZ21hIG1hcmsg
VUlQb3BvdmVyUHJlc2VudGF0aW9uQ29udHJvbGxlckRlbGVnYXRlCistIChVSUVkZ2VJbnNldHMp
X3ByZWZlcnJlZEVkZ2VJbnNldHNGb3JTdWdnZXN0aW9uc01lbnUKK3sKKyAgICBDR1JlY3Qgd2lu
ZG93Qm91bmRzID0gc2VsZi52aWV3LnRleHRFZmZlY3RzV2luZG93LmJvdW5kczsKKyAgICBDR1Jl
Y3QgZWxlbWVudEZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IFtzZWxmLnZpZXcgY29udmVydFJl
Y3Q6c2VsZi52aWV3LmZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0IHRv
VmlldzpuaWxdOworCisgICAgaWYgKENHUmVjdEdldE1pZFkoZWxlbWVudEZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcykgPiBDR1JlY3RHZXRNaWRZKHdpbmRvd0JvdW5kcykpCisgICAgICAgIHJldHVy
biBVSUVkZ2VJbnNldHNNYWtlKDAsIDAsIENHUmVjdEdldE1heFkod2luZG93Qm91bmRzKSAtIENH
UmVjdEdldE1pblkoZWxlbWVudEZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyksIDApOwogCi0tICh2
b2lkKXByZXNlbnRhdGlvbkNvbnRyb2xsZXJEaWREaXNtaXNzOihVSVByZXNlbnRhdGlvbkNvbnRy
b2xsZXIgKilwcmVzZW50YXRpb25Db250cm9sbGVyCisgICAgLy8gVXNlIE1pblkgcmF0aGVyIHRo
YW4gTWF4WSB0byBhY2NvdW50IGZvciB0aGUgaGludCBwcmV2aWV3LgorICAgIHJldHVybiBVSUVk
Z2VJbnNldHNNYWtlKENHUmVjdEdldE1pblkoZWxlbWVudEZyYW1lSW5XaW5kb3dDb29yZGluYXRl
cyksIDAsIDAsIDApOworfQorCisjcHJhZ21hIG1hcmsgVUlDb250ZXh0TWVudUludGVyYWN0aW9u
RGVsZWdhdGUKKworLSAoVUlUYXJnZXRlZFByZXZpZXcgKiljb250ZXh0TWVudUludGVyYWN0aW9u
OihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmV2aWV3Rm9ySGlnaGxp
Z2h0aW5nTWVudVdpdGhDb25maWd1cmF0aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24KIHsKLSAgICBbc2VsZi52aWV3IHVwZGF0ZUZvY3VzZWRFbGVtZW50Rm9j
dXNlZFdpdGhEYXRhTGlzdERyb3Bkb3duOk5PXTsKLSAgICBbc2VsZiBfdXBkYXRlVGV4dFN1Z2dl
c3Rpb25zXTsKKyAgICByZXR1cm4gW3NlbGYudmlldyBfY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVu
dUhpbnRQcmV2aWV3Rm9yRm9jdXNlZEVsZW1lbnRdOworfQorCistIChfVUlDb250ZXh0TWVudVN0
eWxlICopX2NvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAq
KWludGVyYWN0aW9uIHN0eWxlRm9yTWVudVdpdGhDb25maWd1cmF0aW9uOihVSUNvbnRleHRNZW51
Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KK3sKKyAgICBfVUlDb250ZXh0TWVudVN0eWxl
ICpzdHlsZSA9IFtfVUlDb250ZXh0TWVudVN0eWxlIGRlZmF1bHRTdHlsZV07CisgICAgc3R5bGUu
cHJlZmVycmVkTGF5b3V0ID0gX1VJQ29udGV4dE1lbnVMYXlvdXRDb21wYWN0TWVudTsKKyAgICBz
dHlsZS5wcmVmZXJyZWRFZGdlSW5zZXRzID0gW3NlbGYgX3ByZWZlcnJlZEVkZ2VJbnNldHNGb3JT
dWdnZXN0aW9uc01lbnVdOworCisgICAgcmV0dXJuIHN0eWxlOworfQorCistIChVSUNvbnRleHRN
ZW51Q29uZmlndXJhdGlvbiAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjoo
Q0dQb2ludClsb2NhdGlvbgoreworICAgIFVJQ29udGV4dE1lbnVBY3Rpb25Qcm92aWRlciBhY3Rp
b25NZW51UHJvdmlkZXIgPSBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0RhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bj4oc2VsZildIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKikgLT4gVUlN
ZW51ICogeworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAg
ICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0dXJuIG5pbDsKKworICAgICAgICBy
ZXR1cm4gW1VJTWVudSBtZW51V2l0aFRpdGxlOkAiIiBjaGlsZHJlbjpzdHJvbmdTZWxmLT5fc3Vn
Z2VzdGlvbnNNZW51RWxlbWVudHMuZ2V0KCldOworICAgIH07CisKKyAgICByZXR1cm4gW1VJQ29u
dGV4dE1lbnVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb25XaXRoSWRlbnRpZmllcjpuaWwgcHJl
dmlld1Byb3ZpZGVyOm5pbCBhY3Rpb25Qcm92aWRlcjphY3Rpb25NZW51UHJvdmlkZXJdOwogfQog
Ci0tIChVSU1vZGFsUHJlc2VudGF0aW9uU3R5bGUpYWRhcHRpdmVQcmVzZW50YXRpb25TdHlsZUZv
clByZXNlbnRhdGlvbkNvbnRyb2xsZXI6KFVJUHJlc2VudGF0aW9uQ29udHJvbGxlciAqKWNvbnRy
b2xsZXIgdHJhaXRDb2xsZWN0aW9uOihVSVRyYWl0Q29sbGVjdGlvbiAqKXRyYWl0Q29sbGVjdGlv
bgorLSAodm9pZCljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rp
b24gKilpbnRlcmFjdGlvbiB3aWxsRGlzcGxheU1lbnVGb3JDb25maWd1cmF0aW9uOihVSUNvbnRl
eHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gYW5pbWF0b3I6KGlkIDxVSUNvbnRl
eHRNZW51SW50ZXJhY3Rpb25BbmltYXRpbmc+KWFuaW1hdG9yCiB7Ci0gICAgLy8gRm9yY2VzIGEg
cG9wb3ZlciBwcmVzZW50YXRpb24uCi0gICAgcmV0dXJuIFVJTW9kYWxQcmVzZW50YXRpb25Ob25l
OworICAgIFthbmltYXRvciBhZGRDb21wbGV0aW9uOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdL
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPihzZWxmKV0geworICAgICAgICBhdXRvIHN0cm9u
Z1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKHN0cm9uZ1NlbGYpCisgICAgICAg
ICAgICBbc3Ryb25nU2VsZiBfc3VnZ2VzdGlvbnNNZW51RGlkUHJlc2VudF07CisgICAgfV07CiB9
CiAKKy0gKHZvaWQpY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0
aW9uICopaW50ZXJhY3Rpb24gd2lsbEVuZEZvckNvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVD
b25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBhbmltYXRvcjooaWQgPFVJQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbkFuaW1hdGluZz4pYW5pbWF0b3IKK3sKKyAgICBbYW5pbWF0b3IgYWRkQ29tcGxl
dGlvbjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bj4oc2VsZildIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7Cisg
ICAgICAgIGlmIChzdHJvbmdTZWxmKQorICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX3N1Z2dlc3Rp
b25zTWVudURpZERpc21pc3NdOworICAgIH1dOworfQorCisjZW5kaWYgLy8gVVNFKFVJQ09OVEVY
VE1FTlUpCisKIEBlbmQKIAogI2VuZGlmIC8vIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJF
U0gpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NzE1N2RjOTFjZDJjMjUxNzA4NWJmM2Y0YjA2YTU0OTdiNmY5MmMwZC4uODZlNTI2ZmUwYzY3ODZm
NmRhODYzNzg2NjllZDU1YzQ4YTkzOGI3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA0LTA3ICBBZGl0eWEg
S2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtGQ1JdIFVzZSBj
b250ZXh0IG1lbnVzIGZvciB0ZXh0IGlucHV0IGRhdGFsaXN0IGRyb3Bkb3ducworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0Mjg3CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NjM1MTMxNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVySU9TOjppc1Nob3dpbmdE
YXRhTGlzdFN1Z2dlc3Rpb25zIGNvbnN0KToKKworICAgICAgICBVc2UgdGhlIGV4cG9zZWQgaW5m
b3JtYXRpb24gZnJvbSB0aGUgd2VidmlldyB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUKKyAgICAg
ICAgZGF0YWxpc3Qgc3VnZ2VzdGlvbnMgYXJlIHZpc2libGUsIHJhdGhlciB0aGFuIHRyYXZlcnNp
bmcgdGhlIHZpZXcKKyAgICAgICAgaGllcmFyY2h5LgorCiAyMDIxLTA0LTA2ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFUrMDU4MSBh
bmQgVSswNTg1IHRvIGxpc3Qgb2YgQXJtZW5pYW4gY2hhcmFjdGVycyB0aGF0IGxvb2sgbGlrZSBM
YXRpbiBjaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9V
SVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNj
cmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggNmQzNWIyMmNiZTkzYTYxNzJhZGU2MjhmYzNiYjlm
NzU3MjNhMGI3Zi4uYmI0ZjE0ZDlhOTRlNmUyN2Q0Zjc3MmM2ZmVhZTBiMWU0ODgyNTlmYiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklP
Uy5tbQpAQCAtMTExNSwxMiArMTExNSw4IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjph
Y3RpdmF0ZURhdGFMaXN0U3VnZ2VzdGlvbih1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZVJlCiBib29s
IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9ucygpIGNv
bnN0CiB7CiAjaWYgRU5BQkxFKElPU19GT1JNX0NPTlRST0xfUkVGUkVTSCkKLSAgICBVSVZpZXdD
b250cm9sbGVyICpwcmVzZW50ZWRWaWV3Q29udHJvbGxlciA9IFtVSVZpZXdDb250cm9sbGVyIF92
aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzp3ZWJWaWV3KCld
OwotICAgIENsYXNzIHN1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXJDbGFzcyA9IE5TQ2xhc3NGcm9t
U3RyaW5nKEAiV0tEYXRhTGlzdFN1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIiKTsKLSAgICBpZiAo
W3ByZXNlbnRlZFZpZXdDb250cm9sbGVyIGlzS2luZE9mQ2xhc3M6c3VnZ2VzdGlvbnNWaWV3Q29u
dHJvbGxlckNsYXNzXSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLQorICAgIHJldHVy
biBbd2ViVmlldygpIF9pc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zXTsKKyNlbHNlCiAgICAg
Q2xhc3MgcmVtb3RlS2V5Ym9hcmRXaW5kb3dDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiVUlS
ZW1vdGVLZXlib2FyZFdpbmRvdyIpOwogICAgIENsYXNzIHN1Z2dlc3Rpb25zUGlja2VyVmlld0Ns
YXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJXS0RhdGFMaXN0U3VnZ2VzdGlvbnNQaWNrZXJWaWV3
Iik7CiAgICAgVUlXaW5kb3cgKnJlbW90ZUlucHV0SG9zdGluZ1dpbmRvdyA9IG5pbDsKQEAgLTEx
NDEsNiArMTEzNyw3IEBAIGJvb2wgVUlTY3JpcHRDb250cm9sbGVySU9TOjppc1Nob3dpbmdEYXRh
TGlzdFN1Z2dlc3Rpb25zKCkgY29uc3QKICAgICAgICAgKnN0b3AgPSBZRVM7CiAgICAgfSk7CiAg
ICAgcmV0dXJuIGZvdW5kRGF0YUxpc3RTdWdnZXN0aW9uc1BpY2tlclZpZXc7CisjZW5kaWYKIH0K
IAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnNldFNlbGVjdGVkQ29sb3JGb3JDb2xvclBp
Y2tlcihkb3VibGUgcmVkLCBkb3VibGUgZ3JlZW4sIGRvdWJsZSBibHVlKQo=
</data>
<flag name="review"
          id="445364"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425580</attachid>
            <date>2021-04-08 20:32:29 -0700</date>
            <delta_ts>2021-04-09 06:25:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224287-20210408233228.patch</filename>
            <type>text/plain</type>
            <size>25145</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRhMGVkMTYzYTllMjZmNzY1
MzAyZTk2N2U2ZjBhZDAxNDhjYWMwZDUuLjI2ZjMwMTAxNGVkMDZiZTA4MTQ1YWU2ZjQ4NTA3ZDYy
ODVkNDczMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMDQtMDcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW0ZDUl0gVXNlIGNv
bnRleHQgbWVudXMgZm9yIHRleHQgaW5wdXQgZGF0YWxpc3QgZHJvcGRvd25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyODcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc2MzUxMzE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2ll
aC4KKworICAgICAgICBVc2UgY29udGV4dCBtZW51cyByYXRoZXIgdGhhbiBwb3BvdmVycyB0byBw
cmVzZW50IHN1Z2dlc3RlZCB2YWx1ZXMgZm9yCisgICAgICAgIHRleHQgaW5wdXRzIHdpdGggYW4g
YXNzb2NpYXRlZCBkYXRhbGlzdCBlbGVtZW50LgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL2lv
cy9VSUtpdFNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZh
dGVGb3JUZXN0aW5nSU9TLmg6CisKKyAgICAgICAgRXhwb3NlIF9pc1Nob3dpbmdEYXRhbGlzdFN1
Z2dlc3Rpb25zIGZvciB0ZXN0aW5nLiBQcmV2aW91c2x5LCB0aGUgdGVzdAorICAgICAgICBydW5u
ZXIgdHJhdmVyc2VkIHRoZSB2aWV3IGhpZXJhcmNoeSBpbiBvcmRlciB0byBkZXRlcm1pbmUgd2hl
dGhlciB0aGUKKyAgICAgICAgc3VnZ2VzdGlvbnMgd2VyZSB2aXNpYmxlLiBIb3dldmVyLCB0aGF0
IGFwcHJvYWNoIGlzIG5vdCByZWxpYWJsZSBzaW5jZQorICAgICAgICB3ZSBubyBsb25nZXIgb3du
IHRoZSBwcmVzZW50ZWQgdmlldywgYW5kIFVJS2l0IGNvdWxkIGNoYW5nZSB0aGUKKyAgICAgICAg
aW1wbGVtZW50YXRpb24gZGV0YWlscyBvZiBjb250ZXh0IG1lbnVzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9pc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zXSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBk
b0FmdGVyRWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzaW5nRWxlbWVudDpdKToKKworICAgICAg
ICBBZGQgYSBtZWNoYW5pc20gdG8gcGVyZm9ybSBhY3Rpb25zIGFmdGVyIGFuIGVkaXRvciBzdGF0
ZSB1cGRhdGUgd2hlbgorICAgICAgICBmb2N1c2luZyBhbiBlbGVtZW50LiBJZiBhbiB1cGRhdGUg
aXMgbm90IGV4cGVjdGVkLCBydW4gdGhlIGJsb2NrCisgICAgICAgIGltbWVkaWF0ZWx5LgorCisg
ICAgICAgIFNlZSBiZWxvdyBmb3IgZGV0YWlscyBvbiB3aHkgdGhpcyBpcyBuZWNlc3NhcnkuCisK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkVXBkYXRlRWRpdG9yU3RhdGVdKToKKworICAg
ICAgICBSdW4gYW55IHBlbmRpbmcgYmxvY2tzIHRoYXQgd2VyZSBhd2FpdGluZyBhbiBlZGl0b3Ig
c3RhdGUgdXBkYXRlLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaXNTaG93aW5nRGF0YUxp
c3RTdWdnZXN0aW9uc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlz
dFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW06CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0
aW9uc0Ryb3Bkb3duIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd24gZGlkU2VsZWN0T3B0aW9uQXRJbmRleDpdKToKKyAgICAgICAgKC1bV0tEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gX3Nob3dTdWdnZXN0aW9uc10pOgorCisgICAgICAgIFBy
ZXNlbnQgYSBjb250ZXh0IG1lbnUgZGlzcGxheWluZyB0aGUgc3VnZ2VzdGlvbnMgaWYgb25lIGlz
IG5vdCBhbHJlYWR5CisgICAgICAgIHByZXNlbnRlZC4KKworICAgICAgICBOb3RlIHRoYXQgZm9j
dXNpbmcgdGV4dCBmaWVsZHMgY2FuIHJlc3VsdCBpbiBhdXRvbWF0aWMgem9vbWluZyBvZiB0aGUK
KyAgICAgICAgd2Vidmlldy4gVGhpcyB6b29taW5nIG9jY3VycyBhZnRlciBhbiBlZGl0b3Igc3Rh
dGUgdXBkYXRlIGZvciBmb2N1c2VkCisgICAgICAgIGVsZW1lbnRzLiBUaGUgcHJlc2VudGF0aW9u
IG9mIHRoZSBjb250ZXh0IG1lbnUgaXMgZGVmZXJyZWQgdG8gcnVuCisgICAgICAgIGFmdGVyIGFu
IGVkaXRvciBzdGF0ZSB1cGRhdGUgdG8gZW5zdXJlIGFueSB6b29taW5nIG9jY3VycyBiZWZvcmUK
KyAgICAgICAgc2hvd2luZyB0aGUgbWVudS4gV2l0aG91dCB0aGlzIGRlZmVycmVkIHByZXNlbnRh
dGlvbiBtZWNoYW5pc20sIHRoZQorICAgICAgICBjb250ZXh0IG1lbnUgY2FuIGJlIHByZXNlbnRl
ZCBiZWZvcmUgdGhlIHN0YXRlIHVwZGF0ZSwgcGFydGlhbGx5CisgICAgICAgIG9ic2N1cmluZyB0
aGUgd2VidmlldyBhbmQgcmVzdWx0aW5nIGluIGFuIGluY29ycmVjdCB6b29tIG9uY2UgdGhlCisg
ICAgICAgIHVwZGF0ZSBvY2N1cnMuCisKKyAgICAgICAgSWYgYSBtZW51IGlzIGFscmVhZHkgcHJl
c2VudGVkLCB1c2UgYHVwZGF0ZVZpc2libGVNZW51V2l0aEJsb2NrOmAgdG8KKyAgICAgICAgdXBk
YXRlIHRoZSBjb250ZW50cyBvZiB0aGUgbWVudS4KKworICAgICAgICAoLVtXS0RhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93biBfdXBkYXRlVGV4dFN1Z2dlc3Rpb25zXSk6CisgICAgICAgICgtW1dL
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIF91cGRhdGVTdWdnZXN0aW9uc01lbnVFbGVtZW50
c10pOgorICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBfcmVtb3ZlQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNE
cm9wZG93biBfc3VnZ2VzdGlvbnNNZW51RGlkUHJlc2VudF0pOgorICAgICAgICAoLVtXS0RhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93biBfc3VnZ2VzdGlvbnNNZW51RGlkRGlzbWlzc10pOgorICAg
ICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBfcHJlZmVycmVkRWRnZUluc2V0
c0ZvclN1Z2dlc3Rpb25zTWVudV0pOgorCisgICAgICAgIEJ5IGRlZmF1bHQsIGNvbnRleHQgbWVu
dXMgY2FuIG9ic2N1cmUgdGhlIHByZXNlbnRpbmcgZWxlbWVudCBpZiB0aGVyZQorICAgICAgICBh
cmUgdG9vIG1hbnkgb3B0aW9ucy4gSW5zZXQgdGhlIG1lbnUgc28gdGhhdCBpdCBkb2VzIG5vdCBv
dmVybGFwIHRoZQorICAgICAgICB0ZXh0IGZpZWxkLiBQcmVzZW50IHRoZSBtZW51IGFib3ZlIHRo
ZSB0ZXh0IGZpZWxkIGlmIHRoZXJlIGlzIGxlc3MKKyAgICAgICAgc3BhY2UgdW5kZXJuZWF0aCB0
aGUgZmllbGQuCisKKyAgICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gY29u
dGV4dE1lbnVJbnRlcmFjdGlvbjpwcmV2aWV3Rm9ySGlnaGxpZ2h0aW5nTWVudVdpdGhDb25maWd1
cmF0aW9uOl0pOgorICAgICAgICAoLVtXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biBfY29u
dGV4dE1lbnVJbnRlcmFjdGlvbjpzdHlsZUZvck1lbnVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAg
ICAgICAgKC1bV0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gY29udGV4dE1lbnVJbnRlcmFj
dGlvbjpjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246XSk6CisgICAgICAgICgtW1dLRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIGNvbnRleHRNZW51SW50ZXJhY3Rpb246d2lsbERpc3Bs
YXlNZW51Rm9yQ29uZmlndXJhdGlvbjphbmltYXRvcjpdKToKKyAgICAgICAgKC1bV0tEYXRhTGlz
dFN1Z2dlc3Rpb25zRHJvcGRvd24gY29udGV4dE1lbnVJbnRlcmFjdGlvbjp3aWxsRW5kRm9yQ29u
ZmlndXJhdGlvbjphbmltYXRvcjpdKToKKwogMjAyMS0wNC0wNiAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYWRkaXRpb25hbCBwYWdlIGxvYWQgZGlh
Z25vc3RpYyBsb2dnaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5o
CmluZGV4IDg4NWQ5NDE2ZmFmZmRmNGQ4OTI5NWE4NGEyNGVjNTAyYWY5YWI2MTMuLjcyNmU3MzUz
MGNhMDZlYjAzZjk1NDc1ZTc0MDJkOTQ5MjIyNjEzNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xMjEyLDYgKzEyMTIsNyBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNVSW50ZWdlciwgX1VJQ29udGV4dE1lbnVMYXlvdXQpIHsKIAogQGludGVyZmFjZSBfVUlD
b250ZXh0TWVudVN0eWxlIDogTlNPYmplY3QgPE5TQ29weWluZz4KIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBfVUlDb250ZXh0TWVudUxheW91dCBwcmVmZXJyZWRMYXlvdXQ7CitAcHJvcGVydHkgKG5v
bmF0b21pYykgVUlFZGdlSW5zZXRzIHByZWZlcnJlZEVkZ2VJbnNldHM7CiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBoYXNJbnRlcmFjdGl2ZVByZXZpZXc7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc3Ryb25nKSBOU0FycmF5ICpwcmVmZXJyZWRCYWNrZ3JvdW5kRWZmZWN0czsKICsgKGluc3Rh
bmNldHlwZSlkZWZhdWx0U3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKaW5kZXgg
MjdlOTkxMGU1OTY2ZmEzYTY3MDc2NDAxMmQ1OTcwMzM3OTc5NmY4Ny4uZTgyNWE5MDNhYWUxNThm
ZWUzMzBkYTlhMmQwOTA0YWYzMGNjY2Y5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1Mu
aApAQCAtNTMsNiArNTMsNyBAQAogLSAoQk9PTClzZWxlY3RGb3JtQWNjZXNzb3J5SGFzQ2hlY2tl
ZEl0ZW1BdFJvdzoobG9uZylyb3dJbmRleDsKIC0gKHZvaWQpc2V0U2VsZWN0ZWRDb2xvckZvckNv
bG9yUGlja2VyOihVSUNvbG9yICopY29sb3I7CiAtICh2b2lkKV9zZWxlY3REYXRhTGlzdE9wdGlv
bjooaW50KW9wdGlvbkluZGV4OworLSAoQk9PTClfaXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9u
czsKIAogLSAoQk9PTClfbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3Q6KENHUmVjdCly
ZWN0OwogLSAodm9pZClfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OihDR1JlY3QpcmVj
dCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0
ICo+ICopKWNvbXBsZXRpb25IYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCmluZGV4IDg3MmIwYjEyNWJmMDdi
ZDVmNjY0OTU0MjgwZTk3NzRlYmU3ZjYzZWMuLjJhNzFkOTdhZWE2OGNhYTVjMjc4NGEzZjAwMTY3
OTU2YmViYzBhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3VGVzdGluZ0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KQEAgLTE3OSw2ICsxNzksMTUgQEAKICNlbmRpZgog
fQogCistIChCT09MKV9pc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zCit7CisjaWYgRU5BQkxF
KERBVEFMSVNUX0VMRU1FTlQpCisgICAgcmV0dXJuIFtfY29udGVudFZpZXcgaXNTaG93aW5nRGF0
YUxpc3RTdWdnZXN0aW9uc107CisjZWxzZQorICAgIHJldHVybiBOTzsKKyNlbmRpZgorfQorCiAt
IChOU1N0cmluZyAqKXRleHRDb250ZW50VHlwZUZvclRlc3RpbmcKIHsKICAgICByZXR1cm4gW19j
b250ZW50VmlldyB0ZXh0Q29udGVudFR5cGVGb3JUZXN0aW5nXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA5
YzViYjQ2NjM3ODZmZjg5YzIxMWY3ZmQ3ZTYwZTc2YWViNzQ3MDNmLi5lZDZhYmUxZTZhYWYyOWQz
NTAxYTNkNWE1NjNkYjEyZDdiYTZlY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zNzgsNiArMzc4LDgg
QEAgZW51bSBjbGFzcyBQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbiA6IGJvb2wgewogCiAgICAg
UmV0YWluUHRyPFdLS2V5Ym9hcmRTY3JvbGxWaWV3QW5pbWF0b3I+IF9rZXlib2FyZFNjcm9sbGlu
Z0FuaW1hdG9yOwogCisgICAgVmVjdG9yPEJsb2NrUHRyPHZvaWQoKT4+IF9hY3Rpb25zVG9QZXJm
b3JtQWZ0ZXJFZGl0b3JTdGF0ZVVwZGF0ZTsKKwogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5U
KQogICAgIFJldGFpblB0cjxVSVZpZXcgPFdLRm9ybUNvbnRyb2w+PiBfZGF0YUxpc3RUZXh0U3Vn
Z2VzdGlvbnNJbnB1dFZpZXc7CiAgICAgUmV0YWluUHRyPE5TQXJyYXk8VUlUZXh0U3VnZ2VzdGlv
biAqPj4gX2RhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zOwpAQCAtNjQyLDYgKzY0NCw4IEBAIEZPUl9F
QUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FD
VElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKWRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBk
YXRlOih2b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSlh
Y3Rpb24gZm9yUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCly
ZXF1ZXN0OwogLSAoQk9PTCllbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTooV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0OwogCistICh2b2lkKWRv
QWZ0ZXJFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50OihkaXNwYXRjaF9ibG9j
a190KWJsb2NrOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIC0gKHZvaWQpX2RpZENoYW5n
ZURyYWdJbnRlcmFjdGlvblBvbGljeTsKIC0gKHZvaWQpX2RpZFBlcmZvcm1EcmFnT3BlcmF0aW9u
OihCT09MKWhhbmRsZWQ7CkBAIC02NzgsNiArNjgyLDggQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NP
TlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklF
VykKIC0gKHZvaWQpc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOihCT09MKWVuYWJs
ZWQ7CiAKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKKy0gKFVJVmlldyAqKXRleHRFZmZlY3RzV2lu
ZG93OworCiAtIChVSVRhcmdldGVkUHJldmlldyAqKV9jcmVhdGVUYXJnZXRlZENvbnRleHRNZW51
SGludFByZXZpZXdGb3JGb2N1c2VkRWxlbWVudDsKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopX2Ny
ZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50UHJldmlld0lmUG9zc2libGU7CiAtICh2b2lkKV9y
ZW1vdmVDb250ZXh0TWVudVZpZXdJZlBvc3NpYmxlOwpAQCAtNzMyLDYgKzczOCw4IEBAIEZPUl9F
QUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FD
VElPTl9GT1JfV0VCX1ZJRVcpCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAtICh2b2lk
KV9zZWxlY3REYXRhTGlzdE9wdGlvbjooTlNJbnRlZ2VyKW9wdGlvbkluZGV4OwogLSAodm9pZClf
c2V0RGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRyb2w6KFdLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRy
b2wgKiljb250cm9sOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNT
aG93aW5nRGF0YUxpc3RTdWdnZXN0aW9uczsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TU3RyaW5nICp0ZXh0Q29udGVudFR5cGVGb3JUZXN0aW5nOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggMjYyZTg2MDk5ZTYwZGFmZjNhYzNjMzc5MmIxYzQzMjc1YjQ1OGJhMC4uYWQx
OTc2YmZhMGJkM2M0NmM1ZWIxYjgwMTA1N2UwYjA1MThlNDUyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC02NDYxLDYgKzY0NjEsMTYgQEAgc3RhdGljIEJPT0wgYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5z
TWF0Y2hPcmlnaW4oVUlQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBjb25zdAogICAgIFtVSU1lbnVD
b250cm9sbGVyLnNoYXJlZE1lbnVDb250cm9sbGVyIHNob3dNZW51RnJvbVZpZXc6c2VsZiByZWN0
Om1lbnVDb250cm9sbGVyUmVjdF07CiB9CiAKKy0gKHZvaWQpZG9BZnRlckVkaXRvclN0YXRlVXBk
YXRlQWZ0ZXJGb2N1c2luZ0VsZW1lbnQ6KGRpc3BhdGNoX2Jsb2NrX3QpYmxvY2sKK3sKKyAgICBp
ZiAoIV9wYWdlLT53YWl0aW5nRm9yUG9zdExheW91dEVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1
c2luZ0VsZW1lbnQoKSkgeworICAgICAgICBibG9jaygpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgX2FjdGlvbnNUb1BlcmZvcm1BZnRlckVkaXRvclN0YXRlVXBkYXRlLmFwcGVuZCht
YWtlQmxvY2tQdHIoYmxvY2spKTsKK30KKwogLSAodm9pZClfZGlkVXBkYXRlRWRpdG9yU3RhdGUK
IHsKICAgICBbc2VsZiBfdXBkYXRlSW5pdGlhbFdyaXRpbmdEaXJlY3Rpb25JZk5lY2Vzc2FyeV07
CkBAIC02NDcxLDYgKzY0ODEsOSBAQCBzdGF0aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRlbU9yaWdp
bnNNYXRjaE9yaWdpbihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIGNvbnN0CiAgICAgICAgIFtz
ZWxmIF96b29tVG9SZXZlYWxGb2N1c2VkRWxlbWVudF07CiAKICAgICBfdHJlYXRBc0NvbnRlbnRF
ZGl0YWJsZVVudGlsTmV4dEVkaXRvclN0YXRlVXBkYXRlID0gTk87CisKKyAgICBmb3IgKGF1dG8g
YmxvY2sgOiBzdGQ6OmV4Y2hhbmdlKF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJFZGl0b3JTdGF0ZVVw
ZGF0ZSwgeyB9KSkKKyAgICAgICAgYmxvY2soKTsKIH0KIAogLSAodm9pZClfdXBkYXRlSW5pdGlh
bFdyaXRpbmdEaXJlY3Rpb25JZk5lY2Vzc2FyeQpAQCAtOTc5MSwxMyArOTgwNCwxOCBAQCBzdGF0
aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlkZXIoY29uc3QgV2Vi
S2l0OjpXZWJQYWdlUHJveHkmCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAtICh2b2lk
KV9zZWxlY3REYXRhTGlzdE9wdGlvbjooTlNJbnRlZ2VyKW9wdGlvbkluZGV4CiB7Ci0gICAgW19k
YXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbC5nZXRBdXRvcmVsZWFzZWQoKSBkaWRTZWxlY3RPcHRp
b25BdEluZGV4Om9wdGlvbkluZGV4XTsKKyAgICBbX2RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9s
IGRpZFNlbGVjdE9wdGlvbkF0SW5kZXg6b3B0aW9uSW5kZXhdOwogfQogCiAtICh2b2lkKV9zZXRE
YXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbDooV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbCAq
KWNvbnRyb2wKIHsKICAgICBfZGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRyb2wgPSBjb250cm9sOwog
fQorCistIChCT09MKWlzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMKK3sKKyAgICByZXR1cm4g
W19kYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbCBpc1Nob3dpbmdTdWdnZXN0aW9uc107Cit9CiAj
ZW5kaWYKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oCmluZGV4IGFmYTYxYTZh
ODI2Njk4ODlmMmUzMzQxMmQ0YTUxNDkxYTdiMzQzMTEuLjM1NzU2MjY4ZWM2MzU0ZmI1OTI0YTUx
Y2NjNDM3MmZlYjZhNWQzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmgKQEAgLTM2
LDEwICszNiwxNCBAQCBPQkpDX0NMQVNTIFdLQ29udGVudFZpZXc7CiBAZW5kCiAKIEBpbnRlcmZh
Y2UgV0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbCA6IE5TT2JqZWN0CisKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1Nob3dpbmdTdWdnZXN0aW9uczsKKwogLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoSW5mb3JtYXRpb246KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlv
bkluZm9ybWF0aW9uJiYpaW5mb3JtYXRpb24gaW5WaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldzsK
IC0gKHZvaWQpdXBkYXRlV2l0aEluZm9ybWF0aW9uOihXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rp
b25JbmZvcm1hdGlvbiYmKWluZm9ybWF0aW9uOwogLSAodm9pZClkaWRTZWxlY3RPcHRpb25BdElu
ZGV4OihOU0ludGVnZXIpaW5kZXg7CiAtICh2b2lkKWludmFsaWRhdGU7CisKIEBlbmQKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbQppbmRleCA4NDc3
ODM3MzNlODZlYjNlY2QyMTdjNzliYjczYmExYTExNTdjZGQyLi45YTQ1NjM2ODkyNzZhMzk1NTUy
ZmM2MDU0NTQwNDNhMmY4OWE1NmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0K
QEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIgog
I2ltcG9ydCAiV0tGb3JtUGVyaXBoZXJhbC5oIgogI2ltcG9ydCAiV0tGb3JtUG9wb3Zlci5oIgor
I2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaCIKICNpbXBvcnQgIldlYlBhZ2VQ
cm94eS5oIgogCiBzdGF0aWMgY29uc3QgQ0dGbG9hdCBtYXhWaXNpYmxlU3VnZ2VzdGlvbnMgPSA1
OwpAQCAtNDQsNiArNDUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBzdWdnZXN0aW9uQ2Vs
bFJldXNlSWRlbnRpZmllciA9IEAiV0tEYXRhTGlzdFN1Z2dlc3Rpb25DZQogQGludGVyZmFjZSBX
S0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sICgpCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3
ZWFrKSBXS0NvbnRlbnRWaWV3ICp2aWV3OworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgaXNT
aG93aW5nU3VnZ2VzdGlvbnM7CiAKIC0gKHZvaWQpc2hvd1N1Z2dlc3Rpb25zRHJvcGRvd246KFdl
YktpdDo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TJilkcm9wZG93biBhY3RpdmF0
aW9uVHlwZTooV2ViQ29yZTo6RGF0YUxpc3RTdWdnZXN0aW9uQWN0aXZhdGlvblR5cGUpYWN0aXZh
dGlvblR5cGU7CiAKQEAgLTcxLDcgKzczLDExIEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHN1
Z2dlc3Rpb25DZWxsUmV1c2VJZGVudGlmaWVyID0gQCJXS0RhdGFMaXN0U3VnZ2VzdGlvbkNlCiBA
ZW5kCiAKICNpZiBFTkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQotQGludGVyZmFjZSBX
S0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biA6IFdLRGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRy
b2wgPFVJUG9wb3ZlclByZXNlbnRhdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZT4KKyNpZiBVU0UoVUlD
T05URVhUTUVOVSkKK0BpbnRlcmZhY2UgV0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24gOiBX
S0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sIDxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25EZWxl
Z2F0ZT4KKyNlbHNlCitAaW50ZXJmYWNlIFdLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duIDog
V0tEYXRhTGlzdFN1Z2dlc3Rpb25zQ29udHJvbAorI2VuZGlmCiBAZW5kCiAjZW5kaWYKIApAQCAt
Mzk3LDggKzQwMywxMCBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNwcmFn
bWEgbWFyayAtIFdLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duCiAKIEBpbXBsZW1lbnRhdGlv
biBXS0RhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93biB7Ci0gICAgUmV0YWluUHRyPFdLRGF0YUxp
c3RTdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyPiBfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlcjsK
LSAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IF9rZXlib2FyZERpc21pc3NhbE9ic2VydmVyOworI2lm
IFVTRShVSUNPTlRFWFRNRU5VKQorICAgIFJldGFpblB0cjxOU0FycmF5PFVJTWVudUVsZW1lbnQg
Kj4+IF9zdWdnZXN0aW9uc01lbnVFbGVtZW50czsKKyAgICBSZXRhaW5QdHI8VUlDb250ZXh0TWVu
dUludGVyYWN0aW9uPiBfc3VnZ2VzdGlvbnNDb250ZXh0TWVudUludGVyYWN0aW9uOworI2VuZGlm
CiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEluZm9ybWF0aW9uOihXZWJDb3JlOjpEYXRh
TGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbiYmKWluZm9ybWF0aW9uIGluVmlldzooV0tDb250ZW50
VmlldyAqKXZpZXcKQEAgLTQyNSwyMyArNDMzLDE3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogCiAtICh2b2lkKWludmFsaWRhdGUKIHsKLSAgICBbW19zdWdnZXN0aW9uc1Zp
ZXdDb250cm9sbGVyIHByZXNlbnRpbmdWaWV3Q29udHJvbGxlcl0gZGlzbWlzc1ZpZXdDb250cm9s
bGVyQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOwotICAgIFtfc3VnZ2VzdGlvbnNWaWV3Q29u
dHJvbGxlciBzZXRDb250cm9sOm5pbF07CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgW3Nl
bGYgX3JlbW92ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOworI2VuZGlmCiB9CiAKIC0gKHZvaWQp
ZGlkU2VsZWN0T3B0aW9uQXRJbmRleDooTlNJbnRlZ2VyKWluZGV4CiB7Ci0gICAgW1tfc3VnZ2Vz
dGlvbnNWaWV3Q29udHJvbGxlciBwcmVzZW50aW5nVmlld0NvbnRyb2xsZXJdIGRpc21pc3NWaWV3
Q29udHJvbGxlckFuaW1hdGVkOk5PIGNvbXBsZXRpb246bmlsXTsKICAgICBbc2VsZi52aWV3IHVw
ZGF0ZUZvY3VzZWRFbGVtZW50Rm9jdXNlZFdpdGhEYXRhTGlzdERyb3Bkb3duOk5PXTsKICAgICBb
c3VwZXIgZGlkU2VsZWN0T3B0aW9uQXRJbmRleDppbmRleF07CiB9CiAKLS0gKHZvaWQpZGVhbGxv
YwotewotICAgIFtzZWxmIF9yZW1vdmVLZXlib2FyZERpc21pc3NhbE9ic2VydmVyXTsKLSAgICBb
c3VwZXIgZGVhbGxvY107Ci19Ci0KIC0gKHZvaWQpX2Rpc3BsYXlXaXRoQWN0aXZhdGlvblR5cGU6
KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvbkFjdGl2YXRpb25UeXBlKWFjdGl2YXRpb25UeXBl
CiB7CiAgICAgaWYgKGFjdGl2YXRpb25UeXBlID09IFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlv
bkFjdGl2YXRpb25UeXBlOjpJbmRpY2F0b3JDbGlja2VkKQpAQCAtNDU5LDc0ICs0NjEsMTQxIEBA
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAtICh2b2lkKV9zaG93U3VnZ2Vz
dGlvbnMKIHsKLSAgICBpZiAoIV9zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyKSB7Ci0gICAgICAg
IF9zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRGF0YUxpc3RTdWdnZXN0
aW9uc1ZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFN0eWxlOlVJVGFibGVWaWV3U3R5bGVQ
bGFpbl0pOwotICAgICAgICBbX3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgc2V0TW9kYWxQcmVz
ZW50YXRpb25TdHlsZTpVSU1vZGFsUHJlc2VudGF0aW9uUG9wb3Zlcl07Ci0gICAgICAgIFtbX3N1
Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIgdGFibGVWaWV3XSBzZXRTZXBhcmF0b3JJbnNldDpVSUVk
Z2VJbnNldHNaZXJvXTsKLSAgICAgICAgW19zdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIHNldENv
bnRyb2w6c2VsZl07Ci0gICAgfQorI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIFtzZWxmIF91
cGRhdGVTdWdnZXN0aW9uc01lbnVFbGVtZW50c107CiAKLSAgICBbX3N1Z2dlc3Rpb25zVmlld0Nv
bnRyb2xsZXIgcmVsb2FkRGF0YV07CisgICAgaWYgKCFfc3VnZ2VzdGlvbnNDb250ZXh0TWVudUlu
dGVyYWN0aW9uKSB7CisgICAgICAgIF9zdWdnZXN0aW9uc0NvbnRleHRNZW51SW50ZXJhY3Rpb24g
PSBhZG9wdE5TKFtbVUlDb250ZXh0TWVudUludGVyYWN0aW9uIGFsbG9jXSBpbml0V2l0aERlbGVn
YXRlOnNlbGZdKTsKKyAgICAgICAgW3NlbGYudmlldyBhZGRJbnRlcmFjdGlvbjpfc3VnZ2VzdGlv
bnNDb250ZXh0TWVudUludGVyYWN0aW9uLmdldCgpXTsKIAotICAgIGlmIChbX3N1Z2dlc3Rpb25z
Vmlld0NvbnRyb2xsZXIgaXNCZWluZ1ByZXNlbnRlZF0gfHwgW1tfc3VnZ2VzdGlvbnNWaWV3Q29u
dHJvbGxlciB2aWV3SWZMb2FkZWRdIHdpbmRvd10gIT0gbmlsKQotICAgICAgICByZXR1cm47Cisg
ICAgICAgIFtzZWxmLnZpZXcgZG9BZnRlckVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1c2luZ0Vs
ZW1lbnQ6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d24+KHNlbGYpXSB7CisgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQo
KTsKKyAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgIFtzdHJvbmdTZWxmLT5fc3VnZ2VzdGlvbnNDb250ZXh0TWVudUludGVy
YWN0aW9uIF9wcmVzZW50TWVudUF0TG9jYXRpb246W1tzdHJvbmdTZWxmIHZpZXddIGxhc3RJbnRl
cmFjdGlvbkxvY2F0aW9uXV07CisgICAgICAgIH1dOworICAgIH0gZWxzZSB7CisgICAgICAgIFtf
c3VnZ2VzdGlvbnNDb250ZXh0TWVudUludGVyYWN0aW9uIHVwZGF0ZVZpc2libGVNZW51V2l0aEJs
b2NrOlsmXShVSU1lbnUgKnZpc2libGVNZW51KSAtPiBVSU1lbnUgKiB7CisgICAgICAgICAgICBy
ZXR1cm4gW3Zpc2libGVNZW51IG1lbnVCeVJlcGxhY2luZ0NoaWxkcmVuOl9zdWdnZXN0aW9uc01l
bnVFbGVtZW50cy5nZXQoKV07CisgICAgICAgIH1dOworICAgIH0KKyNlbmRpZgorfQogCi0gICAg
VUlQb3BvdmVyUHJlc2VudGF0aW9uQ29udHJvbGxlciAqcHJlc2VudGF0aW9uQ29udHJvbGxlciA9
IFtfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlciBwb3BvdmVyUHJlc2VudGF0aW9uQ29udHJvbGxl
cl07Ci0gICAgcHJlc2VudGF0aW9uQ29udHJvbGxlci5zb3VyY2VWaWV3ID0gc2VsZi52aWV3Owot
ICAgIHByZXNlbnRhdGlvbkNvbnRyb2xsZXIuc291cmNlUmVjdCA9IENHUmVjdEludGVncmFsKHNl
bGYudmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmludGVyYWN0aW9uUmVjdCk7Ci0gICAg
cHJlc2VudGF0aW9uQ29udHJvbGxlci5wZXJtaXR0ZWRBcnJvd0RpcmVjdGlvbnMgPSBVSVBvcG92
ZXJBcnJvd0RpcmVjdGlvblVwOwotICAgIHByZXNlbnRhdGlvbkNvbnRyb2xsZXIuZGVsZWdhdGUg
PSBzZWxmOwotICAgIFtwcmVzZW50YXRpb25Db250cm9sbGVyIF9zZXRTaG91bGRIaWRlQXJyb3c6
WUVTXTsKLSAgICBbcHJlc2VudGF0aW9uQ29udHJvbGxlciBfc2V0UHJlZmVycmVkSG9yaXpvbnRh
bEFsaWdubWVudDpfVUlQb3BvdmVyUHJlc2VudGF0aW9uSG9yaXpvbnRhbEFsaWdubWVudExlYWRp
bmddOworLSAodm9pZClfdXBkYXRlVGV4dFN1Z2dlc3Rpb25zCit7CisgICAgc2VsZi52aWV3LmRh
dGFMaXN0VGV4dFN1Z2dlc3Rpb25zID0gc2VsZi50ZXh0U3VnZ2VzdGlvbnM7Cit9CisKKyNpZiBV
U0UoVUlDT05URVhUTUVOVSkKIAotICAgIC8vIFdoZW4gYSBoYXJkd2FyZSBrZXlib2FyZCBpcyBu
b3QgdXNlZCwgdGhlIHN1Z2dlc3Rpb25zIGRyb3Bkb3duIGFuZCBzb2Z0d2FyZSBrZXlib2FyZCBj
YW5ub3QgYmUKLSAgICAvLyBkaXNwbGF5ZWQgYXQgdGhlIHNhbWUgdGltZS4gV2Ugd2FpdCB1bnRp
bCB0aGUga2V5Ym9hcmQgaXMgZGlzbWlzc2VkIHByaW9yIHRvIHByZXNlbnRpbmcgdGhlCi0gICAg
Ly8gc3VnZ2VzdGlvbnMsIHRvIGF2b2lkIHRoZSBrZXlib2FyZCdzIGRpc21pc3NhbCByZXBvc2l0
aW9uaW5nIHRoZSBkcm9wZG93bi4KKy0gKHZvaWQpX3VwZGF0ZVN1Z2dlc3Rpb25zTWVudUVsZW1l
bnRzCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKnN1Z2dlc3Rpb25zID0gW05TTXV0YWJsZUFycmF5
IGFycmF5V2l0aENhcGFjaXR5OnNlbGYuc3VnZ2VzdGlvbnNDb3VudF07CiAKLSAgICBpZiAoW1VJ
S2V5Ym9hcmQgaXNPblNjcmVlbl0gJiYgIVtVSUtleWJvYXJkIGlzSW5IYXJkd2FyZUtleWJvYXJk
TW9kZV0pIHsKLSAgICAgICAgX2tleWJvYXJkRGlzbWlzc2FsT2JzZXJ2ZXIgPSBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUtleWJvYXJk
RGlkSGlkZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOlt3ZWFr
U2VsZiA9IFdlYWtPYmpDUHRyPFdLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPihzZWxmKV0g
KE5TTm90aWZpY2F0aW9uICopIHsKKyAgICBmb3IgKE5TSW50ZWdlciBpbmRleCA9IDA7IGluZGV4
IDwgc2VsZi5zdWdnZXN0aW9uc0NvdW50OyBpbmRleCsrKSB7CisgICAgICAgIFVJQWN0aW9uICpz
dWdnZXN0aW9uQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhUaXRsZTpbc2VsZiBzdWdnZXN0
aW9uQXRJbmRleDppbmRleF0gaW1hZ2U6bmlsIGlkZW50aWZpZXI6bmlsIGhhbmRsZXI6W3dlYWtT
ZWxmID0gV2Vha09iakNQdHI8V0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+KHNlbGYpLCBp
bmRleF0gKFVJQWN0aW9uICopIHsKICAgICAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtT
ZWxmLmdldCgpOwogICAgICAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQogICAgICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX3ByZXNlbnRTdWdnZXN0aW9uc1Zp
ZXdDb250cm9sbGVyXTsKLSAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9yZW1vdmVLZXlib2FyZERp
c21pc3NhbE9ic2VydmVyXTsKKyAgICAgICAgICAgIFtzdHJvbmdTZWxmIGRpZFNlbGVjdE9wdGlv
bkF0SW5kZXg6aW5kZXhdOwogICAgICAgICB9XTsKLSAgICB9IGVsc2UKLSAgICAgICAgW3NlbGYg
X3ByZXNlbnRTdWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyXTsKKworICAgICAgICBbc3VnZ2VzdGlv
bnMgYWRkT2JqZWN0OnN1Z2dlc3Rpb25BY3Rpb25dOworICAgIH0KKworICAgIF9zdWdnZXN0aW9u
c01lbnVFbGVtZW50cyA9IGFkb3B0TlMoW3N1Z2dlc3Rpb25zIGNvcHldKTsKIH0KIAotLSAodm9p
ZClfcHJlc2VudFN1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIKKy0gKHZvaWQpX3JlbW92ZUNvbnRl
eHRNZW51SW50ZXJhY3Rpb24KIHsKLSAgICBVSVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmll
d0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2Ny
ZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6c2VsZi52aWV3XTsKLSAgICBbcHJlc2VudGluZ1ZpZXdD
b250cm9sbGVyIHByZXNlbnRWaWV3Q29udHJvbGxlcjpfc3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxl
ci5nZXQoKSBhbmltYXRlZDpOTyBjb21wbGV0aW9uOm5pbF07CisgICAgaWYgKCFfc3VnZ2VzdGlv
bnNDb250ZXh0TWVudUludGVyYWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBbc2VsZi52
aWV3IHJlbW92ZUludGVyYWN0aW9uOl9zdWdnZXN0aW9uc0NvbnRleHRNZW51SW50ZXJhY3Rpb24u
Z2V0KCldOworICAgIF9zdWdnZXN0aW9uc0NvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBuaWw7Cisg
ICAgW3NlbGYudmlldyBfcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZV07CisgICAgW3Nl
bGYudmlldy53ZWJWaWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdOwogfQogCi0tICh2b2lkKV91
cGRhdGVUZXh0U3VnZ2VzdGlvbnMKKy0gKHZvaWQpX3N1Z2dlc3Rpb25zTWVudURpZFByZXNlbnQK
IHsKLSAgICBzZWxmLnZpZXcuZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnMgPSBzZWxmLnRleHRTdWdn
ZXN0aW9uczsKKyAgICBzZWxmLmlzU2hvd2luZ1N1Z2dlc3Rpb25zID0gWUVTOworCisgICAgW3Nl
bGYudmlldy53ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdOwogfQogCi0tICh2b2lkKV9yZW1v
dmVLZXlib2FyZERpc21pc3NhbE9ic2VydmVyCistICh2b2lkKV9zdWdnZXN0aW9uc01lbnVEaWRE
aXNtaXNzCiB7Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjpfa2V5Ym9hcmREaXNtaXNzYWxPYnNlcnZlci5nZXQoKV07Ci0gICAgX2tleWJv
YXJkRGlzbWlzc2FsT2JzZXJ2ZXIgPSBuaWw7CisgICAgc2VsZi5pc1Nob3dpbmdTdWdnZXN0aW9u
cyA9IE5POworCisgICAgW3NlbGYudmlldyB1cGRhdGVGb2N1c2VkRWxlbWVudEZvY3VzZWRXaXRo
RGF0YUxpc3REcm9wZG93bjpOT107CisgICAgW3NlbGYgX3VwZGF0ZVRleHRTdWdnZXN0aW9uc107
CisKKyAgICBbc2VsZiBfcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CiB9CiAKLSNwcmFn
bWEgbWFyayBVSVBvcG92ZXJQcmVzZW50YXRpb25Db250cm9sbGVyRGVsZWdhdGUKKy0gKFVJRWRn
ZUluc2V0cylfcHJlZmVycmVkRWRnZUluc2V0c0ZvclN1Z2dlc3Rpb25zTWVudQoreworICAgIENH
UmVjdCB3aW5kb3dCb3VuZHMgPSBzZWxmLnZpZXcudGV4dEVmZmVjdHNXaW5kb3cuYm91bmRzOwor
ICAgIENHUmVjdCBlbGVtZW50RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gW3NlbGYudmlldyBj
b252ZXJ0UmVjdDpzZWxmLnZpZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnRlcmFjdGlv
blJlY3QgdG9WaWV3Om5pbF07CisKKyAgICBpZiAoQ0dSZWN0R2V0TWlkWShlbGVtZW50RnJhbWVJ
bldpbmRvd0Nvb3JkaW5hdGVzKSA+IENHUmVjdEdldE1pZFkod2luZG93Qm91bmRzKSkKKyAgICAg
ICAgcmV0dXJuIFVJRWRnZUluc2V0c01ha2UoMCwgMCwgQ0dSZWN0R2V0TWF4WSh3aW5kb3dCb3Vu
ZHMpIC0gQ0dSZWN0R2V0TWluWShlbGVtZW50RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKSwgMCk7
CiAKLS0gKHZvaWQpcHJlc2VudGF0aW9uQ29udHJvbGxlckRpZERpc21pc3M6KFVJUHJlc2VudGF0
aW9uQ29udHJvbGxlciAqKXByZXNlbnRhdGlvbkNvbnRyb2xsZXIKKyAgICAvLyBVc2UgTWluWSBy
YXRoZXIgdGhhbiBNYXhZIHRvIGFjY291bnQgZm9yIHRoZSBoaW50IHByZXZpZXcuCisgICAgcmV0
dXJuIFVJRWRnZUluc2V0c01ha2UoQ0dSZWN0R2V0TWluWShlbGVtZW50RnJhbWVJbldpbmRvd0Nv
b3JkaW5hdGVzKSwgMCwgMCwgMCk7Cit9CisKKyNwcmFnbWEgbWFyayBVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb25EZWxlZ2F0ZQorCistIChVSVRhcmdldGVkUHJldmlldyAqKWNvbnRleHRNZW51SW50
ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHByZXZpZXdG
b3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1
cmF0aW9uICopY29uZmlndXJhdGlvbgogewotICAgIFtzZWxmLnZpZXcgdXBkYXRlRm9jdXNlZEVs
ZW1lbnRGb2N1c2VkV2l0aERhdGFMaXN0RHJvcGRvd246Tk9dOwotICAgIFtzZWxmIF91cGRhdGVU
ZXh0U3VnZ2VzdGlvbnNdOworICAgIHJldHVybiBbc2VsZi52aWV3IF9jcmVhdGVUYXJnZXRlZENv
bnRleHRNZW51SGludFByZXZpZXdGb3JGb2N1c2VkRWxlbWVudF07Cit9CisKKy0gKF9VSUNvbnRl
eHRNZW51U3R5bGUgKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVy
YWN0aW9uICopaW50ZXJhY3Rpb24gc3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29u
dGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgoreworICAgIF9VSUNvbnRleHRN
ZW51U3R5bGUgKnN0eWxlID0gW19VSUNvbnRleHRNZW51U3R5bGUgZGVmYXVsdFN0eWxlXTsKKyAg
ICBzdHlsZS5wcmVmZXJyZWRMYXlvdXQgPSBfVUlDb250ZXh0TWVudUxheW91dENvbXBhY3RNZW51
OworICAgIHN0eWxlLnByZWZlcnJlZEVkZ2VJbnNldHMgPSBbc2VsZiBfcHJlZmVycmVkRWRnZUlu
c2V0c0ZvclN1Z2dlc3Rpb25zTWVudV07CisKKyAgICByZXR1cm4gc3R5bGU7Cit9CisKKy0gKFVJ
Q29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250
ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXJhdGlvbkZvck1lbnVBdExv
Y2F0aW9uOihDR1BvaW50KWxvY2F0aW9uCit7CisgICAgVUlDb250ZXh0TWVudUFjdGlvblByb3Zp
ZGVyIGFjdGlvbk1lbnVQcm92aWRlciA9IFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duPihzZWxmKV0gKE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAq
KSAtPiBVSU1lbnUgKiB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgp
OworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm4gbmlsOworCisg
ICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRoVGl0bGU6QCIiIGNoaWxkcmVuOnN0cm9uZ1Nl
bGYtPl9zdWdnZXN0aW9uc01lbnVFbGVtZW50cy5nZXQoKV07CisgICAgfTsKKworICAgIHJldHVy
biBbVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbldpdGhJZGVudGlmaWVy
Om5pbCBwcmV2aWV3UHJvdmlkZXI6bmlsIGFjdGlvblByb3ZpZGVyOmFjdGlvbk1lbnVQcm92aWRl
cl07CiB9CiAKLS0gKFVJTW9kYWxQcmVzZW50YXRpb25TdHlsZSlhZGFwdGl2ZVByZXNlbnRhdGlv
blN0eWxlRm9yUHJlc2VudGF0aW9uQ29udHJvbGxlcjooVUlQcmVzZW50YXRpb25Db250cm9sbGVy
ICopY29udHJvbGxlciB0cmFpdENvbGxlY3Rpb246KFVJVHJhaXRDb2xsZWN0aW9uICopdHJhaXRD
b2xsZWN0aW9uCistICh2b2lkKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHdpbGxEaXNwbGF5TWVudUZvckNvbmZpZ3VyYXRpb246
KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBhbmltYXRvcjooaWQg
PFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbkFuaW1hdGluZz4pYW5pbWF0b3IKIHsKLSAgICAvLyBG
b3JjZXMgYSBwb3BvdmVyIHByZXNlbnRhdGlvbi4KLSAgICByZXR1cm4gVUlNb2RhbFByZXNlbnRh
dGlvbk5vbmU7CisgICAgW2FuaW1hdG9yIGFkZENvbXBsZXRpb246W3dlYWtTZWxmID0gV2Vha09i
akNQdHI8V0tEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+KHNlbGYpXSB7CisgICAgICAgIGlm
IChhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKSkKKyAgICAgICAgICAgIFtzdHJvbmdT
ZWxmIF9zdWdnZXN0aW9uc01lbnVEaWRQcmVzZW50XTsKKyAgICB9XTsKIH0KIAorLSAodm9pZClj
b250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFj
dGlvbiB3aWxsRW5kRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24g
Kiljb25maWd1cmF0aW9uIGFuaW1hdG9yOihpZCA8VUlDb250ZXh0TWVudUludGVyYWN0aW9uQW5p
bWF0aW5nPilhbmltYXRvcgoreworICAgIFthbmltYXRvciBhZGRDb21wbGV0aW9uOlt3ZWFrU2Vs
ZiA9IFdlYWtPYmpDUHRyPFdLRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPihzZWxmKV0gewor
ICAgICAgICBpZiAoYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkpCisgICAgICAgICAg
ICBbc3Ryb25nU2VsZiBfc3VnZ2VzdGlvbnNNZW51RGlkRGlzbWlzc107CisgICAgfV07Cit9CisK
KyNlbmRpZiAvLyBVU0UoVUlDT05URVhUTUVOVSkKKwogQGVuZAogCiAjZW5kaWYgLy8gRU5BQkxF
KElPU19GT1JNX0NPTlRST0xfUkVGUkVTSCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MTU3ZGM5MWNkMmMyNTE3MDg1YmYzZjRiMDZhNTQ5N2I2
ZjkyYzBkLi5mOTA3YTRhZTY5NWYyNWUyOTA4M2M0OWQyNWVhNjFjYWI4MDljZGRjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMDQtMDcgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisg
ICAgICAgIFtpT1NdW0ZDUl0gVXNlIGNvbnRleHQgbWVudXMgZm9yIHRleHQgaW5wdXQgZGF0YWxp
c3QgZHJvcGRvd25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjQyODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MzUxMzE3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
aW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250
cm9sbGVySU9TOjppc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zIGNvbnN0KToKKworICAgICAg
ICBVc2UgdGhlIGV4cG9zZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgd2VidmlldyB0byBkZXRlcm1p
bmUgd2hldGhlciB0aGUKKyAgICAgICAgZGF0YWxpc3Qgc3VnZ2VzdGlvbnMgYXJlIHZpc2libGUs
IHJhdGhlciB0aGFuIHRyYXZlcnNpbmcgdGhlIHZpZXcKKyAgICAgICAgaGllcmFyY2h5LgorCiAy
MDIxLTA0LTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWRkIFUrMDU4MSBhbmQgVSswNTg1IHRvIGxpc3Qgb2YgQXJtZW5pYW4gY2hhcmFj
dGVycyB0aGF0IGxvb2sgbGlrZSBMYXRpbiBjaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggNmQzNWIyMmNi
ZTkzYTYxNzJhZGU2MjhmYzNiYjlmNzU3MjNhMGI3Zi4uYmI0ZjE0ZDlhOTRlNmUyN2Q0Zjc3MmM2
ZmVhZTBiMWU0ODgyNTlmYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3Mv
VUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9z
L1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtMTExNSwxMiArMTExNSw4IEBAIHZvaWQgVUlT
Y3JpcHRDb250cm9sbGVySU9TOjphY3RpdmF0ZURhdGFMaXN0U3VnZ2VzdGlvbih1bnNpZ25lZCBp
bmRleCwgSlNWYWx1ZVJlCiBib29sIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNTaG93aW5nRGF0
YUxpc3RTdWdnZXN0aW9ucygpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKElPU19GT1JNX0NPTlRST0xf
UkVGUkVTSCkKLSAgICBVSVZpZXdDb250cm9sbGVyICpwcmVzZW50ZWRWaWV3Q29udHJvbGxlciA9
IFtVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRp
b25Gcm9tVmlldzp3ZWJWaWV3KCldOwotICAgIENsYXNzIHN1Z2dlc3Rpb25zVmlld0NvbnRyb2xs
ZXJDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tEYXRhTGlzdFN1Z2dlc3Rpb25zVmlld0Nv
bnRyb2xsZXIiKTsKLSAgICBpZiAoW3ByZXNlbnRlZFZpZXdDb250cm9sbGVyIGlzS2luZE9mQ2xh
c3M6c3VnZ2VzdGlvbnNWaWV3Q29udHJvbGxlckNsYXNzXSkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0jZW5kaWYKLQorICAgIHJldHVybiBbd2ViVmlldygpIF9pc1Nob3dpbmdEYXRhTGlzdFN1Z2dl
c3Rpb25zXTsKKyNlbHNlCiAgICAgQ2xhc3MgcmVtb3RlS2V5Ym9hcmRXaW5kb3dDbGFzcyA9IE5T
Q2xhc3NGcm9tU3RyaW5nKEAiVUlSZW1vdGVLZXlib2FyZFdpbmRvdyIpOwogICAgIENsYXNzIHN1
Z2dlc3Rpb25zUGlja2VyVmlld0NsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJXS0RhdGFMaXN0
U3VnZ2VzdGlvbnNQaWNrZXJWaWV3Iik7CiAgICAgVUlXaW5kb3cgKnJlbW90ZUlucHV0SG9zdGlu
Z1dpbmRvdyA9IG5pbDsKQEAgLTExNDEsNiArMTEzNyw3IEBAIGJvb2wgVUlTY3JpcHRDb250cm9s
bGVySU9TOjppc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zKCkgY29uc3QKICAgICAgICAgKnN0
b3AgPSBZRVM7CiAgICAgfSk7CiAgICAgcmV0dXJuIGZvdW5kRGF0YUxpc3RTdWdnZXN0aW9uc1Bp
Y2tlclZpZXc7CisjZW5kaWYKIH0KIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnNldFNl
bGVjdGVkQ29sb3JGb3JDb2xvclBpY2tlcihkb3VibGUgcmVkLCBkb3VibGUgZ3JlZW4sIGRvdWJs
ZSBibHVlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>