<?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>234446</bug_id>
          
          <creation_ts>2021-12-17 15:19:24 -0800</creation_ts>
          <short_desc>ModalContainerObserver should search for text in subframes</short_desc>
          <delta_ts>2022-01-04 14:00:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>234695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1825214</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-17 15:19:24 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826771</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-24 15:20:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/86897770&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826905</commentid>
    <comment_count>2</comment_count>
      <attachid>447988</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-26 12:14:14 -0800</bug_when>
    <thetext>Created attachment 447988
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827545</commentid>
    <comment_count>3</comment_count>
      <attachid>448188</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-01-02 15:18:59 -0800</bug_when>
    <thetext>Created attachment 448188
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828055</commentid>
    <comment_count>4</comment_count>
      <attachid>448188</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-04 13:08:32 -0800</bug_when>
    <thetext>Comment on attachment 448188
Rebase on trunk

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

&gt; Source/WebCore/page/ModalContainerObserver.cpp:67
&gt; -    if (!document.url().protocolIsInHTTPFamily())
&gt; +    if (!document.topDocument().url().protocolIsInHTTPFamily())

Should this check both documents? (I&apos;m not sure what the HTTP-family check is *for*, so the answer could easily be yes OR no, I&apos;m not sure)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828071</commentid>
    <comment_count>5</comment_count>
      <attachid>448188</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-01-04 13:26:37 -0800</bug_when>
    <thetext>Comment on attachment 448188
Rebase on trunk

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

Thanks for the review!

&gt;&gt; Source/WebCore/page/ModalContainerObserver.cpp:67
&gt;&gt; +    if (!document.topDocument().url().protocolIsInHTTPFamily())
&gt; 
&gt; Should this check both documents? (I&apos;m not sure what the HTTP-family check is *for*, so the answer could easily be yes OR no, I&apos;m not sure)

Good question! So I *think* the top document URL check should suffice.

As far as I understand, this check is here because the feature that this &quot;modal container observation&quot; mechanism drives is only intended to take effect when navigating to http URLs, as opposed to file:// or any custom schemes, so this basically just acts as a way to short circuit the detection logic early on in the case where the document isn&apos;t HTTP/HTTPS.

In the subframe case in particular, the...&quot;semantically interesting&quot; content of the modal container can come in the form of a data: URL on the iframe or the `srcdoc` attribute, in which case the URL will not be in the HTTP family (but we&apos;ll still need to descend into these frames for the purposes of modal container detection) — so in the case where the sub-document is non-HTTP-family, we don&apos;t want to bail early here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828091</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-04 14:00:00 -0800</bug_when>
    <thetext>Committed r287588 (245717@main): &lt;https://commits.webkit.org/245717@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448188.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447988</attachid>
            <date>2021-12-26 12:14:14 -0800</date>
            <delta_ts>2022-01-02 15:18:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234446-20211226121414.patch</filename>
            <type>text/plain</type>
            <size>17008</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFlZTVlZGNiMWY3N2Ez
ZThiMzFiMGE5MTE2NzRkMWNiYjljNDAyMS4uODgxZTlmODRjYTUxYTMzY2ZkMTkxZTRhMGU4NDQ4
Y2FlZmQ3OWY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDIxLTEyLTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1vZGFsQ29udGFp
bmVyT2JzZXJ2ZXIgc2hvdWxkIHNlYXJjaCBmb3IgdGV4dCBpbiBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ0NgorICAgICAgICBy
ZGFyOi8vODY4OTc3NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIGRldGVjdGluZyBtb2RhbCBjb250YWluZXJzIHdoZW4g
dGhlIHNlYXJjaCB0ZXJtIGlzIGVtYmVkZGVkIGluc2lkZSBhIHN1YmZyYW1lIGluIHRoZSB0b3AK
KyAgICAgICAgZG9jdW1lbnQuIFRvIGRvIHRoaXMsIHdlIG1ha2UgYSBmZXcgYWRqdXN0bWVudHMg
dG8gTW9kYWxDb250YWluZXJPYnNlcnZlciwgZGV0YWlsZWQgaW4gdGhlIGNvbW1lbnRzIGJlbG93
LiBUaGlzCisgICAgICAgIHN1cHBvcnRzIGJvdGggc2NlbmFyaW9zIGluIHdoaWNoICgxKSBhIHN1
YmZyYW1lIHRoYXQgaGFzIG5vdCB5ZXQgbG9hZGVkIGlzIGFkZGVkIHRvIHRoZSB0b3AgZG9jdW1l
bnQgYW5kIHRoZW4KKyAgICAgICAgbGF0ZXIgZ2FpbnMgb2NjdXJyZW5jZXMgb2YgdGhlIHNlYXJj
aCB0ZXJtLCBhbmQgKDIpIGEgc3ViZnJhbWUgdGhhdCBhbHJlYWR5IGNvbnRhaW5zIHRoZSBzZWFy
Y2ggdGVybSBpbiByZW5kZXJlZAorICAgICAgICB0ZXh0IGlzIG1hZGUgdmlzaWJsZSBpbnNpZGUg
dGhlIHRvcCBkb2N1bWVudC4KKworICAgICAgICBUZXN0OiBNb2RhbENvbnRhaW5lck9ic2VydmF0
aW9uLk1vZGFsQ29udGFpbmVySW5TdWJmcmFtZQorCisgICAgICAgICogcGFnZS9Nb2RhbENvbnRh
aW5lck9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2
ZXI6OmlzTmVlZGVkRm9yKToKKworICAgICAgICBJbnN0YWxsIGEgTW9kYWxDb250YWluZXJPYnNl
cnZlciBmb3IgY2hpbGQgZG9jdW1lbnRzIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXJlbnQgZG9j
dW1lbnQgYWxyZWFkeSBoYXMgYSBtb2RhbAorICAgICAgICBjb250YWluZXIgb2JzZXJ2ZXIgdGhh
dCBpcyB3YWl0aW5nIGZvciB0aGlzIGZyYW1lIHRvIGZpbmlzaCBpdHMgZmlyc3QgdmlzdWFsbHkg
bm9uLWVtcHR5IGxheW91dCAoc2VlIHRoZSBjb21tZW50CisgICAgICAgIGluIGBNb2RhbENvbnRh
aW5lck9ic2VydmVyOjp1cGRhdGVNb2RhbENvbnRhaW5lcklmTmVlZGVkKClgLCBiZWxvdykuCisK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRhaW5zTWF0Y2hpbmdUZXh0KToKKworICAgICAgICBQdWxs
IG91dCBsb2dpYyBmb3Igc2VhcmNoaW5nIGFsbCB0ZXh0IHJlbmRlcmVyIGRlc2NlbmRhbnRzIHVu
ZGVybmVhdGggYSBnaXZlbiByZW5kZXJlciBpbnRvIGEgc2VwYXJhdGUgaGVscGVyCisgICAgICAg
IGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpz
ZWFyY2hGb3JNb2RhbENvbnRhaW5lck9uQmVoYWxmT2ZGcmFtZU93bmVySWZOZWVkZWQpOgorCisg
ICAgICAgIFVzZWQgZm9yIGEgTW9kYWxDb250YWluZXJPYnNlcnZlciBpbiBhIGNoaWxkIGZyYW1l
IHRvIG5vdGlmeSB0aGUgTW9kYWxDb250YWluZXJPYnNlcnZlciBpbiB0aGUgcGFyZW50IGRvY3Vt
ZW50CisgICAgICAgIHdoZW4gdGhlIGNoaWxkIGRvY3VtZW50IGhhcyBmaW5pc2hlZCBsYXlvdXQu
IElmIHRoaXMgY2hpbGQgZG9jdW1lbnQncyBvd25lciBlbGVtZW50IGlzIG9uZSBvZiB0aGUgZWxl
bWVudHMgaW4KKyAgICAgICAgYG1fZnJhbWVPd25lcnNBbmRDb250YWluZXJzVG9TZWFyY2hBZ2Fp
bmAsIHdlIGludmFsaWRhdGUgdGhlIGNvcnJlc3BvbmRpbmcgdmlld3BvcnQtY29uc3RyYWluZWQg
Y29udGFpbmVyIHRoYXQKKyAgICAgICAgd2UndmUgcHJldmlvdXNseSBzZWFyY2hlZCAoaS5lLiBi
eSByZW1vdmluZyBpdCBmcm9tIGBtX2VsZW1lbnRzVG9JZ25vcmVXaGVuU2VhcmNoaW5nYCkgYW5k
IHJlLXNlYXJjaCB0aGUKKyAgICAgICAgY29udGFpbmVyLgorCisgICAgICAgIChXZWJDb3JlOjpN
b2RhbENvbnRhaW5lck9ic2VydmVyOjp1cGRhdGVNb2RhbENvbnRhaW5lcklmTmVlZGVkKToKKwor
ICAgICAgICBNYWtlIGEgY291cGxlIG9mIGFkanVzdG1lbnRzOgorCisgICAgICAgIC0gICAgICAg
Rm9yIG1vZGFsIGNvbnRhaW5lciBvYnNlcnZlcnMgdGhhdCBhcmUgbm90IGluIHRoZSB0b3AgZG9j
dW1lbnQ6IGRlbGVnYXRlIHRoZSBtb2RhbCBjb250YWluZXIgdXBkYXRlIG91dAorICAgICAgICAg
ICAgICAgIHRvIHRoZSBwYXJlbnQgZG9jdW1lbnQncyBtb2RhbCBjb250YWluZXIgb2JzZXJ2ZXIs
IGJ5IGNhbGxpbmcgdGhlIGhlbHBlciBtZXRob2QgYWJvdmUuCisKKyAgICAgICAgLSAgICAgICBG
b3IgbW9kYWwgY29udGFpbmVyIG9ic2VydmVycyB0aGF0IGFyZSBpbiB0aGUgdG9wIGRvY3VtZW50
OiBhZGQgbG9naWMgdG8gc2VhcmNoIGNvbnRlbnQgaW4gc3ViZnJhbWVzCisgICAgICAgICAgICAg
ICAgaW5zaWRlIG9mIHZpZXdwb3J0LWNvbnN0cmFpbmVkIGNvbnRhaW5lcnMgYXMgYSBmYWxsYmFj
ayBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgc2VhcmNoIHRlcm0gZG9lcyBub3QKKyAgICAgICAgICAg
ICAgICBhcHBlYXIgaW4gY29udGVudCBhdCB0aGUgdG9wIGRvY3VtZW50LgorCisgICAgICAgIChX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpzZXRDb250YWluZXIpOgorCisgICAgICAg
IFB1bGwgb3V0IGxvZ2ljIGZvciB0cmFja2luZyB0aGUgY3VycmVudGx5IGRldGVjdGVkIG1vZGFs
IGNvbnRhaW5lciBpbnRvIGEgc2VwYXJhdGUgaGVscGVyIG1ldGhvZCB0aGF0IHRha2VzCisgICAg
ICAgIHRoZSBtb2RhbCBjb250YWluZXIgZWxlbWVudCwgYXMgd2VsbCBhcyB0aGUgZnJhbWUgb3du
ZXIgZWxlbWVudCB3aGVyZSB3ZSBvYnNlcnZlZCB0aGUgc2VhcmNoIHRlcm0gKG9yIG51bGwgaWYK
KyAgICAgICAgdGhlIHNlYXJjaCB0ZXJtIHdhcyBvYnNlcnZlZCBpbiB0aGUgdG9wIGRvY3VtZW50
KS4KKworICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZlcjo6Y29udGFpbmVy
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmZyYW1l
T3duZXJGb3JDb250cm9scyBjb25zdCk6CisKKyAgICAgICAgUmVwbGFjZSBgbV9jb250YWluZXJg
IHdpdGggYSBgc3RkOjpwYWlyYCBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGFsIGNvbnRhaW5l
ciAoaS5lLiB3aGF0IGlzIGN1cnJlbnRseSBqdXN0CisgICAgICAgIGBtX2NvbnRhaW5lcmAsIGFz
IHdlbGwgYXMgYSB3ZWFrIHBvaW50ZXIgdG8gdGhlIGFzc29jaWF0ZWQgZnJhbWUgb3duZXIgZWxl
bWVudCB3aGVyZSB3ZSBkaXNjb3ZlcmVkIHRoZSBzZWFyY2gKKyAgICAgICAgdGVybSkuIFdlIHVz
ZSBhIGBzdGQ6OnBhaXJgIGhlcmUgYmVjYXVzZSB0aGVzZSB0d28gZWxlbWVudHMgc2hvdWxkIGFs
d2F5cyBiZSBzZXQgYW5kIGNsZWFyZWQgb3V0IGluIHRhbmRlbS4KKworICAgICAgICAoV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJPYnNlcnZlcjo6Y29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJG
aXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpyZXZlYWxN
b2RhbENvbnRhaW5lcik6CisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIGBtX2NvbnRhaW5lcmAg
d2l0aCB0aGUgYGNvbnRhaW5lcigpYCBtZXRob2QuCisKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFs
Q29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxlY3RDbGlja2FibGVFbGVtZW50cyk6CisKKyAgICAgICAg
SWYgYSBmcmFtZSBvd25lciBlbGVtZW50IGlzIHNldCwgdXNlIHRoZSBzdWJmcmFtZSdzIGNvbnRl
bnQgZG9jdW1lbnQgZWxlbWVudCBhcyB0aGUgY29udGFpbmVyIGZvciBjb2xsZWN0aW5nCisgICAg
ICAgIGNsaWNrYWJsZSBjb250cm9scyBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBhY3R1YWwgbW9kYWwg
Y29udGFpbmVyIGVsZW1lbnQgaW4gdGhlIHRvcCBkb2N1bWVudC4KKworICAgICAgICAqIHBhZ2Uv
TW9kYWxDb250YWluZXJPYnNlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWlu
ZXJPYnNlcnZlcjo6c2hvdWxkSGlkZSBjb25zdCk6CisKKyAgICAgICAgVXNlIGBjb250YWluZXIo
KWAgaW5zdGVhZCBvZiBgbV9jb250YWluZXJgLgorCiAyMDIxLTEyLTI0ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1vZGFsIGNvbnRhaW5lcnMgYXJl
IGluY29ycmVjdGx5IGRldGVjdGVkIGluIG5hdmlnYXRpb24gZWxlbWVudHMgYW5kIGZpeGVkIGRv
Y3VtZW50IGVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29u
dGFpbmVyT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9i
c2VydmVyLmNwcAppbmRleCBiNTZkNTZmZGY3MjdhZWU2NTY3ZGIxMzMyZmQyYjRjZTRlNmYzYTE3
Li5jMWEyOGMzZDVhODczOTM3MTg2MTczZDkzNjg2MTU0YzU0NmNmMzNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHAKQEAgLTU5LDE4ICs1OSwx
MyBAQCBzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhMZW5ndGhGb3JDbGlja2FibGVFbGVtZW50
VGV4dCA9IDEwMDsKIAogYm9vbCBNb2RhbENvbnRhaW5lck9ic2VydmVyOjppc05lZWRlZEZvcihj
b25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyIGRvY3VtZW50TG9hZGVyID0g
ZG9jdW1lbnQubG9hZGVyKCk7Ci0gICAgaWYgKCFkb2N1bWVudExvYWRlciB8fCBkb2N1bWVudExv
YWRlci0+bW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeSgpID09IE1vZGFsQ29udGFpbmVy
T2JzZXJ2YXRpb25Qb2xpY3k6OkRpc2FibGVkKQorICAgIFJlZlB0ciB0b3BEb2N1bWVudExvYWRl
ciA9IGRvY3VtZW50LnRvcERvY3VtZW50KCkubG9hZGVyKCk7CisgICAgaWYgKCF0b3BEb2N1bWVu
dExvYWRlciB8fCB0b3BEb2N1bWVudExvYWRlci0+bW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBv
bGljeSgpID09IE1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OkRpc2FibGVkKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRvY3VtZW50LnVybCgpLnByb3RvY29sSXNJ
bkhUVFBGYW1pbHkoKSkKKyAgICBpZiAoIWRvY3VtZW50LnRvcERvY3VtZW50KCkudXJsKCkucHJv
dG9jb2xJc0luSFRUUEZhbWlseSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IWRvY3VtZW50LmlzVG9wRG9jdW1lbnQoKSkgewotICAgICAgICAvLyBGSVhNRSAoMjM0NDQ2KTog
TmVlZCB0byBwcm9wZXJseSBzdXBwb3J0IHN1YmZyYW1lcy4KLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLQogICAgIGlmIChkb2N1bWVudC5pbkRlc2lnbk1vZGUoKSB8fCAhaXM8SFRNTERv
Y3VtZW50Pihkb2N1bWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtODIsNiArNzcs
MTEgQEAgYm9vbCBNb2RhbENvbnRhaW5lck9ic2VydmVyOjppc05lZWRlZEZvcihjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgaWYgKCFwYWdlIHx8IHBhZ2UtPmlzRWRpdGFibGUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKFJlZlB0ciBvd25lciA9IGRvY3VtZW50Lm93
bmVyRWxlbWVudCgpKSB7CisgICAgICAgIGF1dG8gb2JzZXJ2ZXIgPSBvd25lci0+ZG9jdW1lbnQo
KS5tb2RhbENvbnRhaW5lck9ic2VydmVySWZFeGlzdHMoKTsKKyAgICAgICAgcmV0dXJuIG9ic2Vy
dmVyICYmIG9ic2VydmVyLT5tX2ZyYW1lT3duZXJzQW5kQ29udGFpbmVyc1RvU2VhcmNoQWdhaW4u
Y29udGFpbnMoKm93bmVyKTsKKyAgICB9CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTQ0
LDE0ICsxNDQsNDUgQEAgc3RhdGljIGJvb2wgaXNJbnNpZGVOYXZpZ2F0aW9uRWxlbWVudChjb25z
dCBUZXh0JiB0ZXh0Tm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIGNv
bnRhaW5zTWF0Y2hpbmdUZXh0KFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcmVyLCBjb25z
dCBBdG9tU3RyaW5nJiBzZWFyY2hUZXJtKQoreworICAgIGZvciAoYXV0byYgdGV4dFJlbmRlcmVy
IDogZGVzY2VuZGFudHNPZlR5cGU8UmVuZGVyVGV4dD4ocmVuZGVyZXIpKSB7CisgICAgICAgIGlm
IChSZWZQdHIgdGV4dE5vZGUgPSB0ZXh0UmVuZGVyZXIudGV4dE5vZGUoKTsgdGV4dE5vZGUgJiYg
bWF0Y2hlc1NlYXJjaFRlcm0oKnRleHROb2RlLCBzZWFyY2hUZXJtKSkKKyAgICAgICAgICAgIHJl
dHVybiAhaXNJbnNpZGVOYXZpZ2F0aW9uRWxlbWVudCgqdGV4dE5vZGUpOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgTW9kYWxDb250YWluZXJPYnNlcnZlcjo6c2VhcmNoRm9y
TW9kYWxDb250YWluZXJPbkJlaGFsZk9mRnJhbWVPd25lcklmTmVlZGVkKEhUTUxGcmFtZU93bmVy
RWxlbWVudCYgb3duZXIpCit7CisgICAgYXV0byBjb250YWluZXJUb1NlYXJjaEFnYWluID0gbV9m
cmFtZU93bmVyc0FuZENvbnRhaW5lcnNUb1NlYXJjaEFnYWluLnRha2Uob3duZXIpOworICAgIGlm
ICghY29udGFpbmVyVG9TZWFyY2hBZ2FpbikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFt
X2VsZW1lbnRzVG9JZ25vcmVXaGVuU2VhcmNoaW5nLnJlbW92ZSgqY29udGFpbmVyVG9TZWFyY2hB
Z2FpbikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChSZWZQdHIgdmlldyA9IG93bmVyLmRv
Y3VtZW50KCkudmlldygpKQorICAgICAgICB1cGRhdGVNb2RhbENvbnRhaW5lcklmTmVlZGVkKCp2
aWV3KTsKK30KKwogdm9pZCBNb2RhbENvbnRhaW5lck9ic2VydmVyOjp1cGRhdGVNb2RhbENvbnRh
aW5lcklmTmVlZGVkKGNvbnN0IEZyYW1lVmlldyYgdmlldykKIHsKLSAgICBpZiAobV9jb250YWlu
ZXIpCisgICAgaWYgKGNvbnRhaW5lcigpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9o
YXNBdHRlbXB0ZWRUb0Z1bGZpbGxQb2xpY3kpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChS
ZWZQdHIgb3duZXIgPSB2aWV3LmZyYW1lKCkub3duZXJFbGVtZW50KCkpIHsKKyAgICAgICAgaWYg
KGF1dG8gcGFyZW50T2JzZXJ2ZXIgPSBvd25lci0+ZG9jdW1lbnQoKS5tb2RhbENvbnRhaW5lck9i
c2VydmVySWZFeGlzdHMoKSkKKyAgICAgICAgICAgIHBhcmVudE9ic2VydmVyLT5zZWFyY2hGb3JN
b2RhbENvbnRhaW5lck9uQmVoYWxmT2ZGcmFtZU93bmVySWZOZWVkZWQoKm93bmVyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghdmlldy5mcmFtZSgpLmlzTWFpbkZyYW1lKCkp
CisgICAgICAgIHJldHVybjsKKwogICAgIGlmICghdmlldy5oYXNWaWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0cygpKQogICAgICAgICByZXR1cm47CiAKQEAgLTE3Miw2ICsyMDMsOSBAQCB2b2lkIE1v
ZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OnVwZGF0ZU1vZGFsQ29udGFpbmVySWZOZWVkZWQoY29uc3Qg
RnJhbWVWaWV3JiB2aWV3KQogICAgICAgICBpZiAocmVuZGVyZXIuaXNEb2N1bWVudEVsZW1lbnRS
ZW5kZXJlcigpKQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgaWYgKHJlbmRlcmVy
LnN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OkhpZGRlbikKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCiAgICAgICAgIFJlZlB0ciBlbGVtZW50ID0gcmVuZGVyZXIuZWxlbWVudCgp
OwogICAgICAgICBpZiAoIWVsZW1lbnQgfHwgaXM8SFRNTEJvZHlFbGVtZW50PigqZWxlbWVudCkg
fHwgZWxlbWVudC0+aXNEb2N1bWVudE5vZGUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAt
MTc5LDIwICsyMTMsNTQgQEAgdm9pZCBNb2RhbENvbnRhaW5lck9ic2VydmVyOjp1cGRhdGVNb2Rh
bENvbnRhaW5lcklmTmVlZGVkKGNvbnN0IEZyYW1lVmlldyYgdmlldykKICAgICAgICAgaWYgKCFt
X2VsZW1lbnRzVG9JZ25vcmVXaGVuU2VhcmNoaW5nLmFkZCgqZWxlbWVudCkuaXNOZXdFbnRyeSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGZvciAoYXV0byYgdGV4dFJlbmRlcmVy
IDogZGVzY2VuZGFudHNPZlR5cGU8UmVuZGVyVGV4dD4ocmVuZGVyZXIpKSB7Ci0gICAgICAgICAg
ICBpZiAoUmVmUHRyIHRleHROb2RlID0gdGV4dFJlbmRlcmVyLnRleHROb2RlKCk7IHRleHROb2Rl
ICYmIG1hdGNoZXNTZWFyY2hUZXJtKCp0ZXh0Tm9kZSwgc2VhcmNoVGVybSkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoaXNJbnNpZGVOYXZpZ2F0aW9uRWxlbWVudCgqdGV4dE5vZGUpKQotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKGNvbnRhaW5zTWF0Y2hpbmdUZXh0KHJl
bmRlcmVyLCBzZWFyY2hUZXJtKSkgeworICAgICAgICAgICAgc2V0Q29udGFpbmVyKCplbGVtZW50
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoYXV0byYg
ZnJhbWVPd25lciA6IGRlc2NlbmRhbnRzT2ZUeXBlPEhUTUxGcmFtZU93bmVyRWxlbWVudD4oKmVs
ZW1lbnQpKSB7CisgICAgICAgICAgICBSZWZQdHIgY29udGVudEZyYW1lID0gZnJhbWVPd25lci5j
b250ZW50RnJhbWUoKTsKKyAgICAgICAgICAgIGlmICghY29udGVudEZyYW1lKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBhdXRvIHJlbmRlclZpZXcgPSBjb250ZW50
RnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpOworICAgICAgICAgICAgaWYgKCFyZW5kZXJWaWV3KQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICAgICAgbV9jb250YWluZXIg
PSBlbGVtZW50LmdldCgpOwotICAgICAgICAgICAgICAgIGVsZW1lbnQtPmludmFsaWRhdGVTdHls
ZSgpOwotICAgICAgICAgICAgICAgIHNjaGVkdWxlQ2xpY2thYmxlRWxlbWVudENvbGxlY3Rpb24o
KTsKKyAgICAgICAgICAgIGlmIChjb250YWluc01hdGNoaW5nVGV4dCgqcmVuZGVyVmlldywgc2Vh
cmNoVGVybSkpIHsKKyAgICAgICAgICAgICAgICBzZXRDb250YWluZXIoKmVsZW1lbnQsICZmcmFt
ZU93bmVyKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmIChhdXRvIGZyYW1lVmlldyA9IGNvbnRlbnRGcmFtZS0+dmlldygpOyBmcmFtZVZp
ZXcgJiYgIWZyYW1lVmlldy0+aXNWaXN1YWxseU5vbkVtcHR5KCkpIHsKKyAgICAgICAgICAgICAg
ICAvLyBJZiB0aGUgc3ViZnJhbWUgY29udGVudCBoYXMgbm90IGJlY29tZSB2aXN1YWxseSBub24t
ZW1wdHkgeWV0LCBzZWFyY2ggdGhlIHN1YmZyYW1lIGFnYWluIGxhdGVyLgorICAgICAgICAgICAg
ICAgIG1fZnJhbWVPd25lcnNBbmRDb250YWluZXJzVG9TZWFyY2hBZ2Fpbi5hZGQoZnJhbWVPd25l
ciwgKmVsZW1lbnQpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQogCit2b2lk
IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OnNldENvbnRhaW5lcihFbGVtZW50JiBuZXdDb250YWlu
ZXIsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogZnJhbWVPd25lcikKK3sKKyAgICBpZiAoY29udGFp
bmVyKCkpCisgICAgICAgIGNvbnRhaW5lcigpLT5pbnZhbGlkYXRlU3R5bGUoKTsKKworICAgIG1f
Y29udGFpbmVyQW5kRnJhbWVPd25lckZvckNvbnRyb2xzID0geyB7IG5ld0NvbnRhaW5lciB9LCB7
IGZyYW1lT3duZXIgfSB9OworCisgICAgbmV3Q29udGFpbmVyLmludmFsaWRhdGVTdHlsZSgpOwor
ICAgIHNjaGVkdWxlQ2xpY2thYmxlRWxlbWVudENvbGxlY3Rpb24oKTsKK30KKworRWxlbWVudCog
TW9kYWxDb250YWluZXJPYnNlcnZlcjo6Y29udGFpbmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9jb250YWluZXJBbmRGcmFtZU93bmVyRm9yQ29udHJvbHMuZmlyc3QuZ2V0KCk7Cit9CisKK0hU
TUxGcmFtZU93bmVyRWxlbWVudCogTW9kYWxDb250YWluZXJPYnNlcnZlcjo6ZnJhbWVPd25lckZv
ckNvbnRyb2xzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250YWluZXJBbmRGcmFtZU93bmVy
Rm9yQ29udHJvbHMuc2Vjb25kLmdldCgpOworfQorCiBzdGF0aWMgYm9vbCBpc0NsaWNrYWJsZUNv
bnRyb2woY29uc3QgSFRNTEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKGVsZW1lbnQuaXNB
Y3R1YWxseURpc2FibGVkKCkpCkBAIC0yOTgsMTUgKzM2NiwxNSBAQCB2b2lkIE1vZGFsQ29udGFp
bmVyT2JzZXJ2ZXI6OnNjaGVkdWxlQ2xpY2thYmxlRWxlbWVudENvbGxlY3Rpb24oKQogCiB2b2lk
IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxlY3RDbGlja2FibGVFbGVtZW50c1RpbWVyRmly
ZWQoKQogewotICAgIGlmICghbV9jb250YWluZXIpCisgICAgaWYgKCFjb250YWluZXIoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9jb250YWluZXItPmRvY3VtZW50KCkuZXZlbnRMb29wKCku
cXVldWVUYXNrKFRhc2tTb3VyY2U6OkludGVybmFsQXN5bmNUYXNrLCBbb2JzZXJ2ZXIgPSB0aGlz
LCB3ZWFrRG9jdW1lbnQgPSBXZWFrUHRyIHsgbV9jb250YWluZXItPmRvY3VtZW50KCkgfV0oKSBt
dXRhYmxlIHsKKyAgICBjb250YWluZXIoKS0+ZG9jdW1lbnQoKS5ldmVudExvb3AoKS5xdWV1ZVRh
c2soVGFza1NvdXJjZTo6SW50ZXJuYWxBc3luY1Rhc2ssIFtvYnNlcnZlciA9IHRoaXMsIHdlYWtE
b2N1bWVudCA9IFdlYWtQdHIgeyBjb250YWluZXIoKS0+ZG9jdW1lbnQoKSB9XSgpIG11dGFibGUg
ewogICAgICAgICBSZWZQdHIgZG9jdW1lbnQgPSB3ZWFrRG9jdW1lbnQuZ2V0KCk7CiAgICAgICAg
IGlmICghZG9jdW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKG9ic2Vy
dmVyICE9IGRvY3VtZW50LT5tb2RhbENvbnRhaW5lck9ic2VydmVySWZFeGlzdHMoKSB8fCAhb2Jz
ZXJ2ZXItPm1fY29udGFpbmVyLmdldCgpKSB7CisgICAgICAgIGlmIChvYnNlcnZlciAhPSBkb2N1
bWVudC0+bW9kYWxDb250YWluZXJPYnNlcnZlcklmRXhpc3RzKCkgfHwgIW9ic2VydmVyLT5jb250
YWluZXIoKSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ0MSwxMyArNTA5LDE0IEBAIHZvaWQgTW9kYWxDb250
YWluZXJPYnNlcnZlcjo6Y29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJGaXJlZCgpCiAKIHZv
aWQgTW9kYWxDb250YWluZXJPYnNlcnZlcjo6cmV2ZWFsTW9kYWxDb250YWluZXIoKQogewotICAg
IGlmIChhdXRvIGNvbnRhaW5lciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb250YWluZXIsIHsgfSkpCisg
ICAgYXV0byBbY29udGFpbmVyLCBmcmFtZU93bmVyXSA9IHN0ZDo6ZXhjaGFuZ2UobV9jb250YWlu
ZXJBbmRGcmFtZU93bmVyRm9yQ29udHJvbHMsIHsgfSk7CisgICAgaWYgKGNvbnRhaW5lcikKICAg
ICAgICAgY29udGFpbmVyLT5pbnZhbGlkYXRlU3R5bGUoKTsKIH0KIAogc3RkOjpwYWlyPFZlY3Rv
cjxXZWFrUHRyPEhUTUxFbGVtZW50Pj4sIFZlY3RvcjxTdHJpbmc+PiBNb2RhbENvbnRhaW5lck9i
c2VydmVyOjpjb2xsZWN0Q2xpY2thYmxlRWxlbWVudHMoKQogewotICAgIFJlZiBjb250YWluZXIg
PSAqbV9jb250YWluZXI7CisgICAgUmVmIGNvbnRhaW5lciA9ICp0aGlzLT5jb250YWluZXIoKTsK
ICAgICBtX2NvbGxlY3RpbmdDbGlja2FibGVFbGVtZW50cyA9IHRydWU7CiAgICAgYXV0byBleGl0
Q29sbGVjdENsaWNrYWJsZUVsZW1lbnRzU2NvcGUgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CiAgICAg
ICAgIG1fY29sbGVjdGluZ0NsaWNrYWJsZUVsZW1lbnRzID0gZmFsc2U7CkBAIC00NTcsOCArNTI2
LDIzIEBAIHN0ZDo6cGFpcjxWZWN0b3I8V2Vha1B0cjxIVE1MRWxlbWVudD4+LCBWZWN0b3I8U3Ry
aW5nPj4gTW9kYWxDb250YWluZXJPYnNlcnZlcjo6CiAgICAgY29udGFpbmVyLT5pbnZhbGlkYXRl
U3R5bGUoKTsKICAgICBjb250YWluZXItPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CiAKKyAgICBhdXRvIGNvbnRhaW5lckZvckNvbnRyb2xzID0gKFsm
XSgpIC0+IFJlZlB0cjxFbGVtZW50PiB7CisgICAgICAgIGF1dG8gZnJhbWVPd25lciA9IGZyYW1l
T3duZXJGb3JDb250cm9scygpOworICAgICAgICBpZiAoIWZyYW1lT3duZXIpCisgICAgICAgICAg
ICByZXR1cm4gY29udGFpbmVyLnB0cigpOworCisgICAgICAgIGF1dG8gY29udGVudERvY3VtZW50
ID0gZnJhbWVPd25lci0+Y29udGVudERvY3VtZW50KCk7CisgICAgICAgIGlmICghY29udGVudERv
Y3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICByZXR1cm4gY29udGVu
dERvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKKyAgICB9KSgpOworCisgICAgaWYgKCFjb250
YWluZXJGb3JDb250cm9scykKKyAgICAgICAgcmV0dXJuIHsgfTsKKwogICAgIFZlY3RvcjxSZWY8
SFRNTEVsZW1lbnQ+PiBjbGlja2FibGVDb250cm9sczsKLSAgICBmb3IgKGF1dG8mIGNoaWxkIDog
ZGVzY2VuZGFudHNPZlR5cGU8SFRNTEVsZW1lbnQ+KGNvbnRhaW5lcikpIHsKKyAgICBmb3IgKGF1
dG8mIGNoaWxkIDogZGVzY2VuZGFudHNPZlR5cGU8SFRNTEVsZW1lbnQ+KCpjb250YWluZXJGb3JD
b250cm9scykpIHsKICAgICAgICAgaWYgKGlzQ2xpY2thYmxlQ29udHJvbChjaGlsZCkpCiAgICAg
ICAgICAgICBjbGlja2FibGVDb250cm9scy5hcHBlbmQoY2hpbGQpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmgKaW5kZXggOGVmNWU3NmM4M2Ew
Yzg2ODQxMDhlMWRlYTNhZTQxYTNkMDVlY2RhNC4uNGE1NTVhMTQ0N2FmNTQ1Yzk2YjM4MDY5OTk2
NmQwN2QxYjY0ZWUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRh
aW5lck9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9i
c2VydmVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0
Zi9XZWFrSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgpAQCAtMzks
NiArNDAsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZVZp
ZXc7CiBjbGFzcyBIVE1MRWxlbWVudDsKK2NsYXNzIEhUTUxGcmFtZU93bmVyRWxlbWVudDsKIAog
Y2xhc3MgTW9kYWxDb250YWluZXJPYnNlcnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CkBAIC01NywxMSArNTksMTcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlQ2xpY2th
YmxlRWxlbWVudENvbGxlY3Rpb24oKTsKICAgICB2b2lkIGNvbGxlY3RDbGlja2FibGVFbGVtZW50
c1RpbWVyRmlyZWQoKTsKICAgICB2b2lkIHJldmVhbE1vZGFsQ29udGFpbmVyKCk7CisgICAgdm9p
ZCBzZXRDb250YWluZXIoRWxlbWVudCYsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogPSBudWxscHRy
KTsKKyAgICB2b2lkIHNlYXJjaEZvck1vZGFsQ29udGFpbmVyT25CZWhhbGZPZkZyYW1lT3duZXJJ
Zk5lZWRlZChIVE1MRnJhbWVPd25lckVsZW1lbnQmKTsKKworICAgIEVsZW1lbnQqIGNvbnRhaW5l
cigpIGNvbnN0OworICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogZnJhbWVPd25lckZvckNvbnRy
b2xzKCkgY29uc3Q7CiAKICAgICBzdGQ6OnBhaXI8VmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1lbnQ+
PiwgVmVjdG9yPFN0cmluZz4+IGNvbGxlY3RDbGlja2FibGVFbGVtZW50cygpOwogCiAgICAgV2Vh
a0hhc2hTZXQ8RWxlbWVudD4gbV9lbGVtZW50c1RvSWdub3JlV2hlblNlYXJjaGluZzsKLSAgICBX
ZWFrUHRyPEVsZW1lbnQ+IG1fY29udGFpbmVyOworICAgIHN0ZDo6cGFpcjxXZWFrUHRyPEVsZW1l
bnQ+LCBXZWFrUHRyPEhUTUxGcmFtZU93bmVyRWxlbWVudD4+IG1fY29udGFpbmVyQW5kRnJhbWVP
d25lckZvckNvbnRyb2xzOworICAgIFdlYWtIYXNoTWFwPEhUTUxGcmFtZU93bmVyRWxlbWVudCwg
V2Vha1B0cjxFbGVtZW50Pj4gbV9mcmFtZU93bmVyc0FuZENvbnRhaW5lcnNUb1NlYXJjaEFnYWlu
OwogICAgIEF0b21TdHJpbmcgbV9vdmVycmlkZVNlYXJjaFRlcm1Gb3JUZXN0aW5nOwogICAgIFRp
bWVyIG1fY29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXI7CiAgICAgYm9vbCBtX2NvbGxlY3Rp
bmdDbGlja2FibGVFbGVtZW50cyB7IGZhbHNlIH07CkBAIC03NSw3ICs4Myw3IEBAIGlubGluZSB2
b2lkIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6Om92ZXJyaWRlU2VhcmNoVGVybUZvclRlc3Rpbmco
Y29uc3QgU3RyaW5nJiBzCiAKIGlubGluZSBib29sIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OnNo
b3VsZEhpZGUoY29uc3QgRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9j
b250YWluZXIgPT0gJmVsZW1lbnQgJiYgIW1fY29sbGVjdGluZ0NsaWNrYWJsZUVsZW1lbnRzOwor
ICAgIHJldHVybiBjb250YWluZXIoKSA9PSAmZWxlbWVudCAmJiAhbV9jb2xsZWN0aW5nQ2xpY2th
YmxlRWxlbWVudHM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyOWQ3N2RiNWUyNmEwYzBiYTll
MjEzZThjNDVkN2MyYmI4YWY4OTBlLi4wNGUxYjVlMzNiNDVkYWI1ZDVhZmMxMzY0NGM1YWZjMmZj
OTIyNDAwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kYWxDb250YWluZXJPYnNlcnZlciBzaG91bGQgc2Vh
cmNoIGZvciB0ZXh0IGluIHN1YmZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDQ2CisgICAgICAgIHJkYXI6Ly84Njg5Nzc3MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBBUEkgdGVz
dCB0byBleGVyY2lzZSB0aGUgY2hhbmdlLiBTZWUgV2ViQ29yZS9DaGFuZ0xvZyBmb3IgbW9yZSBk
ZXRhaWxzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Nb2Rh
bENvbnRhaW5lck9ic2VydmF0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisKIDIwMjEtMTItMjQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgTW9kYWwgY29udGFpbmVycyBhcmUgaW5jb3JyZWN0bHkgZGV0ZWN0ZWQgaW4gbmF2
aWdhdGlvbiBlbGVtZW50cyBhbmQgZml4ZWQgZG9jdW1lbnQgZWxlbWVudHMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTW9kYWxDb250YWluZXJPYnNl
cnZhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTW9kYWxD
b250YWluZXJPYnNlcnZhdGlvbi5tbQppbmRleCBjNjA5MTVmZjIyYzRlNDY0YmFjZTVkYTFmNTk4
MjViM2MwMWNjNWY3Li5iMThjYTkyODAxYmZhMDM0NTEwNGU2MWVkYmJiNmQwZjg1NDY3YmQxIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01vZGFsQ29u
dGFpbmVyT2JzZXJ2YXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Nb2RhbENvbnRhaW5lck9ic2VydmF0aW9uLm1tCkBAIC0yOTMsNCArMjkzLDE0IEBA
IFRFU1QoTW9kYWxDb250YWluZXJPYnNlcnZhdGlvbiwgU2hvd01vZGFsQ29udGFpbmVyQWZ0ZXJG
YWxzZVBvc2l0aXZlKQogICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IGxhc3RNb2RhbENvbnRhaW5l
ckluZm9dKTsKIH0KIAorVEVTVChNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uLCBNb2RhbENvbnRh
aW5lckluU3ViZnJhbWUpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlTW9kYWxDb250YWlu
ZXJXZWJWaWV3KCk7CisgICAgW3dlYlZpZXcgc2V0RGVjaXNpb246X1dLTW9kYWxDb250YWluZXJE
ZWNpc2lvbkhpZGVBbmRJZ25vcmVdOworICAgIFt3ZWJWaWV3IGxvYWRCdW5kbGVQYWdlOkAibW9k
YWwtY29udGFpbmVyLWN1c3RvbSJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlOkAic2hvdyhgPHA+
c3ViZnJhbWUgdGVzdDwvcD48aWZyYW1lIHNyY2RvYz0nPGgyPmhlbGxvIHdvcmxkPC9oMj48YnV0
dG9uPllFUzwvYnV0dG9uPic+PC9pZnJhbWU+YCkiIGFuZERlY2lkZVBvbGljeTpfV0tNb2RhbENv
bnRhaW5lckRlY2lzaW9uSGlkZUFuZElnbm9yZV07CisgICAgRVhQRUNUX0ZBTFNFKFtbd2ViVmll
dyBjb250ZW50c0FzU3RyaW5nXSBjb250YWluc1N0cmluZzpAInN1YmZyYW1lIHRlc3QiXSk7Cisg
ICAgRVhQRUNUX0VRKFt3ZWJWaWV3IGxhc3RNb2RhbENvbnRhaW5lckluZm9dLmF2YWlsYWJsZVR5
cGVzLCBfV0tNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlUG9zaXRpdmUpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448188</attachid>
            <date>2022-01-02 15:18:59 -0800</date>
            <delta_ts>2022-01-04 14:00:03 -0800</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-234446-20220102151858.patch</filename>
            <type>text/plain</type>
            <size>16944</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZlOTY3Y2ExMDUzMDEw
Mjc2ODgyM2QxNjk1ZDZjZDYxOTE0NjIyOS4uNzcxMWY0NDUwOTUyZDM3YmVmZGExZWQ0NmEzOTUy
OTkxMzM1NmE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDIyLTAxLTAyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1vZGFsQ29udGFp
bmVyT2JzZXJ2ZXIgc2hvdWxkIHNlYXJjaCBmb3IgdGV4dCBpbiBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ0NgorICAgICAgICBy
ZGFyOi8vODY4OTc3NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIGRldGVjdGluZyBtb2RhbCBjb250YWluZXJzIHdoZW4g
dGhlIHNlYXJjaCB0ZXJtIGlzIGVtYmVkZGVkIGluc2lkZSBhIHN1YmZyYW1lIGluIHRoZSB0b3AK
KyAgICAgICAgZG9jdW1lbnQuIFRvIGRvIHRoaXMsIHdlIG1ha2UgYSBmZXcgYWRqdXN0bWVudHMg
dG8gTW9kYWxDb250YWluZXJPYnNlcnZlciwgZGV0YWlsZWQgaW4gdGhlIGNvbW1lbnRzIGJlbG93
LiBUaGlzCisgICAgICAgIHN1cHBvcnRzIGJvdGggc2NlbmFyaW9zIGluIHdoaWNoICgxKSBhIHN1
YmZyYW1lIHRoYXQgaGFzIG5vdCB5ZXQgbG9hZGVkIGlzIGFkZGVkIHRvIHRoZSB0b3AgZG9jdW1l
bnQgYW5kIHRoZW4KKyAgICAgICAgbGF0ZXIgZ2FpbnMgb2NjdXJyZW5jZXMgb2YgdGhlIHNlYXJj
aCB0ZXJtLCBhbmQgKDIpIGEgc3ViZnJhbWUgdGhhdCBhbHJlYWR5IGNvbnRhaW5zIHRoZSBzZWFy
Y2ggdGVybSBpbiByZW5kZXJlZAorICAgICAgICB0ZXh0IGlzIG1hZGUgdmlzaWJsZSBpbnNpZGUg
dGhlIHRvcCBkb2N1bWVudC4KKworICAgICAgICBUZXN0OiBNb2RhbENvbnRhaW5lck9ic2VydmF0
aW9uLk1vZGFsQ29udGFpbmVySW5TdWJmcmFtZQorCisgICAgICAgICogcGFnZS9Nb2RhbENvbnRh
aW5lck9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2
ZXI6OmlzTmVlZGVkRm9yKToKKworICAgICAgICBJbnN0YWxsIGEgTW9kYWxDb250YWluZXJPYnNl
cnZlciBmb3IgY2hpbGQgZG9jdW1lbnRzIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXJlbnQgZG9j
dW1lbnQgYWxyZWFkeSBoYXMgYSBtb2RhbAorICAgICAgICBjb250YWluZXIgb2JzZXJ2ZXIgdGhh
dCBpcyB3YWl0aW5nIGZvciB0aGlzIGZyYW1lIHRvIGZpbmlzaCBpdHMgZmlyc3QgdmlzdWFsbHkg
bm9uLWVtcHR5IGxheW91dCAoc2VlIHRoZSBjb21tZW50CisgICAgICAgIGluIGBNb2RhbENvbnRh
aW5lck9ic2VydmVyOjp1cGRhdGVNb2RhbENvbnRhaW5lcklmTmVlZGVkKClgLCBiZWxvdykuCisK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRhaW5zTWF0Y2hpbmdUZXh0KToKKworICAgICAgICBQdWxs
IG91dCBsb2dpYyBmb3Igc2VhcmNoaW5nIGFsbCB0ZXh0IHJlbmRlcmVyIGRlc2NlbmRhbnRzIHVu
ZGVybmVhdGggYSBnaXZlbiByZW5kZXJlciBpbnRvIGEgc2VwYXJhdGUgaGVscGVyCisgICAgICAg
IGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpz
ZWFyY2hGb3JNb2RhbENvbnRhaW5lck9uQmVoYWxmT2ZGcmFtZU93bmVySWZOZWVkZWQpOgorCisg
ICAgICAgIFVzZWQgZm9yIGEgTW9kYWxDb250YWluZXJPYnNlcnZlciBpbiBhIGNoaWxkIGZyYW1l
IHRvIG5vdGlmeSB0aGUgTW9kYWxDb250YWluZXJPYnNlcnZlciBpbiB0aGUgcGFyZW50IGRvY3Vt
ZW50CisgICAgICAgIHdoZW4gdGhlIGNoaWxkIGRvY3VtZW50IGhhcyBmaW5pc2hlZCBsYXlvdXQu
IElmIHRoaXMgY2hpbGQgZG9jdW1lbnQncyBvd25lciBlbGVtZW50IGlzIG9uZSBvZiB0aGUgZWxl
bWVudHMgaW4KKyAgICAgICAgYG1fZnJhbWVPd25lcnNBbmRDb250YWluZXJzVG9TZWFyY2hBZ2Fp
bmAsIHdlIGludmFsaWRhdGUgdGhlIGNvcnJlc3BvbmRpbmcgdmlld3BvcnQtY29uc3RyYWluZWQg
Y29udGFpbmVyIHRoYXQKKyAgICAgICAgd2UndmUgcHJldmlvdXNseSBzZWFyY2hlZCAoaS5lLiBi
eSByZW1vdmluZyBpdCBmcm9tIGBtX2VsZW1lbnRzVG9JZ25vcmVXaGVuU2VhcmNoaW5nYCkgYW5k
IHJlLXNlYXJjaCB0aGUKKyAgICAgICAgY29udGFpbmVyLgorCisgICAgICAgIChXZWJDb3JlOjpN
b2RhbENvbnRhaW5lck9ic2VydmVyOjp1cGRhdGVNb2RhbENvbnRhaW5lcklmTmVlZGVkKToKKwor
ICAgICAgICBNYWtlIGEgY291cGxlIG9mIGFkanVzdG1lbnRzOgorCisgICAgICAgIC0gICAgICAg
Rm9yIG1vZGFsIGNvbnRhaW5lciBvYnNlcnZlcnMgdGhhdCBhcmUgbm90IGluIHRoZSB0b3AgZG9j
dW1lbnQ6IGRlbGVnYXRlIHRoZSBtb2RhbCBjb250YWluZXIgdXBkYXRlIG91dAorICAgICAgICAg
ICAgICAgIHRvIHRoZSBwYXJlbnQgZG9jdW1lbnQncyBtb2RhbCBjb250YWluZXIgb2JzZXJ2ZXIs
IGJ5IGNhbGxpbmcgdGhlIGhlbHBlciBtZXRob2QgYWJvdmUuCisKKyAgICAgICAgLSAgICAgICBG
b3IgbW9kYWwgY29udGFpbmVyIG9ic2VydmVycyB0aGF0IGFyZSBpbiB0aGUgdG9wIGRvY3VtZW50
OiBhZGQgbG9naWMgdG8gc2VhcmNoIGNvbnRlbnQgaW4gc3ViZnJhbWVzCisgICAgICAgICAgICAg
ICAgaW5zaWRlIG9mIHZpZXdwb3J0LWNvbnN0cmFpbmVkIGNvbnRhaW5lcnMgYXMgYSBmYWxsYmFj
ayBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgc2VhcmNoIHRlcm0gZG9lcyBub3QKKyAgICAgICAgICAg
ICAgICBhcHBlYXIgaW4gY29udGVudCBhdCB0aGUgdG9wIGRvY3VtZW50LgorCisgICAgICAgIChX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpzZXRDb250YWluZXIpOgorCisgICAgICAg
IFB1bGwgb3V0IGxvZ2ljIGZvciB0cmFja2luZyB0aGUgY3VycmVudGx5IGRldGVjdGVkIG1vZGFs
IGNvbnRhaW5lciBpbnRvIGEgc2VwYXJhdGUgaGVscGVyIG1ldGhvZCB0aGF0IHRha2VzCisgICAg
ICAgIHRoZSBtb2RhbCBjb250YWluZXIgZWxlbWVudCwgYXMgd2VsbCBhcyB0aGUgZnJhbWUgb3du
ZXIgZWxlbWVudCB3aGVyZSB3ZSBvYnNlcnZlZCB0aGUgc2VhcmNoIHRlcm0gKG9yIG51bGwgaWYK
KyAgICAgICAgdGhlIHNlYXJjaCB0ZXJtIHdhcyBvYnNlcnZlZCBpbiB0aGUgdG9wIGRvY3VtZW50
KS4KKworICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZlcjo6Y29udGFpbmVy
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmZyYW1l
T3duZXJGb3JDb250cm9scyBjb25zdCk6CisKKyAgICAgICAgUmVwbGFjZSBgbV9jb250YWluZXJg
IHdpdGggYSBgc3RkOjpwYWlyYCBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGFsIGNvbnRhaW5l
ciAoaS5lLiB3aGF0IGlzIGN1cnJlbnRseSBqdXN0CisgICAgICAgIGBtX2NvbnRhaW5lcmAsIGFz
IHdlbGwgYXMgYSB3ZWFrIHBvaW50ZXIgdG8gdGhlIGFzc29jaWF0ZWQgZnJhbWUgb3duZXIgZWxl
bWVudCB3aGVyZSB3ZSBkaXNjb3ZlcmVkIHRoZSBzZWFyY2gKKyAgICAgICAgdGVybSkuIFdlIHVz
ZSBhIGBzdGQ6OnBhaXJgIGhlcmUgYmVjYXVzZSB0aGVzZSB0d28gZWxlbWVudHMgc2hvdWxkIGFs
d2F5cyBiZSBzZXQgYW5kIGNsZWFyZWQgb3V0IGluIHRhbmRlbS4KKworICAgICAgICAoV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJPYnNlcnZlcjo6Y29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJG
aXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpyZXZlYWxN
b2RhbENvbnRhaW5lcik6CisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIGBtX2NvbnRhaW5lcmAg
d2l0aCB0aGUgYGNvbnRhaW5lcigpYCBtZXRob2QuCisKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFs
Q29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxlY3RDbGlja2FibGVFbGVtZW50cyk6CisKKyAgICAgICAg
SWYgYSBmcmFtZSBvd25lciBlbGVtZW50IGlzIHNldCwgdXNlIHRoZSBzdWJmcmFtZSdzIGNvbnRl
bnQgZG9jdW1lbnQgZWxlbWVudCBhcyB0aGUgY29udGFpbmVyIGZvciBjb2xsZWN0aW5nCisgICAg
ICAgIGNsaWNrYWJsZSBjb250cm9scyBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBhY3R1YWwgbW9kYWwg
Y29udGFpbmVyIGVsZW1lbnQgaW4gdGhlIHRvcCBkb2N1bWVudC4KKworICAgICAgICAqIHBhZ2Uv
TW9kYWxDb250YWluZXJPYnNlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWlu
ZXJPYnNlcnZlcjo6c2hvdWxkSGlkZSBjb25zdCk6CisKKyAgICAgICAgVXNlIGBjb250YWluZXIo
KWAgaW5zdGVhZCBvZiBgbV9jb250YWluZXJgLgorCiAyMDIyLTAxLTAyICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxvd3VwIHRvIHIyODc0OTQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwCmluZGV4
IGRlYTUwYjc3MDJkNGQzYmRkMzJjZjkyN2IwMWQzODNhMjJmNjM1ZWYuLjVkNzE5ZjA5OTQzZTQ1
M2ZiYTgwODE0YjA5ZGYwNjRlOGM4NWE5M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9N
b2RhbENvbnRhaW5lck9ic2VydmVyLmNwcApAQCAtNjAsMTggKzYwLDEzIEBAIHN0YXRpYyBjb25z
dGV4cHIgc2l6ZV90IG1heExlbmd0aEZvckNsaWNrYWJsZUVsZW1lbnRUZXh0ID0gMTAwOwogCiBi
b29sIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmlzTmVlZGVkRm9yKGNvbnN0IERvY3VtZW50JiBk
b2N1bWVudCkKIHsKLSAgICBSZWZQdHIgZG9jdW1lbnRMb2FkZXIgPSBkb2N1bWVudC5sb2FkZXIo
KTsKLSAgICBpZiAoIWRvY3VtZW50TG9hZGVyIHx8IGRvY3VtZW50TG9hZGVyLT5tb2RhbENvbnRh
aW5lck9ic2VydmF0aW9uUG9saWN5KCkgPT0gTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGlj
eTo6RGlzYWJsZWQpCisgICAgUmVmUHRyIHRvcERvY3VtZW50TG9hZGVyID0gZG9jdW1lbnQudG9w
RG9jdW1lbnQoKS5sb2FkZXIoKTsKKyAgICBpZiAoIXRvcERvY3VtZW50TG9hZGVyIHx8IHRvcERv
Y3VtZW50TG9hZGVyLT5tb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5KCkgPT0gTW9kYWxD
b250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIGlmICghZG9jdW1lbnQudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQor
ICAgIGlmICghZG9jdW1lbnQudG9wRG9jdW1lbnQoKS51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFt
aWx5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZG9jdW1lbnQuaXNUb3BE
b2N1bWVudCgpKSB7Ci0gICAgICAgIC8vIEZJWE1FICgyMzQ0NDYpOiBOZWVkIHRvIHByb3Blcmx5
IHN1cHBvcnQgc3ViZnJhbWVzLgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAg
aWYgKGRvY3VtZW50LmluRGVzaWduTW9kZSgpIHx8ICFpczxIVE1MRG9jdW1lbnQ+KGRvY3VtZW50
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC04Myw2ICs3OCwxMSBAQCBib29sIE1vZGFs
Q29udGFpbmVyT2JzZXJ2ZXI6OmlzTmVlZGVkRm9yKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkK
ICAgICBpZiAoIXBhZ2UgfHwgcGFnZS0+aXNFZGl0YWJsZSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICBpZiAoUmVmUHRyIG93bmVyID0gZG9jdW1lbnQub3duZXJFbGVtZW50KCkpIHsK
KyAgICAgICAgYXV0byBvYnNlcnZlciA9IG93bmVyLT5kb2N1bWVudCgpLm1vZGFsQ29udGFpbmVy
T2JzZXJ2ZXJJZkV4aXN0cygpOworICAgICAgICByZXR1cm4gb2JzZXJ2ZXIgJiYgb2JzZXJ2ZXIt
Pm1fZnJhbWVPd25lcnNBbmRDb250YWluZXJzVG9TZWFyY2hBZ2Fpbi5jb250YWlucygqb3duZXIp
OworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xNDUsMTQgKzE0NSw0NSBAQCBz
dGF0aWMgYm9vbCBpc0luc2lkZU5hdmlnYXRpb25FbGVtZW50KGNvbnN0IFRleHQmIHRleHROb2Rl
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGJvb2wgY29udGFpbnNNYXRjaGluZ1Rl
eHQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVuZGVyZXIsIGNvbnN0IEF0b21TdHJpbmcmIHNl
YXJjaFRlcm0pCit7CisgICAgZm9yIChhdXRvJiB0ZXh0UmVuZGVyZXIgOiBkZXNjZW5kYW50c09m
VHlwZTxSZW5kZXJUZXh0PihyZW5kZXJlcikpIHsKKyAgICAgICAgaWYgKFJlZlB0ciB0ZXh0Tm9k
ZSA9IHRleHRSZW5kZXJlci50ZXh0Tm9kZSgpOyB0ZXh0Tm9kZSAmJiBtYXRjaGVzU2VhcmNoVGVy
bSgqdGV4dE5vZGUsIHNlYXJjaFRlcm0pKQorICAgICAgICAgICAgcmV0dXJuICFpc0luc2lkZU5h
dmlnYXRpb25FbGVtZW50KCp0ZXh0Tm9kZSk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30K
Kwordm9pZCBNb2RhbENvbnRhaW5lck9ic2VydmVyOjpzZWFyY2hGb3JNb2RhbENvbnRhaW5lck9u
QmVoYWxmT2ZGcmFtZU93bmVySWZOZWVkZWQoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lcikK
K3sKKyAgICBhdXRvIGNvbnRhaW5lclRvU2VhcmNoQWdhaW4gPSBtX2ZyYW1lT3duZXJzQW5kQ29u
dGFpbmVyc1RvU2VhcmNoQWdhaW4udGFrZShvd25lcik7CisgICAgaWYgKCFjb250YWluZXJUb1Nl
YXJjaEFnYWluKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fZWxlbWVudHNUb0lnbm9y
ZVdoZW5TZWFyY2hpbmcucmVtb3ZlKCpjb250YWluZXJUb1NlYXJjaEFnYWluKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKFJlZlB0ciB2aWV3ID0gb3duZXIuZG9jdW1lbnQoKS52aWV3KCkp
CisgICAgICAgIHVwZGF0ZU1vZGFsQ29udGFpbmVySWZOZWVkZWQoKnZpZXcpOworfQorCiB2b2lk
IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OnVwZGF0ZU1vZGFsQ29udGFpbmVySWZOZWVkZWQoY29u
c3QgRnJhbWVWaWV3JiB2aWV3KQogewotICAgIGlmIChtX2NvbnRhaW5lcikKKyAgICBpZiAoY29u
dGFpbmVyKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2hhc0F0dGVtcHRlZFRvRnVs
ZmlsbFBvbGljeSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKFJlZlB0ciBvd25lciA9IHZp
ZXcuZnJhbWUoKS5vd25lckVsZW1lbnQoKSkgeworICAgICAgICBpZiAoYXV0byBwYXJlbnRPYnNl
cnZlciA9IG93bmVyLT5kb2N1bWVudCgpLm1vZGFsQ29udGFpbmVyT2JzZXJ2ZXJJZkV4aXN0cygp
KQorICAgICAgICAgICAgcGFyZW50T2JzZXJ2ZXItPnNlYXJjaEZvck1vZGFsQ29udGFpbmVyT25C
ZWhhbGZPZkZyYW1lT3duZXJJZk5lZWRlZCgqb3duZXIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCF2aWV3LmZyYW1lKCkuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgaWYgKCF2aWV3Lmhhc1ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMTczLDYgKzIwNCw5IEBAIHZvaWQgTW9kYWxDb250YWluZXJPYnNl
cnZlcjo6dXBkYXRlTW9kYWxDb250YWluZXJJZk5lZWRlZChjb25zdCBGcmFtZVZpZXcmIHZpZXcp
CiAgICAgICAgIGlmIChyZW5kZXJlci5pc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAorICAgICAgICBpZiAocmVuZGVyZXIuc3R5bGUoKS52aXNpYmls
aXR5KCkgPT0gVmlzaWJpbGl0eTo6SGlkZGVuKQorICAgICAgICAgICAgY29udGludWU7CisKICAg
ICAgICAgUmVmUHRyIGVsZW1lbnQgPSByZW5kZXJlci5lbGVtZW50KCk7CiAgICAgICAgIGlmICgh
ZWxlbWVudCB8fCBpczxIVE1MQm9keUVsZW1lbnQ+KCplbGVtZW50KSB8fCBlbGVtZW50LT5pc0Rv
Y3VtZW50Tm9kZSgpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xODAsMjAgKzIxNCw1NCBA
QCB2b2lkIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OnVwZGF0ZU1vZGFsQ29udGFpbmVySWZOZWVk
ZWQoY29uc3QgRnJhbWVWaWV3JiB2aWV3KQogICAgICAgICBpZiAoIW1fZWxlbWVudHNUb0lnbm9y
ZVdoZW5TZWFyY2hpbmcuYWRkKCplbGVtZW50KS5pc05ld0VudHJ5KQogICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgZm9yIChhdXRvJiB0ZXh0UmVuZGVyZXIgOiBkZXNjZW5kYW50c09m
VHlwZTxSZW5kZXJUZXh0PihyZW5kZXJlcikpIHsKLSAgICAgICAgICAgIGlmIChSZWZQdHIgdGV4
dE5vZGUgPSB0ZXh0UmVuZGVyZXIudGV4dE5vZGUoKTsgdGV4dE5vZGUgJiYgbWF0Y2hlc1NlYXJj
aFRlcm0oKnRleHROb2RlLCBzZWFyY2hUZXJtKSkgewotICAgICAgICAgICAgICAgIGlmIChpc0lu
c2lkZU5hdmlnYXRpb25FbGVtZW50KCp0ZXh0Tm9kZSkpCi0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBpZiAoY29udGFpbnNNYXRjaGluZ1RleHQocmVuZGVyZXIsIHNlYXJjaFRl
cm0pKSB7CisgICAgICAgICAgICBzZXRDb250YWluZXIoKmVsZW1lbnQpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChhdXRvJiBmcmFtZU93bmVyIDogZGVz
Y2VuZGFudHNPZlR5cGU8SFRNTEZyYW1lT3duZXJFbGVtZW50PigqZWxlbWVudCkpIHsKKyAgICAg
ICAgICAgIFJlZlB0ciBjb250ZW50RnJhbWUgPSBmcmFtZU93bmVyLmNvbnRlbnRGcmFtZSgpOwor
ICAgICAgICAgICAgaWYgKCFjb250ZW50RnJhbWUpCisgICAgICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgICAgIGF1dG8gcmVuZGVyVmlldyA9IGNvbnRlbnRGcmFtZS0+Y29udGVudFJl
bmRlcmVyKCk7CisgICAgICAgICAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgICAgICAgICBtX2NvbnRhaW5lciA9IGVsZW1lbnQuZ2V0KCk7
Ci0gICAgICAgICAgICAgICAgZWxlbWVudC0+aW52YWxpZGF0ZVN0eWxlKCk7Ci0gICAgICAgICAg
ICAgICAgc2NoZWR1bGVDbGlja2FibGVFbGVtZW50Q29sbGVjdGlvbigpOworICAgICAgICAgICAg
aWYgKGNvbnRhaW5zTWF0Y2hpbmdUZXh0KCpyZW5kZXJWaWV3LCBzZWFyY2hUZXJtKSkgeworICAg
ICAgICAgICAgICAgIHNldENvbnRhaW5lcigqZWxlbWVudCwgJmZyYW1lT3duZXIpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGF1dG8g
ZnJhbWVWaWV3ID0gY29udGVudEZyYW1lLT52aWV3KCk7IGZyYW1lVmlldyAmJiAhZnJhbWVWaWV3
LT5pc1Zpc3VhbGx5Tm9uRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzdWJm
cmFtZSBjb250ZW50IGhhcyBub3QgYmVjb21lIHZpc3VhbGx5IG5vbi1lbXB0eSB5ZXQsIHNlYXJj
aCB0aGUgc3ViZnJhbWUgYWdhaW4gbGF0ZXIuCisgICAgICAgICAgICAgICAgbV9mcmFtZU93bmVy
c0FuZENvbnRhaW5lcnNUb1NlYXJjaEFnYWluLmFkZChmcmFtZU93bmVyLCAqZWxlbWVudCk7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiB9CiAKK3ZvaWQgTW9kYWxDb250YWluZXJP
YnNlcnZlcjo6c2V0Q29udGFpbmVyKEVsZW1lbnQmIG5ld0NvbnRhaW5lciwgSFRNTEZyYW1lT3du
ZXJFbGVtZW50KiBmcmFtZU93bmVyKQoreworICAgIGlmIChjb250YWluZXIoKSkKKyAgICAgICAg
Y29udGFpbmVyKCktPmludmFsaWRhdGVTdHlsZSgpOworCisgICAgbV9jb250YWluZXJBbmRGcmFt
ZU93bmVyRm9yQ29udHJvbHMgPSB7IHsgbmV3Q29udGFpbmVyIH0sIHsgZnJhbWVPd25lciB9IH07
CisKKyAgICBuZXdDb250YWluZXIuaW52YWxpZGF0ZVN0eWxlKCk7CisgICAgc2NoZWR1bGVDbGlj
a2FibGVFbGVtZW50Q29sbGVjdGlvbigpOworfQorCitFbGVtZW50KiBNb2RhbENvbnRhaW5lck9i
c2VydmVyOjpjb250YWluZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRhaW5lckFuZEZy
YW1lT3duZXJGb3JDb250cm9scy5maXJzdC5nZXQoKTsKK30KKworSFRNTEZyYW1lT3duZXJFbGVt
ZW50KiBNb2RhbENvbnRhaW5lck9ic2VydmVyOjpmcmFtZU93bmVyRm9yQ29udHJvbHMoKSBjb25z
dAoreworICAgIHJldHVybiBtX2NvbnRhaW5lckFuZEZyYW1lT3duZXJGb3JDb250cm9scy5zZWNv
bmQuZ2V0KCk7Cit9CisKIHN0YXRpYyBib29sIGlzQ2xpY2thYmxlQ29udHJvbChjb25zdCBIVE1M
RWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAoZWxlbWVudC5pc0FjdHVhbGx5RGlzYWJsZWQo
KSkKQEAgLTMyNywxNSArMzk1LDE1IEBAIHByaXZhdGU6CiAKIHZvaWQgTW9kYWxDb250YWluZXJP
YnNlcnZlcjo6Y29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJGaXJlZCgpCiB7Ci0gICAgaWYg
KCFtX2NvbnRhaW5lcikKKyAgICBpZiAoIWNvbnRhaW5lcigpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX2NvbnRhaW5lci0+ZG9jdW1lbnQoKS5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1Nv
dXJjZTo6SW50ZXJuYWxBc3luY1Rhc2ssIFtvYnNlcnZlciA9IHRoaXMsIGRlY2lzaW9uU2NvcGUg
PSBNb2RhbENvbnRhaW5lclBvbGljeURlY2lzaW9uU2NvcGUgeyBtX2NvbnRhaW5lci0+ZG9jdW1l
bnQoKSB9XSgpIG11dGFibGUgeworICAgIGNvbnRhaW5lcigpLT5kb2N1bWVudCgpLmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5jVGFzaywgW29ic2VydmVyID0g
dGhpcywgZGVjaXNpb25TY29wZSA9IE1vZGFsQ29udGFpbmVyUG9saWN5RGVjaXNpb25TY29wZSB7
IGNvbnRhaW5lcigpLT5kb2N1bWVudCgpIH1dKCkgbXV0YWJsZSB7CiAgICAgICAgIFJlZlB0ciBk
b2N1bWVudCA9IGRlY2lzaW9uU2NvcGUuZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFkb2N1bWVu
dCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAob2JzZXJ2ZXIgIT0gZG9jdW1l
bnQtPm1vZGFsQ29udGFpbmVyT2JzZXJ2ZXJJZkV4aXN0cygpIHx8ICFvYnNlcnZlci0+bV9jb250
YWluZXIuZ2V0KCkpIHsKKyAgICAgICAgaWYgKG9ic2VydmVyICE9IGRvY3VtZW50LT5tb2RhbENv
bnRhaW5lck9ic2VydmVySWZFeGlzdHMoKSB8fCAhb2JzZXJ2ZXItPmNvbnRhaW5lcigpKSB7CiAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpAQCAtNDY2LDEzICs1MzQsMTQgQEAgdm9pZCBNb2RhbENvbnRhaW5lck9ic2VydmVy
Ojpjb2xsZWN0Q2xpY2thYmxlRWxlbWVudHNUaW1lckZpcmVkKCkKIAogdm9pZCBNb2RhbENvbnRh
aW5lck9ic2VydmVyOjpyZXZlYWxNb2RhbENvbnRhaW5lcigpCiB7Ci0gICAgaWYgKGF1dG8gY29u
dGFpbmVyID0gc3RkOjpleGNoYW5nZShtX2NvbnRhaW5lciwgeyB9KSkKKyAgICBhdXRvIFtjb250
YWluZXIsIGZyYW1lT3duZXJdID0gc3RkOjpleGNoYW5nZShtX2NvbnRhaW5lckFuZEZyYW1lT3du
ZXJGb3JDb250cm9scywgeyB9KTsKKyAgICBpZiAoY29udGFpbmVyKQogICAgICAgICBjb250YWlu
ZXItPmludmFsaWRhdGVTdHlsZSgpOwogfQogCiBzdGQ6OnBhaXI8VmVjdG9yPFdlYWtQdHI8SFRN
TEVsZW1lbnQ+PiwgVmVjdG9yPFN0cmluZz4+IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxl
Y3RDbGlja2FibGVFbGVtZW50cygpCiB7Ci0gICAgUmVmIGNvbnRhaW5lciA9ICptX2NvbnRhaW5l
cjsKKyAgICBSZWYgY29udGFpbmVyID0gKnRoaXMtPmNvbnRhaW5lcigpOwogICAgIG1fY29sbGVj
dGluZ0NsaWNrYWJsZUVsZW1lbnRzID0gdHJ1ZTsKICAgICBhdXRvIGV4aXRDb2xsZWN0Q2xpY2th
YmxlRWxlbWVudHNTY29wZSA9IG1ha2VTY29wZUV4aXQoWyZdIHsKICAgICAgICAgbV9jb2xsZWN0
aW5nQ2xpY2thYmxlRWxlbWVudHMgPSBmYWxzZTsKQEAgLTQ4Miw4ICs1NTEsMjMgQEAgc3RkOjpw
YWlyPFZlY3RvcjxXZWFrUHRyPEhUTUxFbGVtZW50Pj4sIFZlY3RvcjxTdHJpbmc+PiBNb2RhbENv
bnRhaW5lck9ic2VydmVyOjoKICAgICBjb250YWluZXItPmludmFsaWRhdGVTdHlsZSgpOwogICAg
IGNvbnRhaW5lci0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoKTsKIAorICAgIGF1dG8gY29udGFpbmVyRm9yQ29udHJvbHMgPSAoWyZdKCkgLT4gUmVmUHRy
PEVsZW1lbnQ+IHsKKyAgICAgICAgYXV0byBmcmFtZU93bmVyID0gZnJhbWVPd25lckZvckNvbnRy
b2xzKCk7CisgICAgICAgIGlmICghZnJhbWVPd25lcikKKyAgICAgICAgICAgIHJldHVybiBjb250
YWluZXIucHRyKCk7CisKKyAgICAgICAgYXV0byBjb250ZW50RG9jdW1lbnQgPSBmcmFtZU93bmVy
LT5jb250ZW50RG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKCFjb250ZW50RG9jdW1lbnQpCisgICAg
ICAgICAgICByZXR1cm4geyB9OworCisgICAgICAgIHJldHVybiBjb250ZW50RG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpOworICAgIH0pKCk7CisKKyAgICBpZiAoIWNvbnRhaW5lckZvckNvbnRy
b2xzKQorICAgICAgICByZXR1cm4geyB9OworCiAgICAgVmVjdG9yPFJlZjxIVE1MRWxlbWVudD4+
IGNsaWNrYWJsZUNvbnRyb2xzOwotICAgIGZvciAoYXV0byYgY2hpbGQgOiBkZXNjZW5kYW50c09m
VHlwZTxIVE1MRWxlbWVudD4oY29udGFpbmVyKSkgeworICAgIGZvciAoYXV0byYgY2hpbGQgOiBk
ZXNjZW5kYW50c09mVHlwZTxIVE1MRWxlbWVudD4oKmNvbnRhaW5lckZvckNvbnRyb2xzKSkgewog
ICAgICAgICBpZiAoaXNDbGlja2FibGVDb250cm9sKGNoaWxkKSkKICAgICAgICAgICAgIGNsaWNr
YWJsZUNvbnRyb2xzLmFwcGVuZChjaGlsZCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaAppbmRleCBlNmFjMjczM2FkOWE1NGVhYzc3MzVkYzgy
NzI2YzhkYjM2NGRkMTQwLi4wZWJiYjc5OTljNjMxN2U1YzY1MTI5NjVlMGFiNzQxYjJhNjhmMmRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxs
b2MuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CkBAIC0zOSw2ICs0MCw3IEBAIGNs
YXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lVmlldzsKIGNsYXNzIEhU
TUxFbGVtZW50OworY2xhc3MgSFRNTEZyYW1lT3duZXJFbGVtZW50OwogCiBjbGFzcyBNb2RhbENv
bnRhaW5lck9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTU5LDEx
ICs2MSwxNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVDbGlja2FibGVFbGVtZW50Q29s
bGVjdGlvbigpOwogICAgIHZvaWQgY29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJGaXJlZCgp
OwogICAgIHZvaWQgcmV2ZWFsTW9kYWxDb250YWluZXIoKTsKKyAgICB2b2lkIHNldENvbnRhaW5l
cihFbGVtZW50JiwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiA9IG51bGxwdHIpOworICAgIHZvaWQg
c2VhcmNoRm9yTW9kYWxDb250YWluZXJPbkJlaGFsZk9mRnJhbWVPd25lcklmTmVlZGVkKEhUTUxG
cmFtZU93bmVyRWxlbWVudCYpOworCisgICAgRWxlbWVudCogY29udGFpbmVyKCkgY29uc3Q7Cisg
ICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBmcmFtZU93bmVyRm9yQ29udHJvbHMoKSBjb25zdDsK
IAogICAgIHN0ZDo6cGFpcjxWZWN0b3I8V2Vha1B0cjxIVE1MRWxlbWVudD4+LCBWZWN0b3I8U3Ry
aW5nPj4gY29sbGVjdENsaWNrYWJsZUVsZW1lbnRzKCk7CiAKICAgICBXZWFrSGFzaFNldDxFbGVt
ZW50PiBtX2VsZW1lbnRzVG9JZ25vcmVXaGVuU2VhcmNoaW5nOwotICAgIFdlYWtQdHI8RWxlbWVu
dD4gbV9jb250YWluZXI7CisgICAgc3RkOjpwYWlyPFdlYWtQdHI8RWxlbWVudD4sIFdlYWtQdHI8
SFRNTEZyYW1lT3duZXJFbGVtZW50Pj4gbV9jb250YWluZXJBbmRGcmFtZU93bmVyRm9yQ29udHJv
bHM7CisgICAgV2Vha0hhc2hNYXA8SFRNTEZyYW1lT3duZXJFbGVtZW50LCBXZWFrUHRyPEVsZW1l
bnQ+PiBtX2ZyYW1lT3duZXJzQW5kQ29udGFpbmVyc1RvU2VhcmNoQWdhaW47CiAgICAgQXRvbVN0
cmluZyBtX292ZXJyaWRlU2VhcmNoVGVybUZvclRlc3Rpbmc7CiAgICAgVGltZXIgbV9jb2xsZWN0
Q2xpY2thYmxlRWxlbWVudHNUaW1lcjsKICAgICBib29sIG1fY29sbGVjdGluZ0NsaWNrYWJsZUVs
ZW1lbnRzIHsgZmFsc2UgfTsKQEAgLTc3LDcgKzg1LDcgQEAgaW5saW5lIHZvaWQgTW9kYWxDb250
YWluZXJPYnNlcnZlcjo6b3ZlcnJpZGVTZWFyY2hUZXJtRm9yVGVzdGluZyhjb25zdCBTdHJpbmcm
IHMKIAogaW5saW5lIGJvb2wgTW9kYWxDb250YWluZXJPYnNlcnZlcjo6c2hvdWxkSGlkZShjb25z
dCBFbGVtZW50JiBlbGVtZW50KSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRhaW5lciA9PSAm
ZWxlbWVudCAmJiAhbV9jb2xsZWN0aW5nQ2xpY2thYmxlRWxlbWVudHM7CisgICAgcmV0dXJuIGNv
bnRhaW5lcigpID09ICZlbGVtZW50ICYmICFtX2NvbGxlY3RpbmdDbGlja2FibGVFbGVtZW50czsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFlMDUwMWNjODlmNmMyNTk0NWU3NDUzMDM4Yzk5ZGQ4
MzJhNWU2YTguLjg4ZTVkNjYxNGQxMjM3ZDU4ZGEzZDAyZmVlYTQ1NjY3MTIxYzA2ZWQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMi0wMS0wMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBNb2RhbENvbnRhaW5lck9ic2VydmVyIHNob3VsZCBzZWFyY2ggZm9yIHRleHQg
aW4gc3ViZnJhbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzQ0NDYKKyAgICAgICAgcmRhcjovLzg2ODk3NzcwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGV4ZXJjaXNl
IHRoZSBjaGFuZ2UuIFNlZSBXZWJDb3JlL0NoYW5nTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01vZGFsQ29udGFpbmVyT2Jz
ZXJ2YXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMi0wMS0w
MiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2Ug
SUNVIGluc3RlYWQgb2YgcmVseWluZyBvbiBoYXJkLWNvZGVkIHN0cmluZyBlcXVhbGl0eSBjaGVj
a3MgaW4gTW9kYWxDb250YWluZXJDb250cm9sQ2xhc3NpZmllcgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Nb2RhbENvbnRhaW5lck9ic2VydmF0aW9u
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Nb2RhbENvbnRhaW5l
ck9ic2VydmF0aW9uLm1tCmluZGV4IGM2MDkxNWZmMjJjNGU0NjRiYWNlNWRhMWY1OTgyNWIzYzAx
Y2M1ZjcuLmIxOGNhOTI4MDFiZmEwMzQ1MTA0ZTYxZWRiYmI2ZDBmODU0NjdiZDEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTW9kYWxDb250YWluZXJP
YnNlcnZhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L01vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb24ubW0KQEAgLTI5Myw0ICsyOTMsMTQgQEAgVEVTVChN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uLCBTaG93TW9kYWxDb250YWluZXJBZnRlckZhbHNlUG9z
aXRpdmUpCiAgICAgRVhQRUNUX05VTEwoW3dlYlZpZXcgbGFzdE1vZGFsQ29udGFpbmVySW5mb10p
OwogfQogCitURVNUKE1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb24sIE1vZGFsQ29udGFpbmVySW5T
dWJmcmFtZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBjcmVhdGVNb2RhbENvbnRhaW5lcldlYlZp
ZXcoKTsKKyAgICBbd2ViVmlldyBzZXREZWNpc2lvbjpfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9u
SGlkZUFuZElnbm9yZV07CisgICAgW3dlYlZpZXcgbG9hZEJ1bmRsZVBhZ2U6QCJtb2RhbC1jb250
YWluZXItY3VzdG9tIl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGU6QCJzaG93KGA8cD5zdWJmcmFt
ZSB0ZXN0PC9wPjxpZnJhbWUgc3JjZG9jPSc8aDI+aGVsbG8gd29ybGQ8L2gyPjxidXR0b24+WUVT
PC9idXR0b24+Jz48L2lmcmFtZT5gKSIgYW5kRGVjaWRlUG9saWN5Ol9XS01vZGFsQ29udGFpbmVy
RGVjaXNpb25IaWRlQW5kSWdub3JlXTsKKyAgICBFWFBFQ1RfRkFMU0UoW1t3ZWJWaWV3IGNvbnRl
bnRzQXNTdHJpbmddIGNvbnRhaW5zU3RyaW5nOkAic3ViZnJhbWUgdGVzdCJdKTsKKyAgICBFWFBF
Q1RfRVEoW3dlYlZpZXcgbGFzdE1vZGFsQ29udGFpbmVySW5mb10uYXZhaWxhYmxlVHlwZXMsIF9X
S01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGVQb3NpdGl2ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>