<?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>235706</bug_id>
          
          <creation_ts>2022-01-27 04:37:32 -0800</creation_ts>
          <short_desc>[GTK] Support accent colors</short_desc>
          <delta_ts>2022-01-27 10:18:27 -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>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alice Mikhaylenko">alicem</reporter>
          <assigned_to name="Alice Mikhaylenko">alicem</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1834486</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-27 04:37:32 -0800</bug_when>
    <thetext>See the patch. Had it lying around for a while, probably forgot to submit.

Untested on WPE, let&apos;s see what EWS says. There is logic to fall back to the previous blue if no accent was set, but I don&apos;t know if it builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834487</commentid>
    <comment_count>1</comment_count>
      <attachid>450127</attachid>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-27 04:39:04 -0800</bug_when>
    <thetext>Created attachment 450127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834488</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-01-27 04:41:31 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834506</commentid>
    <comment_count>3</comment_count>
      <attachid>450127</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-01-27 07:05:01 -0800</bug_when>
    <thetext>Comment on attachment 450127
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        here. Remove the last bits of ThemeGtk and foreign drawing on GTK3.

You haven&apos;t really removed the last bits, since we still draw GTK-style scrollbars.

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:1847
&gt; +#if USE(GTK4)
&gt; +static void webkitWebViewBaseCssChanged(GtkWidget* widget, GtkCssStyleChange* change)
&gt; +#else
&gt; +static void webkitWebViewBaseStyleUpdated(GtkWidget* widget)
&gt; +#endif
&gt; +{
&gt; +#if USE(GTK4)
&gt; +    GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)-&gt;css_changed(widget, change);
&gt; +#else
&gt; +    GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)-&gt;style_updated(widget);
&gt; +#endif
&gt; +
&gt; +    WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(widget);
&gt; +    WebKitWebViewBasePrivate* priv = webViewBase-&gt;priv;
&gt; +    priv-&gt;pageProxy-&gt;accentColorDidChange();
&gt; +}

Style nit: it&apos;s more readable to duplicate this short function for GTK 4 vs. GTK 3 than to have all the #ifs inside of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834528</commentid>
    <comment_count>4</comment_count>
      <attachid>450138</attachid>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-27 08:09:04 -0800</bug_when>
    <thetext>Created attachment 450138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834585</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-27 10:18:20 -0800</bug_when>
    <thetext>Committed r288679 (246485@main): &lt;https://commits.webkit.org/246485@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450138.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450127</attachid>
            <date>2022-01-27 04:39:04 -0800</date>
            <delta_ts>2022-01-27 08:08:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235706-20220127174002.patch</filename>
            <type>text/plain</type>
            <size>24431</size>
            <attacher name="Alice Mikhaylenko">alicem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVhMzVhZDI3OTBhMWIxNTdhNjIzYjgx
MGNiOTFkNTAxYzc0NzVhNzEuLmI5ODRjNWQyOWFkMzAzZTViOTU4N2Y2Nzk3NmZhZjdlYjdhYWE3
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMjcgIEFsZXhhbmRlciBNaWtoYXlsZW5r
byAgPGFsZXhtQGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBTdXBwb3J0IGFjY2VudCBjb2xv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTcw
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3Rm
L1BsYXRmb3JtSGF2ZS5oOiBGbGlwIEhBVkVfQVBQX0FDQ0VOVF9DT0xPUlMgZm9yIEdUSy4KKwog
MjAyMi0wMS0yMCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ29jb2FdIEFjY2VsZXJhdGVkIGZpbHRlcnMgYXJlIGVuYWJsZWQgYnkgdGhlIHdyb25nIHNl
dHRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmZmVkZjMzZjU0YjM2ZWUxNWUzN2FmOWFlYjEyMDI0MzZiMTdi
MGNjLi42Mjc0MWI5ODY4MjEwNjQwMWEzMjBlYWY1ZTQ0N2Q0MjkyNmVhMzY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzAgQEAKKzIwMjItMDEtMjcgIEFsZXhhbmRlciBNaWtoYXlsZW5rbyAgPGFs
ZXhtQGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBTdXBwb3J0IGFjY2VudCBjb2xvcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTcwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgYWNj
ZW50IGNvbG9yIFVJIHByb2Nlc3MgcHJvdmlkZXMgcmF0aGVyIHRoYW4gZmV0Y2hpbmcgaXQKKyAg
ICAgICAgaGVyZS4gUmVtb3ZlIHRoZSBsYXN0IGJpdHMgb2YgVGhlbWVHdGsgYW5kIGZvcmVpZ24g
ZHJhd2luZyBvbiBHVEszLgorCisgICAgICAgIFVzZSBkYXJrIGZvcmVncm91bmQgY29sb3IgaWYg
dGhlIGFjY2VudCBjb2xvciBpcyBicmlnaHQuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hZHdhaXRh
L1RoZW1lQWR3YWl0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZTo6c2luZ2xldG9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlRoZW1lQWR3YWl0YTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lQWR3YWl0YTo6YWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lQWR3
YWl0YTo6aW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6VGhlbWVBZHdhaXRhOjpzZXRBY2NlbnRDb2xvcik6CisgICAgICAgICogcGxhdGZv
cm0vYWR3YWl0YS9UaGVtZUFkd2FpdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGhlbWVH
dGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UaGVtZUd0ay5oOiBSZW1v
dmVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVBZHdhaXRhOjpzZXRBY2NlbnRDb2xvcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oOgorCiAyMDIyLTAxLTIwICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWNjZWxlcmF0
ZWQgZmlsdGVycyBhcmUgZW5hYmxlZCBieSB0aGUgd3Jvbmcgc2V0dGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBj
OWQ1NDJmNTA1ODg2ODAzOTBmYzg3Mzk5MmRiZGZjNGQ1Yzc5Y2E0Li40ZWNkNWE0YzE2NmY1NDQ4
NDY0ZGMxNzdhYTRjMDFkZjRjNzViNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIy
LTAxLTI3ICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+CisKKyAgICAg
ICAgW0dUS10gU3VwcG9ydCBhY2NlbnQgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU3MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUYWtlIHRoZSBhY2NlbnQgY29sb3IgZnJvbSBDU1MgbmFt
ZWQgY29sb3JzLiBIYW5kbGUgdGhlIGNvbG9ycyB1c2VkIGluCisgICAgICAgIGxpYmFkd2FpdGEs
IGVsZW1lbnRhcnkgT1MgNi54IGFuZCA1LngsIGFuZCB0aGUgZ2VuZXJpYyBzZWxlY3Rpb24gYmcK
KyAgICAgICAgY29sb3IgdGhhdCBwZW9wbGUgaGF2ZSBiZWVuIHVzaW5nIG91dCBvZiBjb250ZXh0
IGZvciBhIGxvbmcgdGltZS4KKworICAgICAgICBUcmFjayBjaGFuZ2VzIHRoZSBiZXN0IHdlIGNh
biwgZXZlbiB0aG91Z2ggaXQncyBub3QgcGVyZmVjdDogY3NzX2NoYW5nZWQoKQorICAgICAgICBp
biBHVEs0IHdvbid0IGJlIGNhbGxlZCB1bmxlc3MgdGhlIENTUyBjaGFuZ2UgYWZmZWN0cyB0aGUg
d2ViIHZpZXcgaXRzZWxmLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVu
dEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YWNjZW50Q29sb3Ip
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAgICAgICAod2Vi
a2l0V2ViVmlld0Jhc2VTdHlsZVVwZGF0ZWQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2Jh
c2VfY2xhc3NfaW5pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjphY2NlbnRDb2xvckRpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWlu
aXRpYWxpemVXZWJQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNldEFjY2VudENvbG9yKToKKwogMjAyMi0wMS0yNiAgQWxleGFuZGVy
IE1pa2hheWxlbmtvICA8YWxleG1AZ25vbWUub3JnPgogCiAgICAgICAgIFtHVEszXSBQaW5jaCB6
b29taW5nIGZyb20gYSBsaW5rIGFjdGl2YXRlcyBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA1
OGM2MzcwOGEzNDkzOWZjZGYzOGQ0OTVkNjIxZWU3MTRjYjM4MzQ3Li5iZjI5ZjJjYzZjZTA1N2Zm
ZTUxOTZhZTNkMmY2Nzg2ZGNiZTkxZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtNjc3LDcg
KzY3Nyw3IEBACiAjZGVmaW5lIEhBVkVfQ1BVX1RSQU5TTEFUSU9OX0NBUEFCSUxJVFkgMQogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTEwMDAwCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMTAwMDApIHx8IFBMQVRGT1JNKEdUSykKICNkZWZpbmUgSEFWRV9BUFBf
QUNDRU5UX0NPTE9SUyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAy
OWUyYjc4ZjRkMjZiNWY2NmMyMzdmZjA0ZjRjNzc5ODMwNjQzYzllLi40NjVkMTBjMWJiZjJkNzU5
Y2M1YzU0YTVlOWQzYmZiZGRjNDg0YjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAt
NjksNiArNjksOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBwbGF0Zm9ybS9ndGsvU2VsZWN0aW9uRGF0YS5oCiAKICAgICBwbGF0Zm9ybS90ZXh0
L2VuY2hhbnQvVGV4dENoZWNrZXJFbmNoYW50LmgKKworICAgIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUFkd2FpdGEuaAogKQogCiBzZXQoQ1NTX1ZBTFVFX1BMQVRGT1JNX0RFRklORVMgIkhBVkVfT1Nf
REFSS19NT0RFX1NVUFBPUlQ9MSIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
R1RLLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CmluZGV4IGI1ZjhkODRmMDhi
YTRiOGQ2MzE4Y2M4NjQ4MmExNDdlMDVkYTNkNDEuLjczM2E5OTIzNmFkMWNlYjk2NDQ3MWIyMThm
MDRkMDhlYzZjOGYxNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CkBAIC0xMzMsNyArMTMzLDYgQEAg
cGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR2FkZ2V0LmNwcAogcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lU2Nyb2xsYmFyLmNwcAogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAogcGxh
dGZvcm0vZ3RrL1NlbGVjdGlvbkRhdGEuY3BwCi1wbGF0Zm9ybS9ndGsvVGhlbWVHdGsuY3BwCiBw
bGF0Zm9ybS9ndGsvVmFsaWRhdGlvbkJ1YmJsZUd0ay5jcHAKIHBsYXRmb3JtL2d0ay9XaWRnZXRH
dGsuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvVGhl
bWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvVGhlbWVBZHdh
aXRhLmNwcAppbmRleCAzMzYzYjAyOTUzOWIyODkzYzQ3ODNkOWIzMGQ4MmIzMGQ1ZTdiNDA5Li5k
YzYwZTc1YjI5NWJjNTNhNTlhNDcwMmExOTk4N2MwM2ExMWY5NWExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRhL1RoZW1lQWR3YWl0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9UaGVtZUFkd2FpdGEuY3BwCkBAIC04MCwyNyArODAs
MjUgQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNwaW5CdXR0b25CYWNrZ3JvdW5kQ29sb3JEYXJr
ID0gU1JHQkE8dWludDhfdD4geyA0NSwgNDUsIDQKIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzcGlu
QnV0dG9uQmFja2dyb3VuZEhvdmVyZWRDb2xvckRhcmsgPSBTUkdCQTx1aW50OF90PiB7IDIzOCwg
MjM4LCAyMzYsIDUwIH07CiBzdGF0aWMgY29uc3RleHByIGF1dG8gc3BpbkJ1dHRvbkJhY2tncm91
bmRQcmVzc2VkQ29sb3JEYXJrID0gU1JHQkE8dWludDhfdD4geyAyMzgsIDIzOCwgMjM2LCA3MCB9
OwogCi0jaWYgIVBMQVRGT1JNKEdUSykgfHwgVVNFKEdUSzQpCiBUaGVtZSYgVGhlbWU6OnNpbmds
ZXRvbigpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRoZW1lQWR3YWl0YT4gdGhlbWU7
CiAgICAgcmV0dXJuIHRoZW1lOwogfQotI2VuZGlmCiAKIENvbG9yIFRoZW1lQWR3YWl0YTo6YWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ29sb3I6
OndoaXRlOworICAgIHJldHVybiBhY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKS5sdW1p
bmFuY2UoKSA+IDAuNSA/IENvbG9yOjpibGFjayA6IENvbG9yOjp3aGl0ZTsKIH0KIAogQ29sb3Ig
VGhlbWVBZHdhaXRhOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewot
ICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDUyLCAxMzIsIDIyOCB9OworICAgIHJldHVybiBt
X2FjY2VudENvbG9yLmlzVmFsaWQoKSA/IG1fYWNjZW50Q29sb3IgOiBTUkdCQTx1aW50OF90PiB7
IDUyLCAxMzIsIDIyOCB9OwogfQogCiBDb2xvciBUaGVtZUFkd2FpdGE6OmluYWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1JHQkE8dWludDhfdD4g
eyAyNTIsIDI1MiwgMjUyIH07CisgICAgcmV0dXJuIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcigpLmNvbG9yV2l0aEFscGhhKDAuNzUpOwogfQogCiBDb2xvciBUaGVtZUFkd2FpdGE6Omlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKQEAgLTU0NSw0ICs1NDMsMTQg
QEAgdm9pZCBUaGVtZUFkd2FpdGE6OnBhaW50U3BpbkJ1dHRvbihDb250cm9sU3RhdGVzJiBzdGF0
ZXMsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGgKICAgICB9CiB9CiAKK3ZvaWQgVGhlbWVBZHdhaXRh
OjpzZXRBY2NlbnRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgaWYgKG1fYWNjZW50
Q29sb3IgPT0gY29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIG1fYWNjZW50Q29sb3IgPSBj
b2xvcjsKKworICAgIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEv
VGhlbWVBZHdhaXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRhL1RoZW1lQWR3
YWl0YS5oCmluZGV4IGFhNGU0OGM3MjgzNTRhNjQ3ZjZkNDE4MmNmMTgzMDIwOTU1ZGMzNDUuLjJj
OTY3ZWY1M2RiMjRmODQwMDk1MjQxNTFiMTdiM2I4YTc2ZGNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvVGhlbWVBZHdhaXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9UaGVtZUFkd2FpdGEuaApAQCAtNDgsNiArNDgsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpIHsg
fTsKIAorICAgIHZvaWQgc2V0QWNjZW50Q29sb3IoY29uc3QgQ29sb3ImKTsKIHByaXZhdGU6CiAg
ICAgTGVuZ3RoU2l6ZSBjb250cm9sU2l6ZShDb250cm9sUGFydCwgY29uc3QgRm9udENhc2NhZGUm
LCBjb25zdCBMZW5ndGhTaXplJiwgZmxvYXQpIGNvbnN0IGZpbmFsOwogICAgIExlbmd0aFNpemUg
bWluaW11bUNvbnRyb2xTaXplKENvbnRyb2xQYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYsIGNvbnN0
IExlbmd0aFNpemUmLCBmbG9hdCkgY29uc3QgZmluYWw7CkBAIC01OCw2ICs1OSw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwYWludFJhZGlvKENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmLCBib29sKTsKICAgICB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xT
dGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBib29sKTsKICAgICB2
b2lkIHBhaW50U3BpbkJ1dHRvbihDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiwgYm9vbCk7CisKKyAgICBDb2xvciBtX2FjY2VudENvbG9yOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1RoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9UaGVtZUd0
ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNzBkMzg4OGY0ZDExZTVlM2I1
ZDRmNmQxNGU0MTg2NDU0NGRhMWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1RoZW1lR3RrLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDExNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmICFVU0UoR1RL
NCkKLQotI2luY2x1ZGUgIlRoZW1lR3RrLmgiCi0KLSNpbmNsdWRlICJHUmVmUHRyR3RrLmgiCi0j
aW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1U
aGVtZSYgVGhlbWU6OnNpbmdsZXRvbigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRo
ZW1lR3RrPiB0aGVtZTsKLSAgICByZXR1cm4gdGhlbWU7Ci19Ci0KLXZvaWQgVGhlbWVHdGs6OmVu
c3VyZVBsYXRmb3JtQ29sb3JzKCkgY29uc3QKLXsKLSAgICBpZiAobV9hY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotCi0gICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRo
PiBlbnRyeVBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKLSAgICBndGtf
d2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUoZW50cnlQYXRoLmdldCgpLCBHX1RZUEVfTk9ORSk7Ci0g
ICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKGVudHJ5UGF0aC5nZXQoKSwg
LTEsICJlbnRyeSIpOwotICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBlbnRyeUNvbnRleHQg
PSBhZG9wdEdSZWYoZ3RrX3N0eWxlX2NvbnRleHRfbmV3KCkpOwotICAgIGd0a19zdHlsZV9jb250
ZXh0X3NldF9wYXRoKGVudHJ5Q29udGV4dC5nZXQoKSwgZW50cnlQYXRoLmdldCgpKTsKLQotICAg
IEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gc2VsZWN0aW9uUGF0aCA9IGFkb3B0R1JlZihndGtfd2lk
Z2V0X3BhdGhfY29weShndGtfc3R5bGVfY29udGV4dF9nZXRfcGF0aChlbnRyeUNvbnRleHQuZ2V0
KCkpKSk7Ci0gICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHNlbGVjdGlvblBhdGguZ2V0
KCksIEdfVFlQRV9OT05FKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25h
bWUoc2VsZWN0aW9uUGF0aC5nZXQoKSwgLTEsICJzZWxlY3Rpb24iKTsKLSAgICBHUmVmUHRyPEd0
a1N0eWxlQ29udGV4dD4gc2VsZWN0aW9uQ29udGV4dCA9IGFkb3B0R1JlZihndGtfc3R5bGVfY29u
dGV4dF9uZXcoKSk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoc2VsZWN0aW9uQ29u
dGV4dC5nZXQoKSwgc2VsZWN0aW9uUGF0aC5nZXQoKSk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRf
c2V0X3BhcmVudChzZWxlY3Rpb25Db250ZXh0LmdldCgpLCBlbnRyeUNvbnRleHQuZ2V0KCkpOwot
Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3N0YXRlKHNlbGVjdGlvbkNvbnRleHQuZ2V0KCks
IHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KEdUS19TVEFURV9GTEFHX1NFTEVDVEVEIHwgR1RL
X1NUQVRFX0ZMQUdfRk9DVVNFRCkpOwotCi0gICAgR2RrUkdCQSBjb2xvcjsKLSAgICBndGtfc3R5
bGVfY29udGV4dF9nZXRfYmFja2dyb3VuZF9jb2xvcihzZWxlY3Rpb25Db250ZXh0LmdldCgpLCBn
dGtfc3R5bGVfY29udGV4dF9nZXRfc3RhdGUoc2VsZWN0aW9uQ29udGV4dC5nZXQoKSksICZjb2xv
cik7Ci0gICAgbV9hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcjsKLQotICAg
IGd0a19zdHlsZV9jb250ZXh0X2dldF9jb2xvcihzZWxlY3Rpb25Db250ZXh0LmdldCgpLCBndGtf
c3R5bGVfY29udGV4dF9nZXRfc3RhdGUoc2VsZWN0aW9uQ29udGV4dC5nZXQoKSksICZjb2xvcik7
Ci0gICAgbV9hdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciA9IGNvbG9yOwotCi0gICAgZ3Rr
X3N0eWxlX2NvbnRleHRfc2V0X3N0YXRlKHNlbGVjdGlvbkNvbnRleHQuZ2V0KCksIEdUS19TVEFU
RV9GTEFHX1NFTEVDVEVEKTsKLQotICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9iYWNrZ3JvdW5k
X2NvbG9yKHNlbGVjdGlvbkNvbnRleHQuZ2V0KCksIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdGF0
ZShzZWxlY3Rpb25Db250ZXh0LmdldCgpKSwgJmNvbG9yKTsKLSAgICBtX2luYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yID0gY29sb3I7Ci0KLSAgICBndGtfc3R5bGVfY29udGV4dF9nZXRf
Y29sb3Ioc2VsZWN0aW9uQ29udGV4dC5nZXQoKSwgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0YXRl
KHNlbGVjdGlvbkNvbnRleHQuZ2V0KCkpLCAmY29sb3IpOwotICAgIG1faW5hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IgPSBjb2xvcjsKLQotICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAotfQotCi12b2lkIFRoZW1lR3RrOjpwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgp
Ci17Ci0gICAgbV9hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgPSB7IH07Ci19Ci0KLUNv
bG9yIFRoZW1lR3RrOjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAotewot
ICAgIGVuc3VyZVBsYXRmb3JtQ29sb3JzKCk7Ci0gICAgcmV0dXJuIG1fYXRpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3I7Ci19Ci0KLUNvbG9yIFRoZW1lR3RrOjphY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdAotewotICAgIGVuc3VyZVBsYXRmb3JtQ29sb3JzKCk7Ci0gICAg
cmV0dXJuIG1fYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwotfQotCi1Db2xvciBUaGVt
ZUd0azo6aW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAotewotICAgIGVu
c3VyZVBsYXRmb3JtQ29sb3JzKCk7Ci0gICAgcmV0dXJuIG1faW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3I7Ci19Ci0KLUNvbG9yIFRoZW1lR3RrOjppbmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpIGNvbnN0Ci17Ci0gICAgZW5zdXJlUGxhdGZvcm1Db2xvcnMoKTsKLSAgICBy
ZXR1cm4gbV9pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gIVVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1RoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvVGhlbWVHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmNmYzQyYmVl
NzI4ODNlODkwYTU5ZjdhZGE3ZTk1NDY5YjA4NDg5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVGhlbWVH
dGsuaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiAhVVNFKEdU
SzQpCi0KLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUgIlRoZW1lQWR3YWl0YS5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFRoZW1lR3RrIGZpbmFsIDogcHVibGljIFRoZW1l
QWR3YWl0YSB7Ci1wcml2YXRlOgotICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIGluYWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHBsYXRmb3JtQ29s
b3JzRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGVuc3VyZVBsYXRmb3JtQ29sb3Jz
KCkgY29uc3Q7Ci0KLSAgICBtdXRhYmxlIENvbG9yIG1fYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yOwotICAgIG11dGFibGUgQ29sb3IgbV9hdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cjsKLSAgICBtdXRhYmxlIENvbG9yIG1faW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7
Ci0gICAgbXV0YWJsZSBDb2xvciBtX2luYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gIVVTRShHVEs0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcAppbmRleCAy
ZDc0YzA5ZWY2MjVlZjRiOWYzNzQ0MTAxNDU3NDMxYTE1MDE3ZTc3Li5lNjk1MWRlZTAxOThjM2I3
YTQ5Y2EyMzUxY2NlZGUyZTc4YmQ5MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcApAQCAtNzYyLDQgKzc2MiwxMCBAQCBTZWNvbmRzIFJl
bmRlclRoZW1lQWR3YWl0YTo6Y2FyZXRCbGlua0ludGVydmFsKCkgY29uc3QKIH0KICNlbmRpZgog
Cit2b2lkIFJlbmRlclRoZW1lQWR3YWl0YTo6c2V0QWNjZW50Q29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yKQoreworICAgIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24o
KSkuc2V0QWNjZW50Q29sb3IoY29sb3IpOworICAgIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUFkd2FpdGEuaAppbmRleCA5OTMzMjVjNDE2NjVlZGRiMzQ4OTdmY2M3ZTUz
Mzg3NTg1OGMyYjkzLi4zMGMwZDk5NDQ4YWI5YzE5MWJmMGUyZTAwYWI1NDNjNThmNmI0Nzc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCkBAIC0z
Myw2ICszMyw4IEBAIGNsYXNzIFJlbmRlclRoZW1lQWR3YWl0YSA6IHB1YmxpYyBSZW5kZXJUaGVt
ZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVBZHdhaXRhKCkgPSBkZWZhdWx0
OwogCisgICAgdm9pZCBzZXRBY2NlbnRDb2xvcihjb25zdCBDb2xvciYpOworCiBwcml2YXRlOgog
ICAgIFN0cmluZyBleHRyYURlZmF1bHRTdHlsZVNoZWV0KCkgZmluYWw7CiAjaWYgRU5BQkxFKFZJ
REVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJ
bXBsLmNwcAppbmRleCA1MTU2ZmNmNzJmMzdiODllNTNjM2RjNTljMzI5Y2IzMTFiNjljMjZmLi5k
NWVlZGVhMzg3MTk3OTkxNWRhOWViZGU4MDM1NmMxNWY0ODBiYjhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNjA3LDQg
KzYwNywyOCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjptYWtlVmlld0JsYW5rKGJvb2wgbWFrZUJs
YW5rKQogICAgIHdlYmtpdFdlYlZpZXdCYXNlTWFrZUJsYW5rKFdFQktJVF9XRUJfVklFV19CQVNF
KG1fdmlld1dpZGdldCksIG1ha2VCbGFuayk7CiB9CiAKK1dlYkNvcmU6OkNvbG9yIFBhZ2VDbGll
bnRJbXBsOjphY2NlbnRDb2xvcigpCit7CisgICAgYXV0byogY29udGV4dCA9IGd0a193aWRnZXRf
Z2V0X3N0eWxlX2NvbnRleHQobV92aWV3V2lkZ2V0KTsKKyAgICBHZGtSR0JBIGFjY2VudENvbG9y
OworCisgICAgLy8gbGliYWR3YWl0YQorICAgIGlmIChndGtfc3R5bGVfY29udGV4dF9sb29rdXBf
Y29sb3IoY29udGV4dCwgImFjY2VudF9iZ19jb2xvciIsICZhY2NlbnRDb2xvcikpCisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpDb2xvcihhY2NlbnRDb2xvcik7CisKKyAgICAvLyBlbGVtZW50YXJ5
IE9TIDYueAorICAgIGlmIChndGtfc3R5bGVfY29udGV4dF9sb29rdXBfY29sb3IoY29udGV4dCwg
ImFjY2VudF9jb2xvciIsICZhY2NlbnRDb2xvcikpCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpD
b2xvcihhY2NlbnRDb2xvcik7CisKKyAgICAvLyBlbGVtZW50YXJ5IE9TIDUueAorICAgIGlmIChn
dGtfc3R5bGVfY29udGV4dF9sb29rdXBfY29sb3IoY29udGV4dCwgImFjY2VudENvbG9yIiwgJmFj
Y2VudENvbG9yKSkKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbG9yKGFjY2VudENvbG9yKTsK
KworICAgIC8vIExlZ2FjeQorICAgIGlmIChndGtfc3R5bGVfY29udGV4dF9sb29rdXBfY29sb3Io
Y29udGV4dCwgInRoZW1lX3NlbGVjdGVkX2JnX2NvbG9yIiwgJmFjY2VudENvbG9yKSkKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkNvbG9yKGFjY2VudENvbG9yKTsKKworICAgIHJldHVybiBTUkdC
QTx1aW50OF90PiB7IDUyLCAxMzIsIDIyOCB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApp
bmRleCBjZTg3M2JkZmJlNzE5NGJlM2I4NzMzODYwMDQ3YmRjYzdkMmU3YzdlLi45NDY5MTA5Y2Ni
MWIwNzZmMTY4OTNlMTE5MzhmODVlMTczNmY4ZDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xNzksNiArMTc5LDggQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgbWFrZVZpZXdCbGFuayhib29sKSBvdmVycmlkZTsKIAorICAgIFdl
YkNvcmU6OkNvbG9yIGFjY2VudENvbG9yKCkgb3ZlcnJpZGU7CisKICAgICAvLyBNZW1iZXJzIG9m
IFBhZ2VDbGllbnRJbXBsIGNsYXNzCiAgICAgR3RrV2lkZ2V0KiBtX3ZpZXdXaWRnZXQ7CiAgICAg
RGVmYXVsdFVuZG9Db250cm9sbGVyIG1fdW5kb0NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDU3
M2Q3ZmVkNjYyNzAxMjRlMDVlY2Y3YmE0NTYwNDQyN2UwYTUyMDUuLmI4NGRjOTAwMTMyNGIzNmYx
Y2M5NWI1N2I5MGM5MWM5MjEyYzk5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC0xODI5LDYgKzE4MjksMjIg
QEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlRm9jdXMoR3RrV2lkZ2V0KiB3aWRn
ZXQsIEd0a0RpcmVjdGlvblR5cGUgZGlyZWMKICAgICByZXR1cm4gR1RLX1dJREdFVF9DTEFTUyh3
ZWJraXRfd2ViX3ZpZXdfYmFzZV9wYXJlbnRfY2xhc3MpLT5mb2N1cyh3aWRnZXQsIGRpcmVjdGlv
bik7CiB9CiAKKyNpZiBVU0UoR1RLNCkKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ3Nz
Q2hhbmdlZChHdGtXaWRnZXQqIHdpZGdldCwgR3RrQ3NzU3R5bGVDaGFuZ2UqIGNoYW5nZSkKKyNl
bHNlCitzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN0eWxlVXBkYXRlZChHdGtXaWRnZXQq
IHdpZGdldCkKKyNlbmRpZgoreworI2lmIFVTRShHVEs0KQorICAgIEdUS19XSURHRVRfQ0xBU1Mo
d2Via2l0X3dlYl92aWV3X2Jhc2VfcGFyZW50X2NsYXNzKS0+Y3NzX2NoYW5nZWQod2lkZ2V0LCBj
aGFuZ2UpOworI2Vsc2UKKyAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19iYXNl
X3BhcmVudF9jbGFzcyktPnN0eWxlX3VwZGF0ZWQod2lkZ2V0KTsKKyNlbmRpZgorCisgICAgV2Vi
S2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlID0gV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2lkZ2V0
KTsKKyAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJp
djsKKyAgICBwcml2LT5wYWdlUHJveHktPmFjY2VudENvbG9yRGlkQ2hhbmdlKCk7Cit9CiAKIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlWm9vbUJlZ2luKFdlYktpdFdlYlZpZXdCYXNlKiB3
ZWJWaWV3QmFzZSwgR2RrRXZlbnRTZXF1ZW5jZSogc2VxdWVuY2UsIEd0a0dlc3R1cmUqIGdlc3R1
cmUpCiB7CkBAIC0yMTgyLDYgKzIxOTgsMTEgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3QmFzZUNsYXNzKiB3ZWJraXRXZWJWaWUKICNl
bHNlCiAgICAgd2lkZ2V0Q2xhc3MtPmhpZXJhcmNoeV9jaGFuZ2VkID0gd2Via2l0V2ViVmlld0Jh
c2VIaWVyYXJjaHlDaGFuZ2VkOwogI2VuZGlmCisjaWYgVVNFKEdUSzQpCisgICAgd2lkZ2V0Q2xh
c3MtPmNzc19jaGFuZ2VkID0gd2Via2l0V2ViVmlld0Jhc2VDc3NDaGFuZ2VkOworI2Vsc2UKKyAg
ICB3aWRnZXRDbGFzcy0+c3R5bGVfdXBkYXRlZCA9IHdlYmtpdFdlYlZpZXdCYXNlU3R5bGVVcGRh
dGVkOworI2VuZGlmCiAKICAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNU
X0NMQVNTKHdlYmtpdFdlYlZpZXdCYXNlQ2xhc3MpOwogICAgIGdvYmplY3RDbGFzcy0+Y29uc3Ry
dWN0ZWQgPSB3ZWJraXRXZWJWaWV3QmFzZUNvbnN0cnVjdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCA4YzY1OTlkYTk3NTFlMjgzYTM3NTA4Zjk5MGI1ZTVlOWM3
ZWQxNjM2Li4yZTY1ODQ5N2ZmNWM2MTE3MWJhZmRhN2VlNTE2YTExZjYyZGE0NjYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTAwMyw2ICsxMDAzLDEwIEBAIHB1
YmxpYzoKICNpZiBQTEFURk9STShHVEspCiAgICAgUGxhdGZvcm1WaWV3V2lkZ2V0IHZpZXdXaWRn
ZXQoKTsKICAgICBib29sIG1ha2VHTENvbnRleHRDdXJyZW50KCk7CisKKyNpZiBIQVZFKEFQUF9B
Q0NFTlRfQ09MT1JTKQorICAgIHZvaWQgYWNjZW50Q29sb3JEaWRDaGFuZ2UoKTsKKyNlbmRpZgog
I2VuZGlmCiAKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNvbG9yPiYgYmFja2dy
b3VuZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ29sb3I7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKaW5kZXggMzA1ZTI1
ZTRlYmM0NWZhMGYwNDA4YTA5ZjdjMThhNjZjZDI4ZTJlNy4uZDI5MTk5NzNlNGQ3ZjY4OTQ1YjU3
YWQ5ZGMyNzA5MDkxMzQzOTA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L1dlYlBhZ2VQcm94eUd0ay5jcHAKQEAgLTEwNiw0ICsxMDYsMTQgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNlbmRNZXNzYWdlVG9XZWJWaWV3KFVzZXJNZXNzYWdlJiYgbWVzc2FnZSkKICAgICBzZW5k
TWVzc2FnZVRvV2ViVmlld1dpdGhSZXBseShXVEZNb3ZlKG1lc3NhZ2UpLCBbXShVc2VyTWVzc2Fn
ZSYmKSB7IH0pOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6YWNjZW50Q29sb3JEaWRDaGFuZ2Uo
KQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgV2ViQ29yZTo6Q29sb3IgYWNjZW50Q29sb3IgPSBwYWdlQ2xpZW50KCkuYWNjZW50Q29sb3Io
KTsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEFjY2VudENvbG9yKGFjY2VudENv
bG9yKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2YTBlYzhmNTI2YjdmZWUwN2ZmZmRlNWMz
M2QxZTdhOWVlNDZkODlkLi5mMzc4NGZlODI0YjFhYjIyODUwYzUxYzIzOTY0N2UyZWM0ZjJlMmJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
OTk4LDYgKzk5OCwxMCBAQCB2b2lkIFdlYlBhZ2U6OnJlaW5pdGlhbGl6ZVdlYlBhZ2UoV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgaWYgKG1fbGF5ZXJIb3N0aW5n
TW9kZSAhPSBwYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUpCiAgICAgICAgIHNldExheWVySG9z
dGluZ01vZGUocGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlKTsKIAorI2lmIEhBVkUoQVBQX0FD
Q0VOVF9DT0xPUlMpCisgICAgc2V0QWNjZW50Q29sb3IocGFyYW1ldGVycy5hY2NlbnRDb2xvcik7
CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKICAgICBHdGtTZXR0aW5nc01hbmFnZXJQcm94
eTo6c2luZ2xldG9uKCkuYXBwbHlTZXR0aW5ncyhXVEZNb3ZlKHBhcmFtZXRlcnMuZ3RrU2V0dGlu
Z3MpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IDAyOTIwNzRlZmRlMmQ3ZGRiNmIwNmFiMmQ1YjFjYzFiOGM4NWQzNjUuLjI4MjgzOTIy
OTlhNzA3MWU0ZjVhYjZkOTI4NWUyMjU0NzIwNjMxZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIzNTMsNiArMjM1MywxMCBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBtX3Byb2Nlc3NEaXNwbGF5TmFtZTsKICAgICBXZWJDb3JlOjpBbGxvd3NDb250
ZW50SmF2YVNjcmlwdCBtX2FsbG93c0NvbnRlbnRKYXZhU2NyaXB0RnJvbU1vc3RSZWNlbnROYXZp
Z2F0aW9uIHsgV2ViQ29yZTo6QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6OlllcyB9OwogCisjaWYg
UExBVEZPUk0oR1RLKQorICAgIFdlYkNvcmU6OkNvbG9yIG1fYWNjZW50Q29sb3I7CisjZW5kaWYK
KwogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKICAgICBib29sIG1fbGltaXRzTmF2aWdh
dGlvbnNUb0FwcEJvdW5kRG9tYWlucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX25hdmlnYXRpb25I
YXNPY2N1cmVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDZmOTFhMmE3NzQxNjZjZDJiODg2ZGZl
YmI0YmJhOGY1MWZlZjhmM2QuLjllMTk5NWU2MzUyNDBiZDI0ZGQ4NzcwOTZmZjlhNzE5YzEzZmY2
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgpAQCAtNTE3LDYgKzUxNywxMCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZQogCiAgICAgRWZmZWN0aXZlQXBwZWFyYW5jZURpZENoYW5nZShib29sIHVzZURhcmtBcHBlYXJh
bmNlLCBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKQogCisjaWYgSEFWRShBUFBf
QUNDRU5UX0NPTE9SUykKKyAgICBTZXRBY2NlbnRDb2xvcihXZWJDb3JlOjpDb2xvciBjb2xvcikK
KyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmVxdWVzdEFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mbygpIC0+IChib29sIGFjdGl2ZSwgYm9vbCByZWdpc3RlcmVkQXNOb3dQbGF5
aW5nQXBwbGljYXRpb24sIFN0cmluZyB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxh
cHNlZFRpbWUsIHVpbnQ2NF90IHVuaXF1ZUlkZW50aWZpZXIpIEFzeW5jCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcApp
bmRleCBmNGJjZWQwMGZjYjg2YzY0Mzk5OWE2NzMyMjVmNmU4ZmZkOTcxYTA3Li4xYmRkNWRkZjcy
YWJiZjk4MjgzNDM4ZGY4MmZmYWYyOTg1MDVmZjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCkBAIC00NSw2ICs0NSw4IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFj
dGVyaXN0aWNzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVuZGVyVGhlbWVBZHdhaXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5n
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oPgpAQCAtMTk0LDQgKzE5Niw5IEBAIHZvaWQgV2ViUGFn
ZTo6c2hvd0Vtb2ppUGlja2VyKEZyYW1lJiBmcmFtZSkKICAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd0Vtb2ppUGlja2VyKGZyYW1lLnZpZXcoKS0+Y29u
dGVudHNUb1Jvb3RWaWV3KGZyYW1lLnNlbGVjdGlvbigpLmFic29sdXRlQ2FyZXRCb3VuZHMoKSkp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2V0QWNj
ZW50Q29sb3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpCit7CisgICAgc3RhdGljX2Nhc3Q8UmVuZGVy
VGhlbWVBZHdhaXRhJj4oUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpKS5zZXRBY2NlbnRDb2xvcihj
b2xvcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450138</attachid>
            <date>2022-01-27 08:09:04 -0800</date>
            <delta_ts>2022-01-27 10:18:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235706-20220127211002.patch</filename>
            <type>text/plain</type>
            <size>24619</size>
            <attacher name="Alice Mikhaylenko">alicem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVhMzVhZDI3OTBhMWIxNTdhNjIzYjgx
MGNiOTFkNTAxYzc0NzVhNzEuLmI5ODRjNWQyOWFkMzAzZTViOTU4N2Y2Nzk3NmZhZjdlYjdhYWE3
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDEtMjcgIEFsZXhhbmRlciBNaWtoYXlsZW5r
byAgPGFsZXhtQGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBTdXBwb3J0IGFjY2VudCBjb2xv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTcw
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3Rm
L1BsYXRmb3JtSGF2ZS5oOiBGbGlwIEhBVkVfQVBQX0FDQ0VOVF9DT0xPUlMgZm9yIEdUSy4KKwog
MjAyMi0wMS0yMCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ29jb2FdIEFjY2VsZXJhdGVkIGZpbHRlcnMgYXJlIGVuYWJsZWQgYnkgdGhlIHdyb25nIHNl
dHRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmZmVkZjMzZjU0YjM2ZWUxNWUzN2FmOWFlYjEyMDI0MzZiMTdi
MGNjLi40ZjA1YWYyZDYyODEwMDZmNGNhZTEwYWQ3NWEwNDBkOWMyZmM3NjBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzEgQEAKKzIwMjItMDEtMjcgIEFsZXhhbmRlciBNaWtoYXlsZW5rbyAgPGFs
ZXhtQGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBTdXBwb3J0IGFjY2VudCBjb2xvcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTcwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgYWNj
ZW50IGNvbG9yIFVJIHByb2Nlc3MgcHJvdmlkZXMgcmF0aGVyIHRoYW4gZmV0Y2hpbmcgaXQgaGVy
ZS4KKyAgICAgICAgUmVtb3ZlIHRoZSBsYXN0IGJpdHMgb2YgVGhlbWVHdGsgYW5kIHN0b3AgdXNp
bmcgZm9yZWlnbiBkcmF3aW5nIGZvcgorICAgICAgICB0ZXh0IHNlbGVjdGlvbiBvbiBHVEszLgor
CisgICAgICAgIFVzZSBkYXJrIGZvcmVncm91bmQgY29sb3IgaWYgdGhlIGFjY2VudCBjb2xvciBp
cyBicmlnaHQuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzR1RLLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hZHdhaXRhL1RoZW1lQWR3YWl0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUaGVtZTo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlRoZW1lQWR3YWl0YTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRoZW1lQWR3YWl0YTo6YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lQWR3YWl0YTo6aW5hY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGhlbWVBZHdh
aXRhOjpzZXRBY2NlbnRDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0YS9UaGVtZUFk
d2FpdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGhlbWVHdGsuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9UaGVtZUd0ay5oOiBSZW1vdmVkLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVBZHdhaXRhOjpzZXRBY2NlbnRDb2xvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lQWR3YWl0YS5oOgorCiAyMDIyLTAxLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRA
YXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWNjZWxlcmF0ZWQgZmlsdGVycyBhcmUgZW5h
YmxlZCBieSB0aGUgd3Jvbmcgc2V0dGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjOWQ1NDJmNTA1ODg2ODAzOTBm
Yzg3Mzk5MmRiZGZjNGQ1Yzc5Y2E0Li40ZWNkNWE0YzE2NmY1NDQ4NDY0ZGMxNzdhYTRjMDFkZjRj
NzViNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAxLTI3ICBBbGV4YW5kZXIg
TWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+CisKKyAgICAgICAgW0dUS10gU3VwcG9ydCBh
Y2NlbnQgY29sb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzU3MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUYWtlIHRoZSBhY2NlbnQgY29sb3IgZnJvbSBDU1MgbmFtZWQgY29sb3JzLiBIYW5kbGUg
dGhlIGNvbG9ycyB1c2VkIGluCisgICAgICAgIGxpYmFkd2FpdGEsIGVsZW1lbnRhcnkgT1MgNi54
IGFuZCA1LngsIGFuZCB0aGUgZ2VuZXJpYyBzZWxlY3Rpb24gYmcKKyAgICAgICAgY29sb3IgdGhh
dCBwZW9wbGUgaGF2ZSBiZWVuIHVzaW5nIG91dCBvZiBjb250ZXh0IGZvciBhIGxvbmcgdGltZS4K
KworICAgICAgICBUcmFjayBjaGFuZ2VzIHRoZSBiZXN0IHdlIGNhbiwgZXZlbiB0aG91Z2ggaXQn
cyBub3QgcGVyZmVjdDogY3NzX2NoYW5nZWQoKQorICAgICAgICBpbiBHVEs0IHdvbid0IGJlIGNh
bGxlZCB1bmxlc3MgdGhlIENTUyBjaGFuZ2UgYWZmZWN0cyB0aGUgd2ViIHZpZXcgaXRzZWxmLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YWNjZW50Q29sb3IpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTdHls
ZVVwZGF0ZWQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2Jhc2VfY2xhc3NfaW5pdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9n
dGsvV2ViUGFnZVByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojph
Y2NlbnRDb2xvckRpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWluaXRpYWxpemVXZWJQYWdlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNl
dEFjY2VudENvbG9yKToKKwogMjAyMi0wMS0yNiAgQWxleGFuZGVyIE1pa2hheWxlbmtvICA8YWxl
eG1AZ25vbWUub3JnPgogCiAgICAgICAgIFtHVEszXSBQaW5jaCB6b29taW5nIGZyb20gYSBsaW5r
IGFjdGl2YXRlcyBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA1OGM2MzcwOGEzNDkzOWZjZGYz
OGQ0OTVkNjIxZWU3MTRjYjM4MzQ3Li5iZjI5ZjJjYzZjZTA1N2ZmZTUxOTZhZTNkMmY2Nzg2ZGNi
ZTkxZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtNjc3LDcgKzY3Nyw3IEBACiAjZGVmaW5l
IEhBVkVfQ1BVX1RSQU5TTEFUSU9OX0NBUEFCSUxJVFkgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwCisjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAw
MDApIHx8IFBMQVRGT1JNKEdUSykKICNkZWZpbmUgSEFWRV9BUFBfQUNDRU5UX0NPTE9SUyAxCiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAyOWUyYjc4ZjRkMjZiNWY2NmMy
MzdmZjA0ZjRjNzc5ODMwNjQzYzllLi40NjVkMTBjMWJiZjJkNzU5Y2M1YzU0YTVlOWQzYmZiZGRj
NDg0YjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNjksNiArNjksOCBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9n
dGsvU2VsZWN0aW9uRGF0YS5oCiAKICAgICBwbGF0Zm9ybS90ZXh0L2VuY2hhbnQvVGV4dENoZWNr
ZXJFbmNoYW50LmgKKworICAgIHJlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAogKQogCiBz
ZXQoQ1NTX1ZBTFVFX1BMQVRGT1JNX0RFRklORVMgIkhBVkVfT1NfREFSS19NT0RFX1NVUFBPUlQ9
MSIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNHVEsudHh0CmluZGV4IGI1ZjhkODRmMDhiYTRiOGQ2MzE4Y2M4NjQ4MmEx
NDdlMDVkYTNkNDEuLjczM2E5OTIzNmFkMWNlYjk2NDQ3MWIyMThmMDRkMDhlYzZjOGYxNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNHVEsudHh0CkBAIC0xMzMsNyArMTMzLDYgQEAgcGxhdGZvcm0vZ3RrL1JlbmRl
clRoZW1lR2FkZ2V0LmNwcAogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lU2Nyb2xsYmFyLmNwcAog
cGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAogcGxhdGZvcm0vZ3RrL1NlbGVjdGlv
bkRhdGEuY3BwCi1wbGF0Zm9ybS9ndGsvVGhlbWVHdGsuY3BwCiBwbGF0Zm9ybS9ndGsvVmFsaWRh
dGlvbkJ1YmJsZUd0ay5jcHAKIHBsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvVGhlbWVBZHdhaXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvVGhlbWVBZHdhaXRhLmNwcAppbmRleCAzMzYz
YjAyOTUzOWIyODkzYzQ3ODNkOWIzMGQ4MmIzMGQ1ZTdiNDA5Li5kYzYwZTc1YjI5NWJjNTNhNTlh
NDcwMmExOTk4N2MwM2ExMWY5NWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hZHdhaXRhL1RoZW1lQWR3YWl0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YWR3YWl0YS9UaGVtZUFkd2FpdGEuY3BwCkBAIC04MCwyNyArODAsMjUgQEAgc3RhdGljIGNvbnN0
ZXhwciBhdXRvIHNwaW5CdXR0b25CYWNrZ3JvdW5kQ29sb3JEYXJrID0gU1JHQkE8dWludDhfdD4g
eyA0NSwgNDUsIDQKIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzcGluQnV0dG9uQmFja2dyb3VuZEhv
dmVyZWRDb2xvckRhcmsgPSBTUkdCQTx1aW50OF90PiB7IDIzOCwgMjM4LCAyMzYsIDUwIH07CiBz
dGF0aWMgY29uc3RleHByIGF1dG8gc3BpbkJ1dHRvbkJhY2tncm91bmRQcmVzc2VkQ29sb3JEYXJr
ID0gU1JHQkE8dWludDhfdD4geyAyMzgsIDIzOCwgMjM2LCA3MCB9OwogCi0jaWYgIVBMQVRGT1JN
KEdUSykgfHwgVVNFKEdUSzQpCiBUaGVtZSYgVGhlbWU6OnNpbmdsZXRvbigpCiB7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFRoZW1lQWR3YWl0YT4gdGhlbWU7CiAgICAgcmV0dXJuIHRoZW1l
OwogfQotI2VuZGlmCiAKIENvbG9yIFRoZW1lQWR3YWl0YTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ29sb3I6OndoaXRlOworICAgIHJldHVy
biBhY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKS5sdW1pbmFuY2UoKSA+IDAuNSA/IENv
bG9yOjpibGFjayA6IENvbG9yOjp3aGl0ZTsKIH0KIAogQ29sb3IgVGhlbWVBZHdhaXRhOjphY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewotICAgIHJldHVybiBTUkdCQTx1
aW50OF90PiB7IDUyLCAxMzIsIDIyOCB9OworICAgIHJldHVybiBtX2FjY2VudENvbG9yLmlzVmFs
aWQoKSA/IG1fYWNjZW50Q29sb3IgOiBTUkdCQTx1aW50OF90PiB7IDUyLCAxMzIsIDIyOCB9Owog
fQogCiBDb2xvciBUaGVtZUFkd2FpdGE6OmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAyNTIsIDI1MiwgMjUyIH07
CisgICAgcmV0dXJuIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpLmNvbG9yV2l0aEFs
cGhhKDAuNzUpOwogfQogCiBDb2xvciBUaGVtZUFkd2FpdGE6OmluYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKCkgY29uc3QKQEAgLTU0NSw0ICs1NDMsMTQgQEAgdm9pZCBUaGVtZUFkd2Fp
dGE6OnBhaW50U3BpbkJ1dHRvbihDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4
dCYgZ3JhcGgKICAgICB9CiB9CiAKK3ZvaWQgVGhlbWVBZHdhaXRhOjpzZXRBY2NlbnRDb2xvcihj
b25zdCBDb2xvciYgY29sb3IpCit7CisgICAgaWYgKG1fYWNjZW50Q29sb3IgPT0gY29sb3IpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fYWNjZW50Q29sb3IgPSBjb2xvcjsKKworICAgIHBsYXRm
b3JtQ29sb3JzRGlkQ2hhbmdlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvVGhlbWVBZHdhaXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRhL1RoZW1lQWR3YWl0YS5oCmluZGV4IGFhNGU0
OGM3MjgzNTRhNjQ3ZjZkNDE4MmNmMTgzMDIwOTU1ZGMzNDUuLjJjOTY3ZWY1M2RiMjRmODQwMDk1
MjQxNTFiMTdiM2I4YTc2ZGNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Fkd2FpdGEvVGhlbWVBZHdhaXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYWR3
YWl0YS9UaGVtZUFkd2FpdGEuaApAQCAtNDgsNiArNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpIHsgfTsKIAorICAgIHZvaWQgc2V0
QWNjZW50Q29sb3IoY29uc3QgQ29sb3ImKTsKIHByaXZhdGU6CiAgICAgTGVuZ3RoU2l6ZSBjb250
cm9sU2l6ZShDb250cm9sUGFydCwgY29uc3QgRm9udENhc2NhZGUmLCBjb25zdCBMZW5ndGhTaXpl
JiwgZmxvYXQpIGNvbnN0IGZpbmFsOwogICAgIExlbmd0aFNpemUgbWluaW11bUNvbnRyb2xTaXpl
KENvbnRyb2xQYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYsIGNvbnN0IExlbmd0aFNpemUmLCBmbG9h
dCkgY29uc3QgZmluYWw7CkBAIC01OCw2ICs1OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWlu
dFJhZGlvKENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
LCBib29sKTsKICAgICB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBib29sKTsKICAgICB2b2lkIHBhaW50U3BpbkJ1dHRv
bihDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgYm9v
bCk7CisKKyAgICBDb2xvciBtX2FjY2VudENvbG9yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1RoZW1lR3RrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9UaGVtZUd0ay5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDdmNzBkMzg4OGY0ZDExZTVlM2I1ZDRmNmQxNGU0MTg2NDU0NGRh
MWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1RoZW1lR3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEx
NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmICFVU0UoR1RLNCkKLQotI2luY2x1ZGUgIlRo
ZW1lR3RrLmgiCi0KLSNpbmNsdWRlICJHUmVmUHRyR3RrLmgiCi0jaW5jbHVkZSA8Z3RrL2d0ay5o
PgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1UaGVtZSYgVGhlbWU6OnNpbmds
ZXRvbigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRoZW1lR3RrPiB0aGVtZTsKLSAg
ICByZXR1cm4gdGhlbWU7Ci19Ci0KLXZvaWQgVGhlbWVHdGs6OmVuc3VyZVBsYXRmb3JtQ29sb3Jz
KCkgY29uc3QKLXsKLSAgICBpZiAobV9hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IuaXNW
YWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgotCi0gICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBlbnRyeVBhdGggPSBhZG9w
dEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5k
X3R5cGUoZW50cnlQYXRoLmdldCgpLCBHX1RZUEVfTk9ORSk7Ci0gICAgZ3RrX3dpZGdldF9wYXRo
X2l0ZXJfc2V0X29iamVjdF9uYW1lKGVudHJ5UGF0aC5nZXQoKSwgLTEsICJlbnRyeSIpOwotICAg
IEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBlbnRyeUNvbnRleHQgPSBhZG9wdEdSZWYoZ3RrX3N0
eWxlX2NvbnRleHRfbmV3KCkpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKGVudHJ5
Q29udGV4dC5nZXQoKSwgZW50cnlQYXRoLmdldCgpKTsKLQotICAgIEdSZWZQdHI8R3RrV2lkZ2V0
UGF0aD4gc2VsZWN0aW9uUGF0aCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0X3BhdGhfY29weShndGtf
c3R5bGVfY29udGV4dF9nZXRfcGF0aChlbnRyeUNvbnRleHQuZ2V0KCkpKSk7Ci0gICAgZ3RrX3dp
ZGdldF9wYXRoX2FwcGVuZF90eXBlKHNlbGVjdGlvblBhdGguZ2V0KCksIEdfVFlQRV9OT05FKTsK
LSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUoc2VsZWN0aW9uUGF0aC5n
ZXQoKSwgLTEsICJzZWxlY3Rpb24iKTsKLSAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gc2Vs
ZWN0aW9uQ29udGV4dCA9IGFkb3B0R1JlZihndGtfc3R5bGVfY29udGV4dF9uZXcoKSk7Ci0gICAg
Z3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoc2VsZWN0aW9uQ29udGV4dC5nZXQoKSwgc2VsZWN0
aW9uUGF0aC5nZXQoKSk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhcmVudChzZWxlY3Rp
b25Db250ZXh0LmdldCgpLCBlbnRyeUNvbnRleHQuZ2V0KCkpOwotCi0gICAgZ3RrX3N0eWxlX2Nv
bnRleHRfc2V0X3N0YXRlKHNlbGVjdGlvbkNvbnRleHQuZ2V0KCksIHN0YXRpY19jYXN0PEd0a1N0
YXRlRmxhZ3M+KEdUS19TVEFURV9GTEFHX1NFTEVDVEVEIHwgR1RLX1NUQVRFX0ZMQUdfRk9DVVNF
RCkpOwotCi0gICAgR2RrUkdCQSBjb2xvcjsKLSAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfYmFj
a2dyb3VuZF9jb2xvcihzZWxlY3Rpb25Db250ZXh0LmdldCgpLCBndGtfc3R5bGVfY29udGV4dF9n
ZXRfc3RhdGUoc2VsZWN0aW9uQ29udGV4dC5nZXQoKSksICZjb2xvcik7Ci0gICAgbV9hY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcjsKLQotICAgIGd0a19zdHlsZV9jb250ZXh0
X2dldF9jb2xvcihzZWxlY3Rpb25Db250ZXh0LmdldCgpLCBndGtfc3R5bGVfY29udGV4dF9nZXRf
c3RhdGUoc2VsZWN0aW9uQ29udGV4dC5nZXQoKSksICZjb2xvcik7Ci0gICAgbV9hdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciA9IGNvbG9yOwotCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0
X3N0YXRlKHNlbGVjdGlvbkNvbnRleHQuZ2V0KCksIEdUS19TVEFURV9GTEFHX1NFTEVDVEVEKTsK
LQotICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9iYWNrZ3JvdW5kX2NvbG9yKHNlbGVjdGlvbkNv
bnRleHQuZ2V0KCksIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdGF0ZShzZWxlY3Rpb25Db250ZXh0
LmdldCgpKSwgJmNvbG9yKTsKLSAgICBtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
ID0gY29sb3I7Ci0KLSAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfY29sb3Ioc2VsZWN0aW9uQ29u
dGV4dC5nZXQoKSwgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0YXRlKHNlbGVjdGlvbkNvbnRleHQu
Z2V0KCkpLCAmY29sb3IpOwotICAgIG1faW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Ig
PSBjb2xvcjsKLQotICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotfQotCi12
b2lkIFRoZW1lR3RrOjpwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpCi17Ci0gICAgbV9hY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgPSB7IH07Ci19Ci0KLUNvbG9yIFRoZW1lR3RrOjphY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAotewotICAgIGVuc3VyZVBsYXRmb3Jt
Q29sb3JzKCk7Ci0gICAgcmV0dXJuIG1fYXRpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7Ci19
Ci0KLUNvbG9yIFRoZW1lR3RrOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dAotewotICAgIGVuc3VyZVBsYXRmb3JtQ29sb3JzKCk7Ci0gICAgcmV0dXJuIG1fYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yOwotfQotCi1Db2xvciBUaGVtZUd0azo6aW5hY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAotewotICAgIGVuc3VyZVBsYXRmb3JtQ29sb3Jz
KCk7Ci0gICAgcmV0dXJuIG1faW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7Ci19Ci0K
LUNvbG9yIFRoZW1lR3RrOjppbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0
Ci17Ci0gICAgZW5zdXJlUGxhdGZvcm1Db2xvcnMoKTsKLSAgICByZXR1cm4gbV9pbmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gIVVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1RoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVGhlbWVHdGsuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmNmYzQyYmVlNzI4ODNlODkwYTU5ZjdhZGE3
ZTk1NDY5YjA4NDg5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvVGhlbWVHdGsuaAorKysgL2Rldi9udWxs
CkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiAhVVNFKEdUSzQpCi0KLSNpbmNsdWRlICJD
b2xvci5oIgotI2luY2x1ZGUgIlRoZW1lQWR3YWl0YS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIFRoZW1lR3RrIGZpbmFsIDogcHVibGljIFRoZW1lQWR3YWl0YSB7Ci1wcml2YXRl
OgotICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0IG92ZXJy
aWRlOwotICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0IG92
ZXJyaWRlOwotICAgIENvbG9yIGluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
KSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCkgb3Zl
cnJpZGU7Ci0KLSAgICB2b2lkIGVuc3VyZVBsYXRmb3JtQ29sb3JzKCkgY29uc3Q7Ci0KLSAgICBt
dXRhYmxlIENvbG9yIG1fYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwotICAgIG11dGFi
bGUgQ29sb3IgbV9hdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKLSAgICBtdXRhYmxlIENv
bG9yIG1faW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7Ci0gICAgbXV0YWJsZSBDb2xv
ciBtX2luYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gIVVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcAppbmRleCAyZDc0YzA5ZWY2MjVlZjRiOWYz
NzQ0MTAxNDU3NDMxYTE1MDE3ZTc3Li5lNjk1MWRlZTAxOThjM2I3YTQ5Y2EyMzUxY2NlZGUyZTc4
YmQ5MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVB
ZHdhaXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdh
aXRhLmNwcApAQCAtNzYyLDQgKzc2MiwxMCBAQCBTZWNvbmRzIFJlbmRlclRoZW1lQWR3YWl0YTo6
Y2FyZXRCbGlua0ludGVydmFsKCkgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIFJlbmRlclRoZW1l
QWR3YWl0YTo6c2V0QWNjZW50Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIHN0YXRp
Y19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuc2V0QWNjZW50Q29sb3Io
Y29sb3IpOworICAgIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUFkd2FpdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2Fp
dGEuaAppbmRleCA5OTMzMjVjNDE2NjVlZGRiMzQ4OTdmY2M3ZTUzMzg3NTg1OGMyYjkzLi4zMGMw
ZDk5NDQ4YWI5YzE5MWJmMGUyZTAwYWI1NDNjNThmNmI0Nzc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCkBAIC0zMyw2ICszMyw4IEBAIGNsYXNz
IFJlbmRlclRoZW1lQWR3YWl0YSA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+UmVuZGVyVGhlbWVBZHdhaXRhKCkgPSBkZWZhdWx0OwogCisgICAgdm9pZCBzZXRB
Y2NlbnRDb2xvcihjb25zdCBDb2xvciYpOworCiBwcml2YXRlOgogICAgIFN0cmluZyBleHRyYURl
ZmF1bHRTdHlsZVNoZWV0KCkgZmluYWw7CiAjaWYgRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCA1MTU2
ZmNmNzJmMzdiODllNTNjM2RjNTljMzI5Y2IzMTFiNjljMjZmLi5kNWVlZGVhMzg3MTk3OTkxNWRh
OWViZGU4MDM1NmMxNWY0ODBiYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNjA3LDQgKzYwNywyOCBAQCB2b2lkIFBh
Z2VDbGllbnRJbXBsOjptYWtlVmlld0JsYW5rKGJvb2wgbWFrZUJsYW5rKQogICAgIHdlYmtpdFdl
YlZpZXdCYXNlTWFrZUJsYW5rKFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdldCksIG1h
a2VCbGFuayk7CiB9CiAKK1dlYkNvcmU6OkNvbG9yIFBhZ2VDbGllbnRJbXBsOjphY2NlbnRDb2xv
cigpCit7CisgICAgYXV0byogY29udGV4dCA9IGd0a193aWRnZXRfZ2V0X3N0eWxlX2NvbnRleHQo
bV92aWV3V2lkZ2V0KTsKKyAgICBHZGtSR0JBIGFjY2VudENvbG9yOworCisgICAgLy8gbGliYWR3
YWl0YQorICAgIGlmIChndGtfc3R5bGVfY29udGV4dF9sb29rdXBfY29sb3IoY29udGV4dCwgImFj
Y2VudF9iZ19jb2xvciIsICZhY2NlbnRDb2xvcikpCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpD
b2xvcihhY2NlbnRDb2xvcik7CisKKyAgICAvLyBlbGVtZW50YXJ5IE9TIDYueAorICAgIGlmIChn
dGtfc3R5bGVfY29udGV4dF9sb29rdXBfY29sb3IoY29udGV4dCwgImFjY2VudF9jb2xvciIsICZh
Y2NlbnRDb2xvcikpCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb2xvcihhY2NlbnRDb2xvcik7
CisKKyAgICAvLyBlbGVtZW50YXJ5IE9TIDUueAorICAgIGlmIChndGtfc3R5bGVfY29udGV4dF9s
b29rdXBfY29sb3IoY29udGV4dCwgImFjY2VudENvbG9yIiwgJmFjY2VudENvbG9yKSkKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkNvbG9yKGFjY2VudENvbG9yKTsKKworICAgIC8vIExlZ2FjeQor
ICAgIGlmIChndGtfc3R5bGVfY29udGV4dF9sb29rdXBfY29sb3IoY29udGV4dCwgInRoZW1lX3Nl
bGVjdGVkX2JnX2NvbG9yIiwgJmFjY2VudENvbG9yKSkKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkNvbG9yKGFjY2VudENvbG9yKTsKKworICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDUyLCAx
MzIsIDIyOCB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAppbmRleCBjZTg3M2JkZmJlNzE5
NGJlM2I4NzMzODYwMDQ3YmRjYzdkMmU3YzdlLi45NDY5MTA5Y2NiMWIwNzZmMTY4OTNlMTE5Mzhm
ODVlMTczNmY4ZDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9Q
YWdlQ2xpZW50SW1wbC5oCkBAIC0xNzksNiArMTc5LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
bWFrZVZpZXdCbGFuayhib29sKSBvdmVycmlkZTsKIAorICAgIFdlYkNvcmU6OkNvbG9yIGFjY2Vu
dENvbG9yKCkgb3ZlcnJpZGU7CisKICAgICAvLyBNZW1iZXJzIG9mIFBhZ2VDbGllbnRJbXBsIGNs
YXNzCiAgICAgR3RrV2lkZ2V0KiBtX3ZpZXdXaWRnZXQ7CiAgICAgRGVmYXVsdFVuZG9Db250cm9s
bGVyIG1fdW5kb0NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDU3M2Q3ZmVkNjYyNzAxMjRlMDVl
Y2Y3YmE0NTYwNDQyN2UwYTUyMDUuLmQ0NjYwYTkyZDY1YWQwNDVhMGZmOTcyYTVmNDc2YjhhMWNh
MmZmN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld0Jhc2UuY3BwCkBAIC0xODI5LDYgKzE4MjksMjUgQEAgc3RhdGljIGdib29sZWFu
IHdlYmtpdFdlYlZpZXdCYXNlRm9jdXMoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a0RpcmVjdGlvblR5
cGUgZGlyZWMKICAgICByZXR1cm4gR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfYmFz
ZV9wYXJlbnRfY2xhc3MpLT5mb2N1cyh3aWRnZXQsIGRpcmVjdGlvbik7CiB9CiAKKyNpZiBVU0Uo
R1RLNCkKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ3NzQ2hhbmdlZChHdGtXaWRnZXQq
IHdpZGdldCwgR3RrQ3NzU3R5bGVDaGFuZ2UqIGNoYW5nZSkKK3sKKyAgICBHVEtfV0lER0VUX0NM
QVNTKHdlYmtpdF93ZWJfdmlld19iYXNlX3BhcmVudF9jbGFzcyktPmNzc19jaGFuZ2VkKHdpZGdl
dCwgY2hhbmdlKTsKKworICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSA9IFdFQktJ
VF9XRUJfVklFV19CQVNFKHdpZGdldCk7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBw
cml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAgcHJpdi0+cGFnZVByb3h5LT5hY2NlbnRDb2xv
ckRpZENoYW5nZSgpOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU3R5
bGVVcGRhdGVkKEd0a1dpZGdldCogd2lkZ2V0KQoreworICAgIEdUS19XSURHRVRfQ0xBU1Mod2Vi
a2l0X3dlYl92aWV3X2Jhc2VfcGFyZW50X2NsYXNzKS0+c3R5bGVfdXBkYXRlZCh3aWRnZXQpOwor
CisgICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlID0gV0VCS0lUX1dFQl9WSUVXX0JB
U0Uod2lkZ2V0KTsKKyAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3
QmFzZS0+cHJpdjsKKyAgICBwcml2LT5wYWdlUHJveHktPmFjY2VudENvbG9yRGlkQ2hhbmdlKCk7
Cit9CisjZW5kaWYKIAogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2Vab29tQmVnaW4oV2Vi
S2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBHZGtFdmVudFNlcXVlbmNlKiBzZXF1ZW5jZSwg
R3RrR2VzdHVyZSogZ2VzdHVyZSkKIHsKQEAgLTIxODIsNiArMjIwMSwxMSBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfYmFzZV9jbGFzc19pbml0KFdlYktpdFdlYlZpZXdCYXNlQ2xhc3Mq
IHdlYmtpdFdlYlZpZQogI2Vsc2UKICAgICB3aWRnZXRDbGFzcy0+aGllcmFyY2h5X2NoYW5nZWQg
PSB3ZWJraXRXZWJWaWV3QmFzZUhpZXJhcmNoeUNoYW5nZWQ7CiAjZW5kaWYKKyNpZiBVU0UoR1RL
NCkKKyAgICB3aWRnZXRDbGFzcy0+Y3NzX2NoYW5nZWQgPSB3ZWJraXRXZWJWaWV3QmFzZUNzc0No
YW5nZWQ7CisjZWxzZQorICAgIHdpZGdldENsYXNzLT5zdHlsZV91cGRhdGVkID0gd2Via2l0V2Vi
Vmlld0Jhc2VTdHlsZVVwZGF0ZWQ7CisjZW5kaWYKIAogICAgIEdPYmplY3RDbGFzcyogZ29iamVj
dENsYXNzID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0V2ViVmlld0Jhc2VDbGFzcyk7CiAgICAgZ29i
amVjdENsYXNzLT5jb25zdHJ1Y3RlZCA9IHdlYmtpdFdlYlZpZXdCYXNlQ29uc3RydWN0ZWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDhjNjU5OWRhOTc1MWUyODNh
Mzc1MDhmOTkwYjVlNWU5YzdlZDE2MzYuLjJlNjU4NDk3ZmY1YzYxMTcxYmFmZGE3ZWU1MTZhMTFm
NjJkYTQ2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDAz
LDYgKzEwMDMsMTAgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBQbGF0Zm9ybVZp
ZXdXaWRnZXQgdmlld1dpZGdldCgpOwogICAgIGJvb2wgbWFrZUdMQ29udGV4dEN1cnJlbnQoKTsK
KworI2lmIEhBVkUoQVBQX0FDQ0VOVF9DT0xPUlMpCisgICAgdm9pZCBhY2NlbnRDb2xvckRpZENo
YW5nZSgpOworI2VuZGlmCiAjZW5kaWYKIAogICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6Q29sb3I+JiBiYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmRD
b2xvcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQ
cm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3Rr
LmNwcAppbmRleCAzMDVlMjVlNGViYzQ1ZmEwZjA0MDhhMDlmN2MxOGE2NmNkMjhlMmU3Li5kMjkx
OTk3M2U0ZDdmNjg5NDViNTdhZDlkYzI3MDkwOTEzNDM5MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcApAQCAtMTA2LDQgKzEwNiwxNCBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZE1lc3NhZ2VUb1dlYlZpZXcoVXNlck1lc3NhZ2UmJiBt
ZXNzYWdlKQogICAgIHNlbmRNZXNzYWdlVG9XZWJWaWV3V2l0aFJlcGx5KFdURk1vdmUobWVzc2Fn
ZSksIFtdKFVzZXJNZXNzYWdlJiYpIHsgfSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjphY2Nl
bnRDb2xvckRpZENoYW5nZSgpCit7CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpDb2xvciBhY2NlbnRDb2xvciA9IHBhZ2VDbGll
bnQoKS5hY2NlbnRDb2xvcigpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0QWNj
ZW50Q29sb3IoYWNjZW50Q29sb3IpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDZhMGVjOGY1
MjZiN2ZlZTA3ZmZmZGU1YzMzZDFlN2E5ZWU0NmQ4OWQuLmYzNzg0ZmU4MjRiMWFiMjI4NTBjNTFj
MjM5NjQ3ZTJlYzRmMmUyYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC05OTgsNiArOTk4LDEwIEBAIHZvaWQgV2ViUGFnZTo6cmVpbml0aWFs
aXplV2ViUGFnZShXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBp
ZiAobV9sYXllckhvc3RpbmdNb2RlICE9IHBhcmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkKICAg
ICAgICAgc2V0TGF5ZXJIb3N0aW5nTW9kZShwYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUpOwog
CisjaWYgSEFWRShBUFBfQUNDRU5UX0NPTE9SUykKKyAgICBzZXRBY2NlbnRDb2xvcihwYXJhbWV0
ZXJzLmFjY2VudENvbG9yKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEd0a1Nl
dHRpbmdzTWFuYWdlclByb3h5OjpzaW5nbGV0b24oKS5hcHBseVNldHRpbmdzKFdURk1vdmUocGFy
YW1ldGVycy5ndGtTZXR0aW5ncykpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDI5MjA3NGVmZGUyZDdkZGI2YjA2YWIyZDViMWNjMWI4
Yzg1ZDM2NS4uMjgyODM5MjI5OWE3MDcxZTRmNWFiNmQ5Mjg1ZTIyNTQ3MjA2MzFmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjM1Myw2ICsyMzUz
LDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcHJvY2Vzc0Rpc3BsYXlOYW1lOwogICAgIFdl
YkNvcmU6OkFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IG1fYWxsb3dzQ29udGVudEphdmFTY3JpcHRG
cm9tTW9zdFJlY2VudE5hdmlnYXRpb24geyBXZWJDb3JlOjpBbGxvd3NDb250ZW50SmF2YVNjcmlw
dDo6WWVzIH07CiAKKyNpZiBQTEFURk9STShHVEspCisgICAgV2ViQ29yZTo6Q29sb3IgbV9hY2Nl
bnRDb2xvcjsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQogICAgIGJv
b2wgbV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fbmF2aWdhdGlvbkhhc09jY3VyZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNmY5MWEy
YTc3NDE2NmNkMmI4ODZkZmViYjRiYmE4ZjUxZmVmOGYzZC4uOWUxOTk1ZTYzNTI0MGJkMjRkZDg3
NzA5NmZmOWE3MTljMTNmZjY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01MTcsNiArNTE3LDEwIEBAIEdlbmVy
YXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICBFZmZlY3RpdmVBcHBlYXJhbmNlRGlkQ2hhbmdlKGJv
b2wgdXNlRGFya0FwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwp
CiAKKyNpZiBIQVZFKEFQUF9BQ0NFTlRfQ09MT1JTKQorICAgIFNldEFjY2VudENvbG9yKFdlYkNv
cmU6OkNvbG9yIGNvbG9yKQorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXF1
ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkgLT4gKGJvb2wgYWN0aXZlLCBib29sIHJl
Z2lzdGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiwgU3RyaW5nIHRpdGxlLCBkb3VibGUgZHVy
YXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSwgdWludDY0X3QgdW5pcXVlSWRlbnRpZmllcikgQXN5
bmMKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL1dlYlBhZ2VHdGsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlBhZ2VHdGsuY3BwCmluZGV4IGY0YmNlZDAwZmNiODZjNjQzOTk5YTY3MzIyNWY2ZThmZmQ5
NzFhMDcuLjFiZGQ1ZGRmNzJhYmJmOTgyODM0MzhkZjgyZmZhZjI5ODUwNWZmMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAK
QEAgLTQ1LDYgKzQ1LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRo
ZW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZUFkd2FpdGEuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CkBAIC0xOTQsNCArMTk2
LDkgQEAgdm9pZCBXZWJQYWdlOjpzaG93RW1vamlQaWNrZXIoRnJhbWUmIGZyYW1lKQogICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93RW1vamlQaWNrZXIo
ZnJhbWUudmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoZnJhbWUuc2VsZWN0aW9uKCkuYWJzb2x1
dGVDYXJldEJvdW5kcygpKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9p
ZCBXZWJQYWdlOjpzZXRBY2NlbnRDb2xvcihXZWJDb3JlOjpDb2xvciBjb2xvcikKK3sKKyAgICBz
dGF0aWNfY2FzdDxSZW5kZXJUaGVtZUFkd2FpdGEmPihSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkp
LnNldEFjY2VudENvbG9yKGNvbG9yKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>