<?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>233851</bug_id>
          
          <creation_ts>2021-12-03 19:22:41 -0800</creation_ts>
          <short_desc>[libpas] Set pthread_setspecific with marker in TLS destructor to detect TLS is destroyed</short_desc>
          <delta_ts>2021-12-07 10:03: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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820404</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-03 19:22:41 -0800</bug_when>
    <thetext>[libpas] Set pthread_setspecific with marker in TLS destructor to detect TLS is destroyed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820408</commentid>
    <comment_count>1</comment_count>
      <attachid>445939</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-03 19:35:24 -0800</bug_when>
    <thetext>Created attachment 445939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820409</commentid>
    <comment_count>2</comment_count>
      <attachid>445940</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-03 19:41:55 -0800</bug_when>
    <thetext>Created attachment 445940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820412</commentid>
    <comment_count>3</comment_count>
      <attachid>445943</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-03 19:53:47 -0800</bug_when>
    <thetext>Created attachment 445943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820424</commentid>
    <comment_count>4</comment_count>
      <attachid>445953</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-03 20:52:51 -0800</bug_when>
    <thetext>Created attachment 445953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820738</commentid>
    <comment_count>5</comment_count>
      <attachid>445953</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-12-06 13:06:19 -0800</bug_when>
    <thetext>Comment on attachment 445953
Patch

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

&gt; Source/bmalloc/libpas/src/libpas/pas_deallocate.h:59
&gt;      thread_local_cache = pas_thread_local_cache_try_get();
&gt; -    if (!thread_local_cache) {
&gt; +    if (pas_thread_local_cache_is_null(thread_local_cache)) {

It looks like in almost all places, you&apos;re calling pas_thread_local_cache_try_get(), and then calling pas_thread_local_cache_is_null() on its result.  Is there any reason why you didn&apos;t just call pas_thread_local_cache_is_null() in pas_thread_local_cache_try_get(), and return a NULL if pas_thread_local_cache_is_null() is true?  That way, a lot of these pieces of client code don&apos;t need to change, and it is less error prone (new client code won&apos;t be vulnerable to forgetting to call pas_thread_local_cache_is_null())?

&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c:94
&gt; +    static const bool verbose = false;

nit: constexpr instead of const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820740</commentid>
    <comment_count>6</comment_count>
      <attachid>445953</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-06 13:07:51 -0800</bug_when>
    <thetext>Comment on attachment 445953
Patch

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

&gt;&gt; Source/bmalloc/libpas/src/libpas/pas_deallocate.h:59
&gt;&gt; +    if (pas_thread_local_cache_is_null(thread_local_cache)) {
&gt; 
&gt; It looks like in almost all places, you&apos;re calling pas_thread_local_cache_try_get(), and then calling pas_thread_local_cache_is_null() on its result.  Is there any reason why you didn&apos;t just call pas_thread_local_cache_is_null() in pas_thread_local_cache_try_get(), and return a NULL if pas_thread_local_cache_is_null() is true?  That way, a lot of these pieces of client code don&apos;t need to change, and it is less error prone (new client code won&apos;t be vulnerable to forgetting to call pas_thread_local_cache_is_null())?

OK, maybe it is better will check

&gt;&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c:94
&gt;&gt; +    static const bool verbose = false;
&gt; 
&gt; nit: constexpr instead of const?

Cannot use it since it is C (Not C++).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820743</commentid>
    <comment_count>7</comment_count>
      <attachid>446075</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-06 13:19:58 -0800</bug_when>
    <thetext>Created attachment 446075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820752</commentid>
    <comment_count>8</comment_count>
      <attachid>446080</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-06 13:27:16 -0800</bug_when>
    <thetext>Created attachment 446080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820767</commentid>
    <comment_count>9</comment_count>
      <attachid>446075</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-12-06 14:19:52 -0800</bug_when>
    <thetext>Comment on attachment 446075
Patch

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

&gt; Source/bmalloc/ChangeLog:19
&gt; +        1. When destroying TLS, we set a marker (PAS_THREAD_LOCAL_CACHE_DESTROYED in this case) to TLS.

/to TLS/in TLS/

&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c:101
&gt; +    /* If pthread_self_is_exiting_np does not exist, we set PAS_THREAD_LOCAL_CACHE_DESTROYED to the TLS so that

/to the TLS/in the TLS/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820780</commentid>
    <comment_count>10</comment_count>
      <attachid>446080</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-12-06 14:46:27 -0800</bug_when>
    <thetext>Comment on attachment 446080
Patch

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

Nice.  r=me

&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c:101
&gt; +    /* If pthread_self_is_exiting_np does not exist, we set PAS_THREAD_LOCAL_CACHE_DESTROYED to the TLS so that

/to the TLS/in the TLS/

&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c:103
&gt; +       subsequent calls of pas_thread_local_cache_try_get() can detect whether TLS is destroyed. Since it is not
&gt; +       NULL, this destructor will be called once again later. We repeat invoking this destructor PTHREAD_DESTRUCTOR_ITERATIONS times. */

I suggest rephrasing the last 2 sentences (starting with &quot;Since it is not ...&quot;) as follows:
Since PAS_THREAD_LOCAL_CACHE_DESTROYED is a non-null value, pthread will call this destructor again (up to PTHREAD_DESTRUCTOR_ITERATIONS times). Each time it does, it will clear the TLS entry. Hence, we need to re-set PAS_THREAD_LOCAL_CACHE_DESTROYED in the TLS each time to continue to indicate that destroy() has already been called once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820783</commentid>
    <comment_count>11</comment_count>
      <attachid>446080</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-06 14:51:47 -0800</bug_when>
    <thetext>Comment on attachment 446080
Patch

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

Thank you!

&gt;&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c:101
&gt;&gt; +    /* If pthread_self_is_exiting_np does not exist, we set PAS_THREAD_LOCAL_CACHE_DESTROYED to the TLS so that
&gt; 
&gt; /to the TLS/in the TLS/

Fixed.

&gt;&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c:103
&gt;&gt; +       NULL, this destructor will be called once again later. We repeat invoking this destructor PTHREAD_DESTRUCTOR_ITERATIONS times. */
&gt; 
&gt; I suggest rephrasing the last 2 sentences (starting with &quot;Since it is not ...&quot;) as follows:
&gt; Since PAS_THREAD_LOCAL_CACHE_DESTROYED is a non-null value, pthread will call this destructor again (up to PTHREAD_DESTRUCTOR_ITERATIONS times). Each time it does, it will clear the TLS entry. Hence, we need to re-set PAS_THREAD_LOCAL_CACHE_DESTROYED in the TLS each time to continue to indicate that destroy() has already been called once.

Nice, changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820785</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-06 14:54:37 -0800</bug_when>
    <thetext>Committed r286573 (?): &lt;https://commits.webkit.org/r286573&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820786</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-06 14:55:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/86125137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820865</commentid>
    <comment_count>14</comment_count>
      <attachid>446080</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-12-06 19:29:04 -0800</bug_when>
    <thetext>Comment on attachment 446080
Patch

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

This change is so gloriously evil!  I love it!

&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c:106
&gt; +#endif

I would have put a comment like &quot;/* !defined(PAS_THREAD_LOCAL_CACHE_CAN_DETECT_THREAD_EXIT) */&quot; after the #endif, just to make it easier to tell what the #endif is for.

&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.h:111
&gt; +static inline pas_thread_local_cache* pas_thread_local_cache_try_get(void)
&gt;  {
&gt; -#ifdef PAS_THREAD_LOCAL_CACHE_CAN_DETECT_THREAD_EXIT
&gt; -    return true;
&gt; -#else
&gt; -    return false;
&gt; +    pas_thread_local_cache* cache = pas_thread_local_cache_try_get_impl();
&gt; +#ifndef PAS_THREAD_LOCAL_CACHE_CAN_DETECT_THREAD_EXIT
&gt; +    if (((uintptr_t)cache) == PAS_THREAD_LOCAL_CACHE_DESTROYED)
&gt; +        return NULL;
&gt;  #endif
&gt; +    return cache;
&gt;  }

I&apos;m a bit worried that this introduces an extra branch on fast paths.

Is there any way to accomplish this without using the DESTROYED marker inside the fast TLS?  Maybe using a separate key?

(If there is a perf problem here then it&apos;s probably very very small, so I wouldn&apos;t worry about this too much.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820890</commentid>
    <comment_count>15</comment_count>
      <attachid>446080</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-06 21:58:06 -0800</bug_when>
    <thetext>Comment on attachment 446080
Patch

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

&gt;&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.h:111
&gt;&gt;  }
&gt; 
&gt; I&apos;m a bit worried that this introduces an extra branch on fast paths.
&gt; 
&gt; Is there any way to accomplish this without using the DESTROYED marker inside the fast TLS?  Maybe using a separate key?
&gt; 
&gt; (If there is a perf problem here then it&apos;s probably very very small, so I wouldn&apos;t worry about this too much.)

One way is that, reverting the original change back from https://bugs.webkit.org/attachment.cgi?id=445953&amp;action=review.
In the original patch, we are using pas_thread_local_cache_is_null, which implementation is,

return (uintptr_t)(cache) &lt;= PAS_THREAD_LOCAL_CACHE_DESTROYED;

so, we can filter out null and this destroying case with one check. And we used it instead of old NULL check, so literally, it was just replacing NULL branching with that comparison branching.
What do you think of?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821080</commentid>
    <comment_count>16</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-12-07 09:48:19 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #15)
&gt; Comment on attachment 446080 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=446080&amp;action=review
&gt; 
&gt; &gt;&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.h:111
&gt; &gt;&gt;  }
&gt; &gt; 
&gt; &gt; I&apos;m a bit worried that this introduces an extra branch on fast paths.
&gt; &gt; 
&gt; &gt; Is there any way to accomplish this without using the DESTROYED marker inside the fast TLS?  Maybe using a separate key?
&gt; &gt; 
&gt; &gt; (If there is a perf problem here then it&apos;s probably very very small, so I wouldn&apos;t worry about this too much.)
&gt; 
&gt; One way is that, reverting the original change back from
&gt; https://bugs.webkit.org/attachment.cgi?id=445953&amp;action=review.
&gt; In the original patch, we are using pas_thread_local_cache_is_null, which
&gt; implementation is,
&gt; 
&gt; return (uintptr_t)(cache) &lt;= PAS_THREAD_LOCAL_CACHE_DESTROYED;
&gt; 
&gt; so, we can filter out null and this destroying case with one check. And we
&gt; used it instead of old NULL check, so literally, it was just replacing NULL
&gt; branching with that comparison branching.
&gt; What do you think of?

That&apos;s not bad!

What about using a separate (and not fast TLS) key for this?

It would work like this:

- Creating a thread_local_cache sets that key to 1.
- Destroying that key sets it to 2.
- is_exiting is emulated by checking if that thing is 2.

Thinking about it more, I&apos;m not sure if it&apos;s actually better, since it has a loophole: if the thread_local_cache is created for the first time during the last round of pthread&apos;s destructor loop, then we&apos;ll leak a thread_local_cache.  So, I&apos;m not sure I&apos;d actually recommend that.  Maybe your way is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821090</commentid>
    <comment_count>17</comment_count>
      <attachid>446080</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-07 10:03:27 -0800</bug_when>
    <thetext>Comment on attachment 446080
Patch

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

&gt;&gt;&gt;&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.h:111
&gt;&gt;&gt;&gt;  }
&gt;&gt;&gt; 
&gt;&gt;&gt; I&apos;m a bit worried that this introduces an extra branch on fast paths.
&gt;&gt;&gt; 
&gt;&gt;&gt; Is there any way to accomplish this without using the DESTROYED marker inside the fast TLS?  Maybe using a separate key?
&gt;&gt;&gt; 
&gt;&gt;&gt; (If there is a perf problem here then it&apos;s probably very very small, so I wouldn&apos;t worry about this too much.)
&gt;&gt; 
&gt;&gt; One way is that, reverting the original change back from https://bugs.webkit.org/attachment.cgi?id=445953&amp;action=review.
&gt;&gt; In the original patch, we are using pas_thread_local_cache_is_null, which implementation is,
&gt;&gt; 
&gt;&gt; return (uintptr_t)(cache) &lt;= PAS_THREAD_LOCAL_CACHE_DESTROYED;
&gt;&gt; 
&gt;&gt; so, we can filter out null and this destroying case with one check. And we used it instead of old NULL check, so literally, it was just replacing NULL branching with that comparison branching.
&gt;&gt; What do you think of?
&gt; 
&gt; That&apos;s not bad!
&gt; 
&gt; What about using a separate (and not fast TLS) key for this?
&gt; 
&gt; It would work like this:
&gt; 
&gt; - Creating a thread_local_cache sets that key to 1.
&gt; - Destroying that key sets it to 2.
&gt; - is_exiting is emulated by checking if that thing is 2.
&gt; 
&gt; Thinking about it more, I&apos;m not sure if it&apos;s actually better, since it has a loophole: if the thread_local_cache is created for the first time during the last round of pthread&apos;s destructor loop, then we&apos;ll leak a thread_local_cache.  So, I&apos;m not sure I&apos;d actually recommend that.  Maybe your way is better.

I checked all callsites of pas_thread_local_cache_try_get, and all places are doing NULL check after that.
So, it means that, if clang is smart enough, clang can combine the current 0 or 1 check into one comparison effectively, and probably, with this patch, it does not introduce any new branching.
I&apos;ll check it :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445939</attachid>
            <date>2021-12-03 19:35:24 -0800</date>
            <delta_ts>2021-12-03 19:41:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233851-20211204033524.patch</filename>
            <type>text/plain</type>
            <size>23115</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggZTg2Yjg0MGI2NGVhZGFk
ODUxY2IwYTUzNjUxNzEyN2UxMzg3YzZlMy4uMmI0OWVmMGE2OWIxZWI4MzA4MjE4NjlmYmQxOWEy
OGY0NTVhMjkzZSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTEyLTAzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gU2V0IHB0
aHJlYWRfc2V0c3BlY2lmaWMgd2l0aCBtYXJrZXIgaW4gVExTIGRlc3RydWN0b3IgdG8gZGV0ZWN0
IFRMUyBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRMUyBoYXMgbGlmZXRpbWUgcHJvYmxlbSB0aGF0LAorCisgICAgICAgIDEuIFRM
UyBpcyBkZXN0cm95ZWQKKyAgICAgICAgMi4gVGhlIG90aGVyIFRMUyBpcyBkZXN0cm95ZWQsIGFu
ZCB0aGUgZGVzdHJ1Y3RvciBpcyBjYWxsZWQKKyAgICAgICAgMy4gVGhlIGRlc3RydWN0b3IgdG91
Y2hlcyAoMSkncyBUTFMsIHRoZW4gcmV2aXZlIFRMUyBvZiAoMSkgKGUuZy4gbGlicGFzJ3MgdGhy
ZWFkIGxvY2FsIGNhY2hlKS4KKworICAgICAgICBUbyBoYW5kbGUgdGhlc2UgY2FzZXMsIHB0aHJl
YWQgbGlicmFyeSAobGliYykgcmVwZWF0ZWRseSBjYWxscyBkZXN0cnVjdG9yIFBBU19USFJFQURf
TE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzCisgICAgICAgIHNvIHRoYXQgd2UgY2xlYW4gdXAg
cmV2aXZlZCBUTFMgYWdhaW4uCisKKyAgICAgICAgQnkgdXNpbmcgdGhpcyBtZWNoYW5pc20sIHdl
IGNhbiBlbXVsYXRlIHB0aHJlYWRfc2VsZl9pc19leGl0aW5nX25wIHNvIHRoYXQgd2UgY2FuIGF2
b2lkIHJldml2aW5nIFRMUy4KKworICAgICAgICAxLiBXaGVuIGRlc3Ryb3lpbmcgVExTLCB3ZSBz
ZXQgYSBtYXJrZXIgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIGluIHRoaXMgY2Fz
ZSkgdG8gVExTLgorICAgICAgICAyLiBEdXJpbmcgdGhlIG90aGVyIGRlc3RydWN0b3IgY2FsbHMs
IHdlIGNhbiBkZXRlY3QgdGhhdCBUTFMgaXMgZGVzdHJveWVkIGJ5IGNoZWNraW5nIHB0aHJlYWRf
Z2V0c3BlY2lmaWMoLi4uKSA9PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRC4KKyAg
ICAgICAgMy4gV2UgcmVwZWF0ZWRseSBjYWxscyB0aGUgZGVzdHJ1Y3RvciBvZiBUTFMsIGJ1dCBl
dmVyeSB0aW1lLCB3ZSBzZXQgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQuCisgICAg
ICAgICAgIFNvIGFmdGVyIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzLCBp
dCBpcyBsZWZ0LCBhbmQgd2UgYWNoaWV2ZSB0aGUgZ29hbCAoMSkgb2ZmZXJpbmcgdGhlIHdheSB0
bworICAgICAgICAgICBkZXRlY3QgdGhlIGRlc3Ryb3llZCBUTFMgYW5kICgyKSBhdm9pZGluZyBy
ZXZpdmluZyBvZiBUTFMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGl0IHdoZW4g
cHRocmVhZF9zZWxmX2lzX2V4aXRpbmdfbnAgZG9lcyBub3QgZXhpc3QuCisKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5oOgorICAgICAgICAocGFzX2RlYWxsb2Nh
dGVfa25vd25fc2VncmVnYXRlZCk6CisgICAgICAgIChwYXNfdHJ5X2RlYWxsb2NhdGUpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oOgor
ICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jb25maWcpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYzoKKyAgICAgICAgKHBh
c19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3MpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193aXRoX21vZGUpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxv
Y2F0b3IpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGUuYzoKKyAgICAgICAgKGRlc3RydWN0b3IpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9kZXN0cm95KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3Nsb3cp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmg6CisgICAgICAgIChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9jYW5fc2V0KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfYWxyZWFkeV9pbml0aWFsaXpl
ZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF93aXRoX2hlYXBfbG9ja19o
b2xkX21vZGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bvc3NpYmx5X3VuaW5pdGlhbGl6ZWRfaW5kZXgp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3Ry
dWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9j
YXRlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ltcGxfaW5saW5lX29ubHkpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaDoKKyAgICAg
ICAgKHBhc190cnlfYWxsb2NhdGVfYXJyYXlfaW1wbF9pbmxpbmVfb25seV93aXRoX2hlYXApOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmg6
CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX2Nhc3VhbF9jYXNlKToK
KyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5lX29ubHkpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmg6
CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsX2lubGluZV9vbmx5KToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjph
ZGRBbGxUZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5k
QmFzZWxpbmVUZXN0cy5jcHA6CisgICAgICAgIChhZGRJc29IZWFwUGFydGlhbEFuZEJhc2VsaW5l
VGVzdHMpOgorCiAyMDIxLTEyLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW2xpYnBhc10gQml0Zml0IGFsbG9jYXRvciBoYXMgYSB3cm9uZyBhc3NlcnRpb24g
d2hlbiBhIHBhZ2UncyBtYXhfZnJlZSBpcyBlbm91Z2ggZm9yIHRoZSBzaXplIG9mIGFuIGFsbG9j
YXRpb24sIG5vdCBlbm91Z2ggZm9yIHRoYXQgYWxsb2NhdGlvbidzIHNpemUgY2xhc3MsIGFuZCB0
aGUgb2JqZWN0IG9mIHRoYXQgc2l6ZSBpcyBub3QgYWxpZ25lZCB0byB0aGUgY3VycmVudGx5IHJl
cXVlc3RlZCBhbGlnbm1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19kZWFsbG9jYXRlLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZGVhbGxvY2F0ZS5oCmluZGV4IGMxYmNhN2Y2Mzk3NDhhODhiMzJjNzM1ODY0NzQ1OTRk
YjMzOWQxODguLmNhYTY1MTExMTE2NDk2NGVmNmMzOWQ5NWUyM2MwYmY0OGE0YmViM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRlLmgK
KysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdGUuaApA
QCAtNTYsNyArNTYsNyBAQCBwYXNfZGVhbGxvY2F0ZV9rbm93bl9zZWdyZWdhdGVkKHZvaWQqIHB0
ciwKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGU7CiAKICAg
ICB0aHJlYWRfbG9jYWxfY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsK
LSAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNoZSkgeworICAgIGlmIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2lzX251bGwodGhyZWFkX2xvY2FsX2NhY2hlKSkgewogICAgICAgICBwYXNfdHJ5X2Rl
YWxsb2NhdGVfc2xvd19ub19jYWNoZShwdHIsIHBhZ2VfY29uZmlnLmJhc2UuaGVhcF9jb25maWdf
cHRyLCBwYXNfZGVhbGxvY2F0ZV9tb2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5
Myw3ICsxOTMsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfdHJ5X2RlYWxs
b2NhdGUodm9pZCogcHRyLAogICAgICAgICBwYXNfbG9nKCJ0cnlfZGVhbGxvY2F0ZSBmb3IgJXBc
biIsIHB0cik7CiAgICAgCiAgICAgdGhyZWFkX2xvY2FsX2NhY2hlID0gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV90cnlfZ2V0KCk7Ci0gICAgaWYgKFBBU19VTkxJS0VMWSghdGhyZWFkX2xvY2FsX2Nh
Y2hlKSkgeworICAgIGlmIChQQVNfVU5MSUtFTFkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19u
dWxsKHRocmVhZF9sb2NhbF9jYWNoZSkpKSB7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAg
ICAgICAgcGFzX2xvZygiR29pbmcgc2xvdyBiZWNhdXNlIG5vIFRMQy5cbiIpOwogICAgICAgICBy
ZXR1cm4gcGFzX3RyeV9kZWFsbG9jYXRlX3Nsb3dfbm9fY2FjaGUocHRyLCBjb25maWcuY29uZmln
X3B0ciwgZGVhbGxvY2F0aW9uX21vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggYi9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAppbmRl
eCAwNTAxYjUwYzYxOTVjNDdhZGFiOTAzZTg0MGJkMzllMWU3MDdjZWMwLi4wMjE0OThmMzcwNDYx
M2I0YTBmZTljM2Y4ZTU0ZWJkNWYyNTg5YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAorKysgYi9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMu
aApAQCAtOTUxLDcgKzk1MSw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25v
d25fY29uZmlnKAogICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0
eShwYWdlX2NvbmZpZykpIHsKICAgICAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X3RyeV9nZXQoKTsKICAgICAgICAgCi0gICAgICAgIGlmIChjYWNoZSkgeworICAgICAgICBpZiAo
IXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkpIHsKICAgICAgICAgICAgIGNh
Y2hlX25vZGUgPSBjYWNoZS0+bm9kZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLyogRG9p
bmcgdGhpcyBoZXJlIGhhcyBzb21lIHNwZWNpYWwgcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIGl0
IGRvZXNuJ3QgcHJldmVudCBmYXN0IHJldXNlCkBAIC0xMDI0LDcgKzEwMjQsNyBAQCBwYXNfbG9j
YWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvbmZpZygKICAgICAKICAgICBkaWRfZ2V0
X3ZpZXcgPSBmYWxzZTsKICAgICAKLSAgICBpZiAocGFnZV9jb25maWcuZW5hYmxlX3ZpZXdfY2Fj
aGUgJiYgY2FjaGUpIHsKKyAgICBpZiAocGFnZV9jb25maWcuZW5hYmxlX3ZpZXdfY2FjaGUgJiYg
IXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkpIHsKICAgICAgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9yZXN1bHQgdmlld19jYWNoZV9yZXN1bHQ7CiAgICAgICAgIAogICAgICAg
ICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2Vf
Y29uZmlnKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2NhdmVuZ2VyLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Nh
dmVuZ2VyLmMKaW5kZXggMmE4YWI3M2JlODczMWYwMzI1ODg2OGE4ZDhiNzhhNDdkODBmMDkyZi4u
ZWRhNDE5MjM5M2JlYWNkMjc4NjQ4ZGNhYTZlYjNhZGU4MTAyNmI0MSAxMDA2NDQKLS0tIGEvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5jCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYwpAQCAtNDYxLDcgKzQ2
MSw3IEBAIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzX2V4Y2VwdF9yZW1vdGVf
dGxjcyh2b2lkKQogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlOwogICAgIAogICAg
IGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Ci0gICAgaWYgKGNhY2hl
KQorICAgIGlmICghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKGNhY2hlKSkKICAgICAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaHJpbmsoY2FjaGUsIHBhc19sb2NrX2lzX25vdF9o
ZWxkKTsKIAogICAgIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX25vbl90bGNfY2FjaGVzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9wYWdlX2lubGluZXMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCmluZGV4IGM3NjViMDVhZGY0NzE0MjNlZGZiMGI4ZDAz
NmFhZmZlNmFkYWRkYmUuLjcwZDljOWZmY2NmYjg2ODg0YTE0OWRhMzMyNTI0M2QwNmMxMGJhYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhZ2VfaW5saW5lcy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCkBAIC0yNzgsNiArMjc4LDcgQEAgc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193
aXRoX21vZGUoCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0gfQogICAgIFBBU19BU1NFUlQo
ISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jaygK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaAppbmRleCBiMDU3
OTE2ZDlkZmYxMDRmZWI0NWJiMDJkNzFlOWQ2MjU3YTcxZTExLi5mNzY1OGY5ZTEyODJkM2JhYzAy
YWZjOWI4NGU4ZTViZGFkMGYwMDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgKKysrIGIv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfaW5saW5lcy5oCkBAIC01OCw3ICs1OCw3IEBAIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3IoCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKIHsK
ICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3Io
ZGlyZWN0b3J5KQotICAgICAgICAmJiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkg
fHwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KCkpKSB7CisgICAgICAgICYmICghcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dl
dCgpKSB8fCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkpIHsKICAgICAgICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMo
CiAgICAgICAgICAgICBkaXJlY3RvcnksIHNpemUsIHNpemVfbG9va3VwX21vZGUsIGNvbmZpZywg
Y2FjaGVkX2luZGV4KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMKaW5kZXggZjc4MTAzMDM3YmZl
MDNlNjkyNTU0Mzk3OGFlYWQ4ZmUzZjBmYTdkZS4uZDBhZTVhMmIzZTM1MjFkNzFiMWUzYjBiNjNk
M2ZhOTFiMTA4OTRjMyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYwpAQCAtOTEsMTEgKzkxLDI1IEBAIHN0
YXRpYyB2b2lkIGRlc3Ryb3kocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2Nh
Y2hlLCBwYXNfbG9ja19ob2xkX21vCiAKIHN0YXRpYyB2b2lkIGRlc3RydWN0b3Iodm9pZCogYXJn
KQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKwogICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZTsKICAgICAKICAgICB0aHJlYWRf
bG9jYWxfY2FjaGUgPSAocGFzX3RocmVhZF9sb2NhbF9jYWNoZSopYXJnOwogCi0gICAgZGVzdHJv
eSh0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyNpZm5kZWYgUEFT
X1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUCisgICAgLyogSWYgcHRo
cmVhZF9zZWxmX2lzX2V4aXRpbmdfbnAgZG9lcyBub3QgZXhpc3QsIHdlIHNldCBQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0RFU1RST1lFRCB0byB0aGUgVExTIHNvIHRoYXQKKyAgICAgICBzdWJzZXF1
ZW50IGNhbGxzIG9mIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpIGNhbiBkZXRlY3Qg
d2hldGhlciBUTFMgaXMgZGVzdHJveWVkLiBTaW5jZSBpdCBpcyBub3QKKyAgICAgICBOVUxMLCB0
aGlzIGRlc3RydWN0b3Igd2lsbCBiZSBjYWxsZWQgb25jZSBhZ2FpbiBsYXRlci4gV2UgcmVwZWF0
IGludm9raW5nIHRoaXMgZGVzdHJ1Y3RvciBQVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUyB0
aW1lcy4gKi8KKyAgICBQQVNfRkFTVF9UTFNfU0VUKFBBU19USFJFQURfTE9DQUxfS0VZLCAmcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9mYXN0X3RscywgKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKVBB
U19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEKTsKKyNlbmRpZgorCisgICAgaWYgKCFwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwodGhyZWFkX2xvY2FsX2NhY2hlKSkKKyAgICAgICAg
ZGVzdHJveSh0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJbJWRdIFJl
cGVhdGVkIGRlc3RydWN0b3IgY2FsbCBmb3IgVExTICVwXG4iLCBnZXRwaWQoKSwgdGhyZWFkX2xv
Y2FsX2NhY2hlKTsKKyAgICB9CiB9CiAKIHN0YXRpYyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBh
bGxvY2F0ZV9jYWNoZSh1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpCkBAIC0xODcs
NyArMjAxLDcgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Rlc3Ryb3kocGFzX2xvY2tf
aG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiAKICAgICB0aHJlYWRfbG9jYWxfY2FjaGUg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKIAotICAgIGlmICghdGhyZWFkX2xv
Y2FsX2NhY2hlKQorICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwodGhyZWFk
X2xvY2FsX2NhY2hlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHZlcmJvc2UpCkBAIC0y
MTEsNyArMjI1LDcgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9nZXRfc2xvdyhwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKICAgICAgICBoYXBwZW4gYmVm
b3JlIGFueSBUTENzIGFyZSBhbGxvY2F0ZWQuICovCiAgICAgcGFzX2hlYXBfY29uZmlnX2FjdGl2
YXRlKGNvbmZpZyk7CiAgICAgCi0gICAgUEFTX0FTU0VSVCghcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV90cnlfZ2V0KCkpOworICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19u
dWxsKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpKSk7CiAgICAgCiAgICAgdGhyZWFk
X2xvY2FsX2NhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jcmVhdGUoKTsKICAgICAKQEAg
LTU2Niw3ICs1ODAsNyBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxv
Y2F0aW9uX2xvZyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYQogICAgICAgICBwYXNfc2Nh
dmVuZ2VyX25vdGlmeV9lbGlnaWJpbGl0eV9pZl9uZWVkZWQoKTsKIH0KIAotI2lmZGVmIFBBU19U
SFJFQURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVAorI2lmIFBBU19PUyhEQVJX
SU4pCiAKIHN0YXRpYyB2b2lkIHN1c3BlbmQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUp
CiB7CkBAIC03NDAsMTQgKzc1NCw3IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3Jf
YWxsKHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uIGFsbG9jYXRvcl9hY3RpCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIAotI2lmZGVmIFBBU19U
SFJFQURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVAotICAgICAgICAgICAgICAg
IGlmICghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0KCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgLyogV2UncmUgb24gYSBwbGF0Zm9ybSB0aGF0IGNhbid0
IGd1YXJhbnRlZSB0aGF0IHRocmVhZCBsb2NhbCBjYWNoZXMgYXJlIGRlc3RydWN0ZWQuCi0gICAg
ICAgICAgICAgICAgICAgICAgIFRoZXJlZm9yZSwgd2UgbWlnaHQgaGF2ZSBhIFRMQyB0aGF0IGhh
cyBhIGRhbmdsaW5nIHRocmVhZCBwb2ludGVyLiBTbywgd2UgZG9uJ3QKLSAgICAgICAgICAgICAg
ICAgICAgICAgYXR0ZW1wdCB0byBkbyB0aGUgc3VzcGVuZCB0aGluZy4gKi8KLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotCisjaWYgUEFTX09TKERBUldJ
TikKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAgcGFz
X2xvZygiTmVlZCB0byBzdXNwZW5kIGZvciBhbGxvY2F0b3IgJXBcbiIsIHNjYXZlbmdlcl9kYXRh
KTsKICAgICAgICAgICAgICAgICAKQEAgLTc2OSw3ICs3NzYsNyBAQCBib29sIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbiBhbGxvY2F0
b3JfYWN0aQogI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSNpZmRlZiBQQVNf
VEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRFQ1RfVEhSRUFEX0VYSVQKKyNpZiBQQVNfT1MoREFS
V0lOKQogICAgICAgICAgICAgaWYgKGRpZF9zdXNwZW5kKQogICAgICAgICAgICAgICAgIHJlc3Vt
ZShjYWNoZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaAppbmRleCAyNTc2NTdhMzk4MDIzM2Nm
MDcxMzNmNDE4NDc1MzEzNGRmOGZlMjEyLi5mMWM3ZjI0ZWM1Y2E4MGExNzc3MjM3NWVhZGM4MzEw
Mzg5Yzg5YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oCkBAIC00NCw2ICs0NCw4IEBACiAjZGVmaW5l
IFBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAwCiAjZW5kaWYKIAorI2RlZmluZSBQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0RFU1RST1lFRCAxCisKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0
IHBhc19tYWdhemluZTsKQEAgLTg5LDYgKzkxLDExIEBAIHN0YXRpYyBpbmxpbmUgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KHZvaWQpCiAgICAg
ICAgIFBBU19USFJFQURfTE9DQUxfS0VZLCAmcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mYXN0X3Rs
cyk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251
bGwocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpCit7CisgICAgcmV0dXJuICgodWludHB0
cl90KWNhY2hlKSA8PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRDsKK30KKwogI2lm
IFBBU19IQVZFX1BUSFJFQURfUFJJVkFURQogI2lmIChQQVNfUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkgXAogICAgIHx8IChQQVNfUExB
VEZPUk0oTUFDQ0FUQUxZU1QpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDE0MDAwMCkgXApAQCAtOTgsMzggKzEwNSwyNyBAQCBzdGF0aWMgaW5saW5lIHBhc190aHJlYWRf
bG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCh2b2lkKQogI2RlZmlu
ZSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRFQ1RfVEhSRUFEX0VYSVQgMQogI2VuZGlm
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRl
ZWRfdG9fZGVzdHJ1Y3Qodm9pZCkKLXsKLSNpZmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NB
Tl9ERVRFQ1RfVEhSRUFEX0VYSVQKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJu
IGZhbHNlOwotI2VuZGlmCi19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2Nhbl9zZXQodm9pZCkKIHsKICNpZmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NB
Tl9ERVRFQ1RfVEhSRUFEX0VYSVQKICAgICByZXR1cm4gIXB0aHJlYWRfc2VsZl9pc19leGl0aW5n
X25wKCk7CiAjZWxzZQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiAodWludHB0cl90KXBh
c190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpICE9IFBBU19USFJFQURfTE9DQUxfQ0FDSEVf
REVTVFJPWUVEOwogI2VuZGlmCiB9CisKICNlbHNlIC8qIFBBU19IQVZFX1BUSFJFQURfUFJJVkFU
RSAtPiBzbyAhUEFTX0hBVkVfUFRIUkVBRF9QUklWQVRFICovCi1zdGF0aWMgaW5saW5lIGJvb2wg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0KHZvaWQpCi17
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9jYW5fc2V0KHZvaWQpCiB7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJu
ICh1aW50cHRyX3QpcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkgIT0gUEFTX1RIUkVB
RF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQ7CiB9CisKICNlbmRpZiAvKiBQQVNfSEFWRV9QVEhSRUFE
X1BSSVZBVEUgLT4gc28gZW5kIG9mICFQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUgKi8KIAogc3Rh
dGljIGlubGluZSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlKQogewotICAgIFBBU19BU1NFUlQocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KCkgfHwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90
cnlfZ2V0KCkpOworICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0
KCkgfHwgIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3RyeV9nZXQoKSkpOwogICAgIFBBU19GQVNUX1RMU19TRVQoUEFTX1RIUkVBRF9MT0NBTF9L
RVksICZwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zhc3RfdGxzLCB0aHJlYWRfbG9jYWxfY2FjaGUp
OwogfQogCkBAIC0xNDgsNyArMTQ0LDcgQEAgc3RhdGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9hbHJlYWR5X2luaXRpYWwKIAogICAg
IHJlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwogCi0gICAgUEFTX0FT
U0VSVChyZXN1bHQpOworICAgIFBBU19BU1NFUlQoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNf
bnVsbChyZXN1bHQpKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xNjEsNyArMTU3LDcg
QEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfd2l0aF9oZWFwX2xvY2tfaG9sZF9tb2RlKHBh
c19oZWFwX2NvbmZpZyogY29uZmlnLAogCiAgICAgcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV90cnlfZ2V0KCk7CiAgICAgCi0gICAgaWYgKFBBU19MSUtFTFkocmVzdWx0KSkKKyAgICBp
ZiAoUEFTX0xJS0VMWSghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKHJlc3VsdCkpKQog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIAogICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF9zbG93KGNvbmZpZywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CkBAIC0zMDYsNyAr
MzAyLDcgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nh
bl9zZXRfY2FjaGVfZm9yX3Bvc3NpYmx5X3VuaW5pdGkKIAogICAgIGNhY2hlID0gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7CiAKLSAgICBpZiAoUEFTX1VOTElLRUxZKCFjYWNoZSkp
IHsKKyAgICBpZiAoUEFTX1VOTElLRUxZKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChj
YWNoZSkpKSB7CiAgICAgICAgIHJldHVybgogICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bvc3NpYmx5X3Vu
aW5pdGlhbGl6ZWRfaW5kZXhfc2xvdygKICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXgs
IGhlYXBfY29uZmlnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190cnlfYWxsb2NhdGUuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190cnlfYWxsb2NhdGUuaAppbmRleCA0NzdmYmJhNjlkNTQzMjZmMDU2MWRmMDA1NjI0NTAw
N2FkZTdhYzU3Li5mMWRhODQyMDlkMDE5ODQ4NmRlYjFhYTBhZTRjNTljYmZhYWFiZDQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRl
LmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0
ZS5oCkBAIC04Myw3ICs4Myw3IEBAIHBhc190cnlfYWxsb2NhdGVfaW1wbF9pbmxpbmVfb25seSgK
IAogICAgIGFsbG9jYXRvcl9pbmRleCA9IGhlYXBfcmVmLT5hbGxvY2F0b3JfaW5kZXg7CiAgICAg
Y2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKLSAgICBpZiAoUEFTX1VO
TElLRUxZKCFjYWNoZSkpCisgICAgaWYgKFBBU19VTkxJS0VMWShwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2lzX251bGwoY2FjaGUpKSkKICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9jcmVhdGVfZmFpbHVyZSgpOwogCiAgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcl9vcl91bnNlbGVjdGVkX2Zvcl91bmluaXRpYWxp
emVkX2luZGV4KApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oCmluZGV4IDYyODk1OWNlZWM4ZTk5NTAzNzQ5ZGI1
NGZiNDkwM2YzY2Q5NGFlMzAuLmUyMGMzOThjODI1ZTNiOTMzODY4MDY1ZWQwYTNjMzg4ZmZjZjE1
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlf
YWxsb2NhdGVfYXJyYXkuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwYXNfdHJ5X2FsbG9j
YXRlX2FycmF5X2ltcGxfaW5saW5lX29ubHlfd2l0aF9oZWFwKAogICAgICAgICAmaGVhcC0+c2Vn
cmVnYXRlZF9oZWFwLCBhbGlnbmVkX3NpemUsIGNvbmZpZyk7CiAKICAgICBjYWNoZSA9IHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwotICAgIGlmIChQQVNfVU5MSUtFTFkoIWNhY2hl
KSkKKyAgICBpZiAoUEFTX1VOTElLRUxZKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChj
YWNoZSkpKQogICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWls
dXJlKCk7CiAgICAgCiAgICAgYWxsb2NhdG9yID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmggYi9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oCmlu
ZGV4IGYzNTNlYjVjOTQxNGIxODFhYWRiM2FkNTA2Njk5OTk5ZjE3N2NkZjAuLjkwYTgzNzkzMTA3
MzY2MzZjNjZmMTYzNTUyZTRlM2YxNGRlZWE2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmgKKysrIGIvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMu
aApAQCAtMTE2LDcgKzExNiw3IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfY2Fz
dWFsX2Nhc2UoCiAgICAgfQogCiAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3Ry
eV9nZXQoKTsKLSAgICBpZiAoUEFTX0xJS0VMWShjYWNoZSkpIHsKKyAgICBpZiAoUEFTX0xJS0VM
WSghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKGNhY2hlKSkpIHsKICAgICAgICAgdW5z
aWduZWQgYWxsb2NhdG9yX2luZGV4OwogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dCBhbGxvY2F0b3JfcmVzdWx0OwogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0
b3I7CkBAIC0yMTAsNyArMjEwLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfaW1wbF9p
bmxpbmVfb25seSgKICAgICB9CiAKICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
dHJ5X2dldCgpOwotICAgIGlmIChQQVNfVU5MSUtFTFkoIWNhY2hlKSkKKyAgICBpZiAoUEFTX1VO
TElLRUxZKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkpKQogICAgICAgICBy
ZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAgICAgCiAgICAg
ZGVzaWduYXRlZF9pbmRleCA9IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0
ZWRfaW5kZXgoCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaAppbmRleCAwYmNkYzFmODM3MjgwN2Q5
ZTA4YjY1OTdmYzJkYTViNDM0ZDI0ZjQwLi40ZDBiZTJhOWYxY2RjMTgyMmUxNzYxMjVmNmNlYzQ1
YTI1MmQ2YmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmgKQEAgLTE2Nyw3ICsxNjcsNyBA
QCBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsX2lubGluZV9vbmx5KAogICAgICAgICBw
cmludGYoImFsbG9jYXRvcl9pbmRleCA9ICV1XG4iLCBhbGxvY2F0b3JfaW5kZXgpOwogCiAgICAg
Y2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKLSAgICBpZiAoUEFTX1VO
TElLRUxZKCFjYWNoZSkpCisgICAgaWYgKFBBU19VTkxJS0VMWShwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2lzX251bGwoY2FjaGUpKSkKICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9jcmVhdGVfZmFpbHVyZSgpOwogICAgIAogICAgIGFsbG9jYXRvciA9CmRpZmYgLS1naXQgYS9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaCBiL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCmluZGV4IDc2MWEyNThmMTEyZTk2YmQx
MGVlY2MyMGFkMTliN2Y5MDcxMTM0MzcuLjEwY2U0ODFiMmQ5ZTA4Yjc0NjQyMTA4OWY4ODI4ZWFk
NGEwYzdjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c191dGlscy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGls
cy5oCkBAIC0xMDgsMTQgKzEwOCwxMyBAQCBQQVNfQVBJIFBBU19OT19SRVRVUk4gUEFTX05FVkVS
X0lOTElORSB2b2lkIHBhc19yZWFsbG9jYXRpb25fZGlkX2ZhaWwoY29uc3QgY2hhcgogCiBQQVNf
QVBJIFBBU19OT19SRVRVUk4gdm9pZCBwYXNfYXNzZXJ0aW9uX2ZhaWxlZChjb25zdCBjaGFyKiBm
aWxlbmFtZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBleHBy
ZXNzaW9uKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV21pc3Npbmctbm9yZXR1cm4iCitQQVNfSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJtaXNzaW5nLW5vcmV0dXJuIikKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfYXNz
ZXJ0aW9uX2ZhaWxlZF9ub3JldHVybl9zaWxlbmNlcigKICAgICBjb25zdCBjaGFyKiBmaWxlbmFt
ZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBleHByZXNzaW9u
KQogewogICAgIHBhc19hc3NlcnRpb25fZmFpbGVkKGZpbGVuYW1lLCBsaW5lLCBmdW5jdGlvbiwg
ZXhwcmVzc2lvbik7CiB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitQQVNfSUdOT1JF
X1dBUk5JTkdTX0VORAogCiAjZGVmaW5lIFBBU19MSUtFTFkoeCkgX19QQVNfTElLRUxZKHgpCiAj
ZGVmaW5lIFBBU19VTkxJS0VMWSh4KSBfX1BBU19VTkxJS0VMWSh4KQpkaWZmIC0tZ2l0IGEvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcCBi
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5j
cHAKaW5kZXggNzQzMjFkOTQ5MTM1ZDJmMTlhZDAzNzJkOTY0MmU4NTA5Y2UwYzU5YS4uZTkyZjhj
OGJlMGU3MWJmYzU1MWUyN2NkYmZiYzlhMmUzZmZjYzI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAorKysgYi9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3Bw
CkBAIC00NTE5LDIyICs0NTE5LDE4IEBAIHZvaWQgYWRkQWxsVGVzdHMoKQogICAgICAgICBBRERf
VEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnkoMTI4LCAxKSk7CiAgICAg
ICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeSgxMjgsIDEw
MDAwKSk7CiAgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01l
bW9yeSg4LCAxMDAwMCkpOwotICAgICAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19n
dWFyYW50ZWVkX3RvX2Rlc3RydWN0KCkpIHsKLSAgICAgICAgICAgIEFERF9URVNUKHRlc3RTY2F2
ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwg
MSkpOwotICAgICAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5z
TWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxMDAwMCkpOwotICAgICAgICAgICAg
QUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRN
YW51YWxTaHJpbmsoOCwgMTAwMDApKTsKLSAgICAgICAgfQorICAgICAgICBBRERfVEVTVCh0ZXN0
U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluaygx
MjgsIDEpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5z
TWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxMDAwMCkpOworICAgICAgICBBRERf
VEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVh
bFNocmluayg4LCAxMDAwMCkpOwogICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyU2h1dHNE
b3duRXZlbnR1YWxseSg2NCwgMTAwMDAsIDEsIDEpKTsKICAgICB9CiAgICAgCiAgICAgQUREX1RF
U1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDEyOCwgMSkpOwogICAgIEFE
RF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeSgxMjgsIDEwMDAwKSk7
CiAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDgsIDEw
MDAwKSk7Ci0gICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFudGVlZF90b19k
ZXN0cnVjdCgpKSB7Ci0gICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0
dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMSkpOwotICAgICAgICBBRERf
VEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVh
bFNocmluaygxMjgsIDEwMDAwKSk7Ci0gICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVu
dHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDgsIDEwMDAwKSk7Ci0g
ICAgfQorICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2
ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMSkpOworICAgIEFERF9URVNUKHRlc3RTY2F2ZW5n
ZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMTAw
MDApKTsKKyAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlF
dmVuV2l0aG91dE1hbnVhbFNocmluayg4LCAxMDAwMCkpOwogICAgIEFERF9URVNUKHRlc3RTY2F2
ZW5nZXJTaHV0c0Rvd25FdmVudHVhbGx5KDY0LCAxMDAwMCwgMSwgMSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNl
bGluZVRlc3RzLmNwcCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFy
dGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwCmluZGV4IDJjZjAyMWIyYTAwM2VkYWQ3YzNjYzJiNDJj
YmRiMzgwNjBlNDQ2ZmEuLjg5NjBhNGEzOWMwMTQxNzAxYWQ2NGI2ZDc3MmFkNDcxZTM0YzkxYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlh
bEFuZEJhc2VsaW5lVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVz
dC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwCkBAIC0xMDgyLDEwICsxMDgyLDgg
QEAgdm9pZCBhZGRJc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMoKQogICAgIFN1c3BlbmRT
Y2F2ZW5nZXJTY29wZSBzdXNwZW5kU2NhdmVuZ2VyOwogICAgIAogI2lmIFBBU19FTkFCTEVfSVNP
ICYmIFBBU19FTkFCTEVfSVNPX1RFU1QKLSAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9p
c19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0KCkpIHsKLSAgICAgICAgUnVuU2NhdmVuZ2VyRnVsbHkg
cnVuU2NhdmVuZ2VyRnVsbHk7Ci0gICAgICAgIGFkZFNjYXZlbmdlckRlcGVuZGVudFRlc3RzKCk7
Ci0gICAgfQorICAgIFJ1blNjYXZlbmdlckZ1bGx5IHJ1blNjYXZlbmdlckZ1bGx5OworICAgIGFk
ZFNjYXZlbmdlckRlcGVuZGVudFRlc3RzKCk7CiAgICAgewogICAgICAgICBSdW5TY2F2ZW5nZXJP
bk5vblJlbW90ZUNhY2hlcyBydW5TY2F2ZW5nZXJPbk5vblJlbW90ZUNhY2hlczsKICAgICAgICAg
YWRkU2NhdmVuZ2VyRGVwZW5kZW50VGVzdHMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445940</attachid>
            <date>2021-12-03 19:41:55 -0800</date>
            <delta_ts>2021-12-03 20:13:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233851-20211204034154.patch</filename>
            <type>text/plain</type>
            <size>23240</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggZTg2Yjg0MGI2NGVhZGFk
ODUxY2IwYTUzNjUxNzEyN2UxMzg3YzZlMy4uNzZkZTI0ZjZmNDEwYjI5MDI3NDViY2VlZDc5ODE5
YTM2YzVjZDZhOCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIxLTEyLTAzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gU2V0IHB0
aHJlYWRfc2V0c3BlY2lmaWMgd2l0aCBtYXJrZXIgaW4gVExTIGRlc3RydWN0b3IgdG8gZGV0ZWN0
IFRMUyBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRMUyBoYXMgbGlmZXRpbWUgcHJvYmxlbSB0aGF0LAorCisgICAgICAgIDEuIFRM
UyBpcyBkZXN0cm95ZWQKKyAgICAgICAgMi4gVGhlIG90aGVyIFRMUyBpcyBkZXN0cm95ZWQsIGFu
ZCB0aGUgZGVzdHJ1Y3RvciBpcyBjYWxsZWQKKyAgICAgICAgMy4gVGhlIGRlc3RydWN0b3IgdG91
Y2hlcyAoMSkncyBUTFMsIHRoZW4gcmV2aXZlIFRMUyBvZiAoMSkgKGUuZy4gbGlicGFzJ3MgdGhy
ZWFkIGxvY2FsIGNhY2hlKS4KKworICAgICAgICBUbyBoYW5kbGUgdGhlc2UgY2FzZXMsIHB0aHJl
YWQgbGlicmFyeSAobGliYykgcmVwZWF0ZWRseSBjYWxscyBkZXN0cnVjdG9yIFBBU19USFJFQURf
TE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzCisgICAgICAgIHNvIHRoYXQgd2UgY2xlYW4gdXAg
cmV2aXZlZCBUTFMgYWdhaW4uCisKKyAgICAgICAgQnkgdXNpbmcgdGhpcyBtZWNoYW5pc20sIHdl
IGNhbiBlbXVsYXRlIHB0aHJlYWRfc2VsZl9pc19leGl0aW5nX25wIHNvIHRoYXQgd2UgY2FuIGF2
b2lkIHJldml2aW5nIFRMUy4KKworICAgICAgICAxLiBXaGVuIGRlc3Ryb3lpbmcgVExTLCB3ZSBz
ZXQgYSBtYXJrZXIgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIGluIHRoaXMgY2Fz
ZSkgdG8gVExTLgorICAgICAgICAyLiBEdXJpbmcgdGhlIG90aGVyIGRlc3RydWN0b3IgY2FsbHMs
IHdlIGNhbiBkZXRlY3QgdGhhdCBUTFMgaXMgZGVzdHJveWVkIGJ5IGNoZWNraW5nIHB0aHJlYWRf
Z2V0c3BlY2lmaWMoLi4uKSA9PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRC4KKyAg
ICAgICAgMy4gV2UgcmVwZWF0ZWRseSBjYWxscyB0aGUgZGVzdHJ1Y3RvciBvZiBUTFMsIGJ1dCBl
dmVyeSB0aW1lLCB3ZSBzZXQgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQuCisgICAg
ICAgICAgIFNvIGFmdGVyIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzLCBp
dCBpcyBsZWZ0LCBhbmQgd2UgYWNoaWV2ZSB0aGUgZ29hbCAoMSkgb2ZmZXJpbmcgdGhlIHdheSB0
bworICAgICAgICAgICBkZXRlY3QgdGhlIGRlc3Ryb3llZCBUTFMgYW5kICgyKSBhdm9pZGluZyBy
ZXZpdmluZyBvZiBUTFMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGl0IHdoZW4g
cHRocmVhZF9zZWxmX2lzX2V4aXRpbmdfbnAgZG9lcyBub3QgZXhpc3QuCisKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5oOgorICAgICAgICAocGFzX2RlYWxsb2Nh
dGVfa25vd25fc2VncmVnYXRlZCk6CisgICAgICAgIChwYXNfdHJ5X2RlYWxsb2NhdGUpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oOgor
ICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jb25maWcpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYzoKKyAgICAgICAgKHBh
c19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3MpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193aXRoX21vZGUpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxv
Y2F0b3IpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGUuYzoKKyAgICAgICAgKGRlc3RydWN0b3IpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9kZXN0cm95KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3Nsb3cp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmg6CisgICAgICAgIChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9jYW5fc2V0KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfYWxyZWFkeV9pbml0aWFsaXpl
ZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF93aXRoX2hlYXBfbG9ja19o
b2xkX21vZGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bvc3NpYmx5X3VuaW5pdGlhbGl6ZWRfaW5kZXgp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3Ry
dWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9j
YXRlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ltcGxfaW5saW5lX29ubHkpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaDoKKyAgICAg
ICAgKHBhc190cnlfYWxsb2NhdGVfYXJyYXlfaW1wbF9pbmxpbmVfb25seV93aXRoX2hlYXApOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmg6
CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX2Nhc3VhbF9jYXNlKToK
KyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5lX29ubHkpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmg6
CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsX2lubGluZV9vbmx5KToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaDoKKyAgICAgICAgKHBhc19h
c3NlcnRpb25fZmFpbGVkX25vcmV0dXJuX3NpbGVuY2VyKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjphZGRBbGxU
ZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxp
bmVUZXN0cy5jcHA6CisgICAgICAgIChhZGRJc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMp
OgorCiAyMDIxLTEyLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW2xpYnBhc10gQml0Zml0IGFsbG9jYXRvciBoYXMgYSB3cm9uZyBhc3NlcnRpb24gd2hlbiBh
IHBhZ2UncyBtYXhfZnJlZSBpcyBlbm91Z2ggZm9yIHRoZSBzaXplIG9mIGFuIGFsbG9jYXRpb24s
IG5vdCBlbm91Z2ggZm9yIHRoYXQgYWxsb2NhdGlvbidzIHNpemUgY2xhc3MsIGFuZCB0aGUgb2Jq
ZWN0IG9mIHRoYXQgc2l6ZSBpcyBub3QgYWxpZ25lZCB0byB0aGUgY3VycmVudGx5IHJlcXVlc3Rl
ZCBhbGlnbm1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19kZWFsbG9jYXRlLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZGVhbGxvY2F0ZS5oCmluZGV4IGMxYmNhN2Y2Mzk3NDhhODhiMzJjNzM1ODY0NzQ1OTRkYjMzOWQx
ODguLmNhYTY1MTExMTE2NDk2NGVmNmMzOWQ5NWUyM2MwYmY0OGE0YmViM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRlLmgKKysrIGIv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdGUuaApAQCAtNTYs
NyArNTYsNyBAQCBwYXNfZGVhbGxvY2F0ZV9rbm93bl9zZWdyZWdhdGVkKHZvaWQqIHB0ciwKICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGU7CiAKICAgICB0aHJl
YWRfbG9jYWxfY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKLSAgICBp
ZiAoIXRocmVhZF9sb2NhbF9jYWNoZSkgeworICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2lzX251bGwodGhyZWFkX2xvY2FsX2NhY2hlKSkgewogICAgICAgICBwYXNfdHJ5X2RlYWxsb2Nh
dGVfc2xvd19ub19jYWNoZShwdHIsIHBhZ2VfY29uZmlnLmJhc2UuaGVhcF9jb25maWdfcHRyLCBw
YXNfZGVhbGxvY2F0ZV9tb2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5Myw3ICsx
OTMsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfdHJ5X2RlYWxsb2NhdGUo
dm9pZCogcHRyLAogICAgICAgICBwYXNfbG9nKCJ0cnlfZGVhbGxvY2F0ZSBmb3IgJXBcbiIsIHB0
cik7CiAgICAgCiAgICAgdGhyZWFkX2xvY2FsX2NhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV90cnlfZ2V0KCk7Ci0gICAgaWYgKFBBU19VTkxJS0VMWSghdGhyZWFkX2xvY2FsX2NhY2hlKSkg
eworICAgIGlmIChQQVNfVU5MSUtFTFkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKHRo
cmVhZF9sb2NhbF9jYWNoZSkpKSB7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAg
cGFzX2xvZygiR29pbmcgc2xvdyBiZWNhdXNlIG5vIFRMQy5cbiIpOwogICAgICAgICByZXR1cm4g
cGFzX3RyeV9kZWFsbG9jYXRlX3Nsb3dfbm9fY2FjaGUocHRyLCBjb25maWcuY29uZmlnX3B0ciwg
ZGVhbGxvY2F0aW9uX21vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggYi9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAppbmRleCAwNTAx
YjUwYzYxOTVjNDdhZGFiOTAzZTg0MGJkMzllMWU3MDdjZWMwLi4wMjE0OThmMzcwNDYxM2I0YTBm
ZTljM2Y4ZTU0ZWJkNWYyNTg5YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAorKysgYi9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaApAQCAt
OTUxLDcgKzk1MSw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY29u
ZmlnKAogICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdl
X2NvbmZpZykpIHsKICAgICAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9n
ZXQoKTsKICAgICAgICAgCi0gICAgICAgIGlmIChjYWNoZSkgeworICAgICAgICBpZiAoIXBhc190
aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkpIHsKICAgICAgICAgICAgIGNhY2hlX25v
ZGUgPSBjYWNoZS0+bm9kZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLyogRG9pbmcgdGhp
cyBoZXJlIGhhcyBzb21lIHNwZWNpYWwgcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIGl0IGRvZXNu
J3QgcHJldmVudCBmYXN0IHJldXNlCkBAIC0xMDI0LDcgKzEwMjQsNyBAQCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvbmZpZygKICAgICAKICAgICBkaWRfZ2V0X3ZpZXcg
PSBmYWxzZTsKICAgICAKLSAgICBpZiAocGFnZV9jb25maWcuZW5hYmxlX3ZpZXdfY2FjaGUgJiYg
Y2FjaGUpIHsKKyAgICBpZiAocGFnZV9jb25maWcuZW5hYmxlX3ZpZXdfY2FjaGUgJiYgIXBhc190
aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkpIHsKICAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZXN1bHQgdmlld19jYWNoZV9yZXN1bHQ7CiAgICAgICAgIAogICAgICAgICBQQVNf
QVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2VfY29uZmln
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Nh
dmVuZ2VyLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2Vy
LmMKaW5kZXggMmE4YWI3M2JlODczMWYwMzI1ODg2OGE4ZDhiNzhhNDdkODBmMDkyZi4uZWRhNDE5
MjM5M2JlYWNkMjc4NjQ4ZGNhYTZlYjNhZGU4MTAyNmI0MSAxMDA2NDQKLS0tIGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5jCisrKyBiL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYwpAQCAtNDYxLDcgKzQ2MSw3IEBA
IHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzX2V4Y2VwdF9yZW1vdGVfdGxjcyh2
b2lkKQogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlOwogICAgIAogICAgIGNhY2hl
ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Ci0gICAgaWYgKGNhY2hlKQorICAg
IGlmICghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKGNhY2hlKSkKICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9zaHJpbmsoY2FjaGUsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsK
IAogICAgIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX25vbl90bGNfY2FjaGVzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdl
X2lubGluZXMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhZ2VfaW5saW5lcy5oCmluZGV4IGM3NjViMDVhZGY0NzE0MjNlZGZiMGI4ZDAzNmFhZmZl
NmFkYWRkYmUuLjcwZDljOWZmY2NmYjg2ODg0YTE0OWRhMzMyNTI0M2QwNmMxMGJhYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Bh
Z2VfaW5saW5lcy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCkBAIC0yNzgsNiArMjc4LDcgQEAgc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193aXRoX21v
ZGUoCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0gfQogICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jaygKZGlmZiAt
LWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2lubGluZXMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaAppbmRleCBiMDU3OTE2ZDlk
ZmYxMDRmZWI0NWJiMDJkNzFlOWQ2MjU3YTcxZTExLi5mNzY1OGY5ZTEyODJkM2JhYzAyYWZjOWI4
NGU4ZTViZGFkMGYwMDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgKKysrIGIvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
aW5saW5lcy5oCkBAIC01OCw3ICs1OCw3IEBAIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3NlbGVjdF9hbGxvY2F0b3IoCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKIHsKICAgICBp
ZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0
b3J5KQotICAgICAgICAmJiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkgfHwgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KCkpKSB7CisgICAgICAgICYmICghcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9pc19udWxsKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpKSB8
fCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkpIHsKICAgICAgICAgcmV0dXJuIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMoCiAgICAg
ICAgICAgICBkaXJlY3RvcnksIHNpemUsIHNpemVfbG9va3VwX21vZGUsIGNvbmZpZywgY2FjaGVk
X2luZGV4KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMKaW5kZXggZjc4MTAzMDM3YmZlMDNlNjky
NTU0Mzk3OGFlYWQ4ZmUzZjBmYTdkZS4uZDBhZTVhMmIzZTM1MjFkNzFiMWUzYjBiNjNkM2ZhOTFi
MTA4OTRjMyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RocmVhZF9sb2NhbF9jYWNoZS5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYwpAQCAtOTEsMTEgKzkxLDI1IEBAIHN0YXRpYyB2
b2lkIGRlc3Ryb3kocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLCBw
YXNfbG9ja19ob2xkX21vCiAKIHN0YXRpYyB2b2lkIGRlc3RydWN0b3Iodm9pZCogYXJnKQogewor
ICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKwogICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZTsKICAgICAKICAgICB0aHJlYWRfbG9jYWxf
Y2FjaGUgPSAocGFzX3RocmVhZF9sb2NhbF9jYWNoZSopYXJnOwogCi0gICAgZGVzdHJveSh0aHJl
YWRfbG9jYWxfY2FjaGUsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyNpZm5kZWYgUEFTX1RIUkVB
RF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUCisgICAgLyogSWYgcHRocmVhZF9z
ZWxmX2lzX2V4aXRpbmdfbnAgZG9lcyBub3QgZXhpc3QsIHdlIHNldCBQQVNfVEhSRUFEX0xPQ0FM
X0NBQ0hFX0RFU1RST1lFRCB0byB0aGUgVExTIHNvIHRoYXQKKyAgICAgICBzdWJzZXF1ZW50IGNh
bGxzIG9mIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpIGNhbiBkZXRlY3Qgd2hldGhl
ciBUTFMgaXMgZGVzdHJveWVkLiBTaW5jZSBpdCBpcyBub3QKKyAgICAgICBOVUxMLCB0aGlzIGRl
c3RydWN0b3Igd2lsbCBiZSBjYWxsZWQgb25jZSBhZ2FpbiBsYXRlci4gV2UgcmVwZWF0IGludm9r
aW5nIHRoaXMgZGVzdHJ1Y3RvciBQVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUyB0aW1lcy4g
Ki8KKyAgICBQQVNfRkFTVF9UTFNfU0VUKFBBU19USFJFQURfTE9DQUxfS0VZLCAmcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9mYXN0X3RscywgKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKVBBU19USFJF
QURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEKTsKKyNlbmRpZgorCisgICAgaWYgKCFwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2lzX251bGwodGhyZWFkX2xvY2FsX2NhY2hlKSkKKyAgICAgICAgZGVzdHJv
eSh0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICBlbHNlIHsK
KyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJbJWRdIFJlcGVhdGVk
IGRlc3RydWN0b3IgY2FsbCBmb3IgVExTICVwXG4iLCBnZXRwaWQoKSwgdGhyZWFkX2xvY2FsX2Nh
Y2hlKTsKKyAgICB9CiB9CiAKIHN0YXRpYyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBhbGxvY2F0
ZV9jYWNoZSh1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpCkBAIC0xODcsNyArMjAx
LDcgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Rlc3Ryb3kocGFzX2xvY2tfaG9sZF9t
b2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiAKICAgICB0aHJlYWRfbG9jYWxfY2FjaGUgPSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKIAotICAgIGlmICghdGhyZWFkX2xvY2FsX2Nh
Y2hlKQorICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwodGhyZWFkX2xvY2Fs
X2NhY2hlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHZlcmJvc2UpCkBAIC0yMTEsNyAr
MjI1LDcgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfc2xvdyhwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKICAgICAgICBoYXBwZW4gYmVmb3JlIGFu
eSBUTENzIGFyZSBhbGxvY2F0ZWQuICovCiAgICAgcGFzX2hlYXBfY29uZmlnX2FjdGl2YXRlKGNv
bmZpZyk7CiAgICAgCi0gICAgUEFTX0FTU0VSVCghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlf
Z2V0KCkpOworICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpKSk7CiAgICAgCiAgICAgdGhyZWFkX2xvY2Fs
X2NhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jcmVhdGUoKTsKICAgICAKQEAgLTU2Niw3
ICs1ODAsNyBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9u
X2xvZyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYQogICAgICAgICBwYXNfc2NhdmVuZ2Vy
X25vdGlmeV9lbGlnaWJpbGl0eV9pZl9uZWVkZWQoKTsKIH0KIAotI2lmZGVmIFBBU19USFJFQURf
TE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVAorI2lmIFBBU19PUyhEQVJXSU4pCiAK
IHN0YXRpYyB2b2lkIHN1c3BlbmQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpCiB7CkBA
IC03NDAsMTQgKzc1NCw3IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBh
c19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uIGFsbG9jYXRvcl9hY3RpCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIAotI2lmZGVmIFBBU19USFJFQURf
TE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVAotICAgICAgICAgICAgICAgIGlmICgh
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0KCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgLyogV2UncmUgb24gYSBwbGF0Zm9ybSB0aGF0IGNhbid0IGd1YXJh
bnRlZSB0aGF0IHRocmVhZCBsb2NhbCBjYWNoZXMgYXJlIGRlc3RydWN0ZWQuCi0gICAgICAgICAg
ICAgICAgICAgICAgIFRoZXJlZm9yZSwgd2UgbWlnaHQgaGF2ZSBhIFRMQyB0aGF0IGhhcyBhIGRh
bmdsaW5nIHRocmVhZCBwb2ludGVyLiBTbywgd2UgZG9uJ3QKLSAgICAgICAgICAgICAgICAgICAg
ICAgYXR0ZW1wdCB0byBkbyB0aGUgc3VzcGVuZCB0aGluZy4gKi8KLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotCisjaWYgUEFTX09TKERBUldJTikKICAg
ICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygi
TmVlZCB0byBzdXNwZW5kIGZvciBhbGxvY2F0b3IgJXBcbiIsIHNjYXZlbmdlcl9kYXRhKTsKICAg
ICAgICAgICAgICAgICAKQEAgLTc2OSw3ICs3NzYsNyBAQCBib29sIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfZm9yX2FsbChwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbiBhbGxvY2F0b3JfYWN0
aQogI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSNpZmRlZiBQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0NBTl9ERVRFQ1RfVEhSRUFEX0VYSVQKKyNpZiBQQVNfT1MoREFSV0lOKQog
ICAgICAgICAgICAgaWYgKGRpZF9zdXNwZW5kKQogICAgICAgICAgICAgICAgIHJlc3VtZShjYWNo
ZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaAppbmRleCAyNTc2NTdhMzk4MDIzM2NmMDcxMzNm
NDE4NDc1MzEzNGRmOGZlMjEyLi5mMWM3ZjI0ZWM1Y2E4MGExNzc3MjM3NWVhZGM4MzEwMzg5Yzg5
YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oCkBAIC00NCw2ICs0NCw4IEBACiAjZGVmaW5lIFBBU19I
QVZFX1BUSFJFQURfUFJJVkFURSAwCiAjZW5kaWYKIAorI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FM
X0NBQ0hFX0RFU1RST1lFRCAxCisKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19t
YWdhemluZTsKQEAgLTg5LDYgKzkxLDExIEBAIHN0YXRpYyBpbmxpbmUgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KHZvaWQpCiAgICAgICAgIFBB
U19USFJFQURfTE9DQUxfS0VZLCAmcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mYXN0X3Rscyk7CiB9
CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwocGFz
X3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpCit7CisgICAgcmV0dXJuICgodWludHB0cl90KWNh
Y2hlKSA8PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRDsKK30KKwogI2lmIFBBU19I
QVZFX1BUSFJFQURfUFJJVkFURQogI2lmIChQQVNfUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkgXAogICAgIHx8IChQQVNfUExBVEZPUk0o
TUFDQ0FUQUxZU1QpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAw
MCkgXApAQCAtOTgsMzggKzEwNSwyNyBAQCBzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCh2b2lkKQogI2RlZmluZSBQQVNf
VEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRFQ1RfVEhSRUFEX0VYSVQgMQogI2VuZGlmCiAKLXN0
YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9f
ZGVzdHJ1Y3Qodm9pZCkKLXsKLSNpZmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRF
Q1RfVEhSRUFEX0VYSVQKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNl
OwotI2VuZGlmCi19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2Nhbl9zZXQodm9pZCkKIHsKICNpZmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRF
Q1RfVEhSRUFEX0VYSVQKICAgICByZXR1cm4gIXB0aHJlYWRfc2VsZl9pc19leGl0aW5nX25wKCk7
CiAjZWxzZQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiAodWludHB0cl90KXBhc190aHJl
YWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpICE9IFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJP
WUVEOwogI2VuZGlmCiB9CisKICNlbHNlIC8qIFBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAtPiBz
byAhUEFTX0hBVkVfUFRIUkVBRF9QUklWQVRFICovCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0KHZvaWQpCi17Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9jYW5fc2V0KHZvaWQpCiB7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuICh1aW50
cHRyX3QpcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkgIT0gUEFTX1RIUkVBRF9MT0NB
TF9DQUNIRV9ERVNUUk9ZRUQ7CiB9CisKICNlbmRpZiAvKiBQQVNfSEFWRV9QVEhSRUFEX1BSSVZB
VEUgLT4gc28gZW5kIG9mICFQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUgKi8KIAogc3RhdGljIGlu
bGluZSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlKQogewotICAgIFBBU19BU1NFUlQocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9jYW5fc2V0KCkgfHwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0
KCkpOworICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KCkgfHwg
IXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3Ry
eV9nZXQoKSkpOwogICAgIFBBU19GQVNUX1RMU19TRVQoUEFTX1RIUkVBRF9MT0NBTF9LRVksICZw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zhc3RfdGxzLCB0aHJlYWRfbG9jYWxfY2FjaGUpOwogfQog
CkBAIC0xNDgsNyArMTQ0LDcgQEAgc3RhdGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9hbHJlYWR5X2luaXRpYWwKIAogICAgIHJlc3Vs
dCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwogCi0gICAgUEFTX0FTU0VSVChy
ZXN1bHQpOworICAgIFBBU19BU1NFUlQoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChy
ZXN1bHQpKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xNjEsNyArMTU3LDcgQEAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfd2l0aF9oZWFwX2xvY2tfaG9sZF9tb2RlKHBhc19oZWFw
X2NvbmZpZyogY29uZmlnLAogCiAgICAgcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90
cnlfZ2V0KCk7CiAgICAgCi0gICAgaWYgKFBBU19MSUtFTFkocmVzdWx0KSkKKyAgICBpZiAoUEFT
X0xJS0VMWSghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKHJlc3VsdCkpKQogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIAogICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2dldF9zbG93KGNvbmZpZywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CkBAIC0zMDYsNyArMzAyLDcg
QEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRf
Y2FjaGVfZm9yX3Bvc3NpYmx5X3VuaW5pdGkKIAogICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV90cnlfZ2V0KCk7CiAKLSAgICBpZiAoUEFTX1VOTElLRUxZKCFjYWNoZSkpIHsKKyAg
ICBpZiAoUEFTX1VOTElLRUxZKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkp
KSB7CiAgICAgICAgIHJldHVybgogICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bvc3NpYmx5X3VuaW5pdGlh
bGl6ZWRfaW5kZXhfc2xvdygKICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXgsIGhlYXBf
Y29uZmlnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190cnlfYWxsb2NhdGUuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190
cnlfYWxsb2NhdGUuaAppbmRleCA0NzdmYmJhNjlkNTQzMjZmMDU2MWRmMDA1NjI0NTAwN2FkZTdh
YzU3Li5mMWRhODQyMDlkMDE5ODQ4NmRlYjFhYTBhZTRjNTljYmZhYWFiZDQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmgKKysr
IGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oCkBA
IC04Myw3ICs4Myw3IEBAIHBhc190cnlfYWxsb2NhdGVfaW1wbF9pbmxpbmVfb25seSgKIAogICAg
IGFsbG9jYXRvcl9pbmRleCA9IGhlYXBfcmVmLT5hbGxvY2F0b3JfaW5kZXg7CiAgICAgY2FjaGUg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKLSAgICBpZiAoUEFTX1VOTElLRUxZ
KCFjYWNoZSkpCisgICAgaWYgKFBBU19VTkxJS0VMWShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lz
X251bGwoY2FjaGUpKSkKICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVh
dGVfZmFpbHVyZSgpOwogCiAgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90
cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcl9vcl91bnNlbGVjdGVkX2Zvcl91bmluaXRpYWxpemVkX2lu
ZGV4KApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ry
eV9hbGxvY2F0ZV9hcnJheS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RyeV9hbGxvY2F0ZV9hcnJheS5oCmluZGV4IDYyODk1OWNlZWM4ZTk5NTAzNzQ5ZGI1NGZiNDkw
M2YzY2Q5NGFlMzAuLmUyMGMzOThjODI1ZTNiOTMzODY4MDY1ZWQwYTNjMzg4ZmZjZjE1ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2Nh
dGVfYXJyYXkuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5
X2FsbG9jYXRlX2FycmF5LmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2Fy
cmF5X2ltcGxfaW5saW5lX29ubHlfd2l0aF9oZWFwKAogICAgICAgICAmaGVhcC0+c2VncmVnYXRl
ZF9oZWFwLCBhbGlnbmVkX3NpemUsIGNvbmZpZyk7CiAKICAgICBjYWNoZSA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfdHJ5X2dldCgpOwotICAgIGlmIChQQVNfVU5MSUtFTFkoIWNhY2hlKSkKKyAg
ICBpZiAoUEFTX1VOTElLRUxZKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkp
KQogICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7
CiAgICAgCiAgICAgYWxsb2NhdG9yID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmggYi9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oCmluZGV4IGYz
NTNlYjVjOTQxNGIxODFhYWRiM2FkNTA2Njk5OTk5ZjE3N2NkZjAuLjkwYTgzNzkzMTA3MzY2MzZj
NjZmMTYzNTUyZTRlM2YxNGRlZWE2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmgKKysrIGIvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaApAQCAt
MTE2LDcgKzExNiw3IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfY2FzdWFsX2Nh
c2UoCiAgICAgfQogCiAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQo
KTsKLSAgICBpZiAoUEFTX0xJS0VMWShjYWNoZSkpIHsKKyAgICBpZiAoUEFTX0xJS0VMWSghcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKGNhY2hlKSkpIHsKICAgICAgICAgdW5zaWduZWQg
YWxsb2NhdG9yX2luZGV4OwogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxv
Y2F0b3JfcmVzdWx0OwogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CkBA
IC0yMTAsNyArMjEwLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfaW1wbF9pbmxpbmVf
b25seSgKICAgICB9CiAKICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dl
dCgpOwotICAgIGlmIChQQVNfVU5MSUtFTFkoIWNhY2hlKSkKKyAgICBpZiAoUEFTX1VOTElLRUxZ
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkpKQogICAgICAgICByZXR1cm4g
cGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAgICAgCiAgICAgZGVzaWdu
YXRlZF9pbmRleCA9IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5k
ZXgoCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5
X2FsbG9jYXRlX3ByaW1pdGl2ZS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaAppbmRleCAwYmNkYzFmODM3MjgwN2Q5ZTA4YjY1
OTdmYzJkYTViNDM0ZDI0ZjQwLi40ZDBiZTJhOWYxY2RjMTgyMmUxNzYxMjVmNmNlYzQ1YTI1MmQ2
YmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5
X2FsbG9jYXRlX3ByaW1pdGl2ZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmgKQEAgLTE2Nyw3ICsxNjcsNyBAQCBwYXNf
dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsX2lubGluZV9vbmx5KAogICAgICAgICBwcmludGYo
ImFsbG9jYXRvcl9pbmRleCA9ICV1XG4iLCBhbGxvY2F0b3JfaW5kZXgpOwogCiAgICAgY2FjaGUg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKLSAgICBpZiAoUEFTX1VOTElLRUxZ
KCFjYWNoZSkpCisgICAgaWYgKFBBU19VTkxJS0VMWShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lz
X251bGwoY2FjaGUpKSkKICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVh
dGVfZmFpbHVyZSgpOwogICAgIAogICAgIGFsbG9jYXRvciA9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaCBiL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCmluZGV4IDc2MWEyNThmMTEyZTk2YmQxMGVlY2My
MGFkMTliN2Y5MDcxMTM0MzcuLjAzNTA5MWNkNGE4ZDM1OWMzMzQxNzBiMzNkOTE2MDczZjEyNzU3
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGls
cy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCkBA
IC0xMDgsMTQgKzEwOCwxMyBAQCBQQVNfQVBJIFBBU19OT19SRVRVUk4gUEFTX05FVkVSX0lOTElO
RSB2b2lkIHBhc19yZWFsbG9jYXRpb25fZGlkX2ZhaWwoY29uc3QgY2hhcgogCiBQQVNfQVBJIFBB
U19OT19SRVRVUk4gdm9pZCBwYXNfYXNzZXJ0aW9uX2ZhaWxlZChjb25zdCBjaGFyKiBmaWxlbmFt
ZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBleHByZXNzaW9u
KTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV21pc3Npbmctbm9yZXR1cm4iCi1zdGF0aWMgaW5saW5lIHZvaWQgcGFz
X2Fzc2VydGlvbl9mYWlsZWRfbm9yZXR1cm5fc2lsZW5jZXIoCitQQVNfSUdOT1JFX1dBUk5JTkdT
X0JFR0lOKCJtaXNzaW5nLW5vcmV0dXJuIikKK3N0YXRpYyBQQVNfTk9fUkVUVVJOIGlubGluZSB2
b2lkIHBhc19hc3NlcnRpb25fZmFpbGVkX25vcmV0dXJuX3NpbGVuY2VyKAogICAgIGNvbnN0IGNo
YXIqIGZpbGVuYW1lLCBpbnQgbGluZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGNvbnN0IGNoYXIq
IGV4cHJlc3Npb24pCiB7CiAgICAgcGFzX2Fzc2VydGlvbl9mYWlsZWQoZmlsZW5hbWUsIGxpbmUs
IGZ1bmN0aW9uLCBleHByZXNzaW9uKTsKIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
K1BBU19JR05PUkVfV0FSTklOR1NfRU5ECiAKICNkZWZpbmUgUEFTX0xJS0VMWSh4KSBfX1BBU19M
SUtFTFkoeCkKICNkZWZpbmUgUEFTX1VOTElLRUxZKHgpIF9fUEFTX1VOTElLRUxZKHgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5n
VGVzdHMuY3BwIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hh
cmluZ1Rlc3RzLmNwcAppbmRleCA3NDMyMWQ5NDkxMzVkMmYxOWFkMDM3MmQ5NjQyZTg1MDljZTBj
NTlhLi5lOTJmOGM4YmUwZTcxYmZjNTUxZTI3Y2RiZmJjOWEyZTNmZmNjMjVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMu
Y3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJp
bmdUZXN0cy5jcHAKQEAgLTQ1MTksMjIgKzQ1MTksMTggQEAgdm9pZCBhZGRBbGxUZXN0cygpCiAg
ICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeSgxMjgs
IDEpKTsKICAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVt
b3J5KDEyOCwgMTAwMDApKTsKICAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFs
bHlSZXR1cm5zTWVtb3J5KDgsIDEwMDAwKSk7Ci0gICAgICAgIGlmIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9fZGVzdHJ1Y3QoKSkgewotICAgICAgICAgICAgQUREX1RF
U1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxT
aHJpbmsoMTI4LCAxKSk7Ci0gICAgICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1
YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluaygxMjgsIDEwMDAwKSk7Ci0g
ICAgICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlF
dmVuV2l0aG91dE1hbnVhbFNocmluayg4LCAxMDAwMCkpOwotICAgICAgICB9CisgICAgICAgIEFE
RF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFu
dWFsU2hyaW5rKDEyOCwgMSkpOworICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1
YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluaygxMjgsIDEwMDAwKSk7Cisg
ICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5X
aXRob3V0TWFudWFsU2hyaW5rKDgsIDEwMDAwKSk7CiAgICAgICAgIEFERF9URVNUKHRlc3RTY2F2
ZW5nZXJTaHV0c0Rvd25FdmVudHVhbGx5KDY0LCAxMDAwMCwgMSwgMSkpOwogICAgIH0KICAgICAK
ICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnkoMTI4LCAx
KSk7CiAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDEy
OCwgMTAwMDApKTsKICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNN
ZW1vcnkoOCwgMTAwMDApKTsKLSAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFy
YW50ZWVkX3RvX2Rlc3RydWN0KCkpIHsKLSAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2
ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxKSk7Ci0g
ICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5X
aXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMTAwMDApKTsKLSAgICAgICAgQUREX1RFU1QodGVzdFNj
YXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoOCwg
MTAwMDApKTsKLSAgICB9CisgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1
cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxKSk7CisgICAgQUREX1RFU1Qo
dGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJp
bmsoMTI4LCAxMDAwMCkpOworICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0
dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDgsIDEwMDAwKSk7CiAgICAgQUREX1RF
U1QodGVzdFNjYXZlbmdlclNodXRzRG93bkV2ZW50dWFsbHkoNjQsIDEwMDAwLCAxLCAxKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFy
dGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0
L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAKaW5kZXggMmNmMDIxYjJhMDAzZWRh
ZDdjM2NjMmI0MmNiZGIzODA2MGU0NDZmYS4uODk2MGE0YTM5YzAxNDE3MDFhZDY0YjZkNzcyYWQ0
NzFlMzRjOTFiYiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lz
b0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAKKysrIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAKQEAgLTEwODIs
MTAgKzEwODIsOCBAQCB2b2lkIGFkZElzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cygpCiAg
ICAgU3VzcGVuZFNjYXZlbmdlclNjb3BlIHN1c3BlbmRTY2F2ZW5nZXI7CiAgICAgCiAjaWYgUEFT
X0VOQUJMRV9JU08gJiYgUEFTX0VOQUJMRV9JU09fVEVTVAotICAgIGlmIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9fZGVzdHJ1Y3QoKSkgewotICAgICAgICBSdW5TY2F2
ZW5nZXJGdWxseSBydW5TY2F2ZW5nZXJGdWxseTsKLSAgICAgICAgYWRkU2NhdmVuZ2VyRGVwZW5k
ZW50VGVzdHMoKTsKLSAgICB9CisgICAgUnVuU2NhdmVuZ2VyRnVsbHkgcnVuU2NhdmVuZ2VyRnVs
bHk7CisgICAgYWRkU2NhdmVuZ2VyRGVwZW5kZW50VGVzdHMoKTsKICAgICB7CiAgICAgICAgIFJ1
blNjYXZlbmdlck9uTm9uUmVtb3RlQ2FjaGVzIHJ1blNjYXZlbmdlck9uTm9uUmVtb3RlQ2FjaGVz
OwogICAgICAgICBhZGRTY2F2ZW5nZXJEZXBlbmRlbnRUZXN0cygpOwo=
</data>
<flag name="commit-queue"
          id="471258"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445943</attachid>
            <date>2021-12-03 19:53:47 -0800</date>
            <delta_ts>2021-12-03 20:52:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233851-20211204035346.patch</filename>
            <type>text/plain</type>
            <size>23725</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggZTg2Yjg0MGI2NGVhZGFk
ODUxY2IwYTUzNjUxNzEyN2UxMzg3YzZlMy4uMjIzMWNjZTU0ZDk0ZmUzMTMxMTZlNDgwZjEwNzgz
NTkxZDhiZWI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTEyLTAzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gU2V0IHB0
aHJlYWRfc2V0c3BlY2lmaWMgd2l0aCBtYXJrZXIgaW4gVExTIGRlc3RydWN0b3IgdG8gZGV0ZWN0
IFRMUyBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRMUyBoYXMgbGlmZXRpbWUgcHJvYmxlbSB0aGF0LAorCisgICAgICAgIDEuIFRM
UyBpcyBkZXN0cm95ZWQKKyAgICAgICAgMi4gVGhlIG90aGVyIFRMUyBpcyBkZXN0cm95ZWQsIGFu
ZCB0aGUgZGVzdHJ1Y3RvciBpcyBjYWxsZWQKKyAgICAgICAgMy4gVGhlIGRlc3RydWN0b3IgdG91
Y2hlcyAoMSkncyBUTFMsIHRoZW4gcmV2aXZlIFRMUyBvZiAoMSkgKGUuZy4gbGlicGFzJ3MgdGhy
ZWFkIGxvY2FsIGNhY2hlKS4KKworICAgICAgICBUbyBoYW5kbGUgdGhlc2UgY2FzZXMsIHB0aHJl
YWQgbGlicmFyeSAobGliYykgcmVwZWF0ZWRseSBjYWxscyBkZXN0cnVjdG9yIFBBU19USFJFQURf
TE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzCisgICAgICAgIHNvIHRoYXQgd2UgY2xlYW4gdXAg
cmV2aXZlZCBUTFMgYWdhaW4uCisKKyAgICAgICAgQnkgdXNpbmcgdGhpcyBtZWNoYW5pc20sIHdl
IGNhbiBlbXVsYXRlIHB0aHJlYWRfc2VsZl9pc19leGl0aW5nX25wIHNvIHRoYXQgd2UgY2FuIGF2
b2lkIHJldml2aW5nIFRMUy4KKworICAgICAgICAxLiBXaGVuIGRlc3Ryb3lpbmcgVExTLCB3ZSBz
ZXQgYSBtYXJrZXIgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIGluIHRoaXMgY2Fz
ZSkgdG8gVExTLgorICAgICAgICAyLiBEdXJpbmcgdGhlIG90aGVyIGRlc3RydWN0b3IgY2FsbHMs
IHdlIGNhbiBkZXRlY3QgdGhhdCBUTFMgaXMgZGVzdHJveWVkIGJ5IGNoZWNraW5nIHB0aHJlYWRf
Z2V0c3BlY2lmaWMoLi4uKSA9PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRC4KKyAg
ICAgICAgMy4gV2UgcmVwZWF0ZWRseSBjYWxscyB0aGUgZGVzdHJ1Y3RvciBvZiBUTFMsIGJ1dCBl
dmVyeSB0aW1lLCB3ZSBzZXQgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQuCisgICAg
ICAgICAgIFNvIGFmdGVyIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzLCBp
dCBpcyBsZWZ0LCBhbmQgd2UgYWNoaWV2ZSB0aGUgZ29hbCAoMSkgb2ZmZXJpbmcgdGhlIHdheSB0
bworICAgICAgICAgICBkZXRlY3QgdGhlIGRlc3Ryb3llZCBUTFMgYW5kICgyKSBhdm9pZGluZyBy
ZXZpdmluZyBvZiBUTFMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGl0IHdoZW4g
cHRocmVhZF9zZWxmX2lzX2V4aXRpbmdfbnAgZG9lcyBub3QgZXhpc3QuCisKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5oOgorICAgICAgICAocGFzX2RlYWxsb2Nh
dGVfa25vd25fc2VncmVnYXRlZCk6CisgICAgICAgIChwYXNfdHJ5X2RlYWxsb2NhdGUpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oOgor
ICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jb25maWcpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYzoKKyAgICAgICAgKHBh
c19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3MpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193aXRoX21vZGUpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxv
Y2F0b3IpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGUuYzoKKyAgICAgICAgKGRlc3RydWN0b3IpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9kZXN0cm95KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3Nsb3cp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmg6CisgICAgICAgIChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9jYW5fc2V0KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfYWxyZWFkeV9pbml0aWFsaXpl
ZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF93aXRoX2hlYXBfbG9ja19o
b2xkX21vZGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bvc3NpYmx5X3VuaW5pdGlhbGl6ZWRfaW5kZXgp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3Ry
dWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9j
YXRlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ltcGxfaW5saW5lX29ubHkpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaDoKKyAgICAg
ICAgKHBhc190cnlfYWxsb2NhdGVfYXJyYXlfaW1wbF9pbmxpbmVfb25seV93aXRoX2hlYXApOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmg6
CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX2Nhc3VhbF9jYXNlKToK
KyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5lX29ubHkpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmg6
CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsX2lubGluZV9vbmx5KToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2NhdGUuaDoKKyAgICAg
ICAgKHBhc190cnlfcmVhbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3V0aWxzLmg6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rl
c3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6YWRkQWxsVGVzdHMpOgorICAgICAgICAqIGxpYnBhcy9z
cmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwOgorICAgICAgICAoYWRk
SXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzKToKKwogMjAyMS0xMi0wMyAgRmlsaXAgUGl6
bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFtsaWJwYXNdIEJpdGZpdCBhbGxvY2F0
b3IgaGFzIGEgd3JvbmcgYXNzZXJ0aW9uIHdoZW4gYSBwYWdlJ3MgbWF4X2ZyZWUgaXMgZW5vdWdo
IGZvciB0aGUgc2l6ZSBvZiBhbiBhbGxvY2F0aW9uLCBub3QgZW5vdWdoIGZvciB0aGF0IGFsbG9j
YXRpb24ncyBzaXplIGNsYXNzLCBhbmQgdGhlIG9iamVjdCBvZiB0aGF0IHNpemUgaXMgbm90IGFs
aWduZWQgdG8gdGhlIGN1cnJlbnRseSByZXF1ZXN0ZWQgYWxpZ25tZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5oIGIvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdGUuaAppbmRleCBjMWJjYTdm
NjM5NzQ4YTg4YjMyYzczNTg2NDc0NTk0ZGIzMzlkMTg4Li5jYWE2NTExMTExNjQ5NjRlZjZjMzlk
OTVlMjNjMGJmNDhhNGJlYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19kZWFsbG9jYXRlLmgKQEAgLTU2LDcgKzU2LDcgQEAgcGFzX2RlYWxsb2NhdGVf
a25vd25fc2VncmVnYXRlZCh2b2lkKiBwdHIsCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSog
dGhyZWFkX2xvY2FsX2NhY2hlOwogCiAgICAgdGhyZWFkX2xvY2FsX2NhY2hlID0gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Ci0gICAgaWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUpIHsK
KyAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKHRocmVhZF9sb2NhbF9jYWNo
ZSkpIHsKICAgICAgICAgcGFzX3RyeV9kZWFsbG9jYXRlX3Nsb3dfbm9fY2FjaGUocHRyLCBwYWdl
X2NvbmZpZy5iYXNlLmhlYXBfY29uZmlnX3B0ciwgcGFzX2RlYWxsb2NhdGVfbW9kZSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0xOTMsNyArMTkzLDcgQEAgc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIGJvb2wgcGFzX3RyeV9kZWFsbG9jYXRlKHZvaWQqIHB0ciwKICAgICAgICAgcGFzX2xv
ZygidHJ5X2RlYWxsb2NhdGUgZm9yICVwXG4iLCBwdHIpOwogICAgIAogICAgIHRocmVhZF9sb2Nh
bF9jYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwotICAgIGlmIChQQVNf
VU5MSUtFTFkoIXRocmVhZF9sb2NhbF9jYWNoZSkpIHsKKyAgICBpZiAoUEFTX1VOTElLRUxZKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbCh0aHJlYWRfbG9jYWxfY2FjaGUpKSkgewogICAg
ICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIkdvaW5nIHNsb3cgYmVjYXVz
ZSBubyBUTEMuXG4iKTsKICAgICAgICAgcmV0dXJuIHBhc190cnlfZGVhbGxvY2F0ZV9zbG93X25v
X2NhY2hlKHB0ciwgY29uZmlnLmNvbmZpZ19wdHIsIGRlYWxsb2NhdGlvbl9tb2RlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0
b3JfaW5saW5lcy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2Fs
X2FsbG9jYXRvcl9pbmxpbmVzLmgKaW5kZXggMDUwMWI1MGM2MTk1YzQ3YWRhYjkwM2U4NDBiZDM5
ZTFlNzA3Y2VjMC4uMDIxNDk4ZjM3MDQ2MTNiNGEwZmU5YzNmOGU1NGViZDVmMjU4OWMyMyAxMDA2
NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9j
YXRvcl9pbmxpbmVzLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKQEAgLTk1MSw3ICs5NTEsNyBAQCBwYXNfbG9jYWxf
YWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvbmZpZygKICAgICBpZiAoIXBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKSB7CiAgICAgICAgIGNhY2hl
ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7CiAgICAgICAgIAotICAgICAgICBp
ZiAoY2FjaGUpIHsKKyAgICAgICAgaWYgKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwo
Y2FjaGUpKSB7CiAgICAgICAgICAgICBjYWNoZV9ub2RlID0gY2FjaGUtPm5vZGU7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIC8qIERvaW5nIHRoaXMgaGVyZSBoYXMgc29tZSBzcGVjaWFsIHBy
b3BlcnRpZXMuIEZvciBleGFtcGxlLCBpdCBkb2Vzbid0IHByZXZlbnQgZmFzdCByZXVzZQpAQCAt
MTAyNCw3ICsxMDI0LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9j
b25maWcoCiAgICAgCiAgICAgZGlkX2dldF92aWV3ID0gZmFsc2U7CiAgICAgCi0gICAgaWYgKHBh
Z2VfY29uZmlnLmVuYWJsZV92aWV3X2NhY2hlICYmIGNhY2hlKSB7CisgICAgaWYgKHBhZ2VfY29u
ZmlnLmVuYWJsZV92aWV3X2NhY2hlICYmICFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwo
Y2FjaGUpKSB7CiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHZpZXdfY2FjaGVf
cmVzdWx0OwogICAgICAgICAKICAgICAgICAgUEFTX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5jIGIvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5jCmluZGV4IDJhOGFiNzNiZTg3MzFmMDMy
NTg4NjhhOGQ4Yjc4YTQ3ZDgwZjA5MmYuLmVkYTQxOTIzOTNiZWFjZDI3ODY0OGRjYWE2ZWIzYWRl
ODEwMjZiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zY2F2ZW5nZXIuYworKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2NhdmVuZ2VyLmMKQEAgLTQ2MSw3ICs0NjEsNyBAQCB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJf
YWxsX2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3Modm9pZCkKICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiBjYWNoZTsKICAgICAKICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
dHJ5X2dldCgpOwotICAgIGlmIChjYWNoZSkKKyAgICBpZiAoIXBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfaXNfbnVsbChjYWNoZSkpCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5r
KGNhY2hlLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CiAKICAgICBwYXNfc2NhdmVuZ2VyX2NsZWFy
X2FsbF9ub25fdGxjX2NhY2hlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmggYi9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAppbmRleCBj
NzY1YjA1YWRmNDcxNDIzZWRmYjBiOGQwMzZhYWZmZTZhZGFkZGJlLi43MGQ5YzlmZmNjZmI4Njg4
NGExNDlkYTMzMjUyNDNkMDZjMTBiYWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAorKysgYi9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaApA
QCAtMjc4LDYgKzI3OCw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9tb2RlKAogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9IH0KICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAg
cmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2soCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggYi9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9pbmxpbmVzLmgKaW5kZXggYjA1NzkxNmQ5ZGZmMTA0ZmViNDViYjAyZDcxZTlkNjI1N2E3
MWUxMS4uZjc2NThmOWUxMjgyZDNiYWMwMmFmYzliODRlOGU1YmRhZDBmMDA4OSAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfaW5saW5lcy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaApAQCAtNTgsNyArNTgsNyBA
QCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yKAogICAgIHVu
c2lnbmVkKiBjYWNoZWRfaW5kZXgpCiB7CiAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkKLSAgICAgICAgJiYgKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpIHx8IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3Nl
dCgpKSkgeworICAgICAgICAmJiAoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSkgfHwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9j
YW5fc2V0KCkpKSB7CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAogICAgICAgICAgICAgZGlyZWN0b3J5LCBzaXplLCBz
aXplX2xvb2t1cF9tb2RlLCBjb25maWcsIGNhY2hlZF9pbmRleCk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZS5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9j
YWNoZS5jCmluZGV4IGY3ODEwMzAzN2JmZTAzZTY5MjU1NDM5NzhhZWFkOGZlM2YwZmE3ZGUuLmQw
YWU1YTJiM2UzNTIxZDcxYjFlM2IwYjYzZDNmYTkxYjEwODk0YzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYworKysg
Yi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hl
LmMKQEAgLTkxLDExICs5MSwyNSBAQCBzdGF0aWMgdm9pZCBkZXN0cm95KHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX2xvY2tfaG9sZF9tbwogCiBzdGF0aWMg
dm9pZCBkZXN0cnVjdG9yKHZvaWQqIGFyZykKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CisKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxf
Y2FjaGU7CiAgICAgCiAgICAgdGhyZWFkX2xvY2FsX2NhY2hlID0gKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqKWFyZzsKIAotICAgIGRlc3Ryb3kodGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNfbG9ja19p
c19ub3RfaGVsZCk7CisjaWZuZGVmIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9U
SFJFQURfRVhJVAorICAgIC8qIElmIHB0aHJlYWRfc2VsZl9pc19leGl0aW5nX25wIGRvZXMgbm90
IGV4aXN0LCB3ZSBzZXQgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQgdG8gdGhlIFRM
UyBzbyB0aGF0CisgICAgICAgc3Vic2VxdWVudCBjYWxscyBvZiBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3RyeV9nZXQoKSBjYW4gZGV0ZWN0IHdoZXRoZXIgVExTIGlzIGRlc3Ryb3llZC4gU2luY2Ug
aXQgaXMgbm90CisgICAgICAgTlVMTCwgdGhpcyBkZXN0cnVjdG9yIHdpbGwgYmUgY2FsbGVkIG9u
Y2UgYWdhaW4gbGF0ZXIuIFdlIHJlcGVhdCBpbnZva2luZyB0aGlzIGRlc3RydWN0b3IgUFRIUkVB
RF9ERVNUUlVDVE9SX0lURVJBVElPTlMgdGltZXMuICovCisgICAgUEFTX0ZBU1RfVExTX1NFVChQ
QVNfVEhSRUFEX0xPQ0FMX0tFWSwgJnBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmFzdF90bHMsIChw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlKilQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRCk7
CisjZW5kaWYKKworICAgIGlmICghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKHRocmVh
ZF9sb2NhbF9jYWNoZSkpCisgICAgICAgIGRlc3Ryb3kodGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNf
bG9ja19pc19ub3RfaGVsZCk7CisgICAgZWxzZSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgcGFzX2xvZygiWyVkXSBSZXBlYXRlZCBkZXN0cnVjdG9yIGNhbGwgZm9yIFRMUyAl
cFxuIiwgZ2V0cGlkKCksIHRocmVhZF9sb2NhbF9jYWNoZSk7CisgICAgfQogfQogCiBzdGF0aWMg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogYWxsb2NhdGVfY2FjaGUodW5zaWduZWQgYWxsb2NhdG9y
X2luZGV4X2NhcGFjaXR5KQpAQCAtMTg3LDcgKzIwMSw3IEBAIHZvaWQgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9kZXN0cm95KHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQog
CiAgICAgdGhyZWFkX2xvY2FsX2NhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0
KCk7CiAKLSAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNoZSkKKyAgICBpZiAocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9pc19udWxsKHRocmVhZF9sb2NhbF9jYWNoZSkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmICh2ZXJib3NlKQpAQCAtMjExLDcgKzIyNSw3IEBAIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3Nsb3cocGFzX2hlYXBfY29uZmlnKiBj
b25maWcsCiAgICAgICAgaGFwcGVuIGJlZm9yZSBhbnkgVExDcyBhcmUgYWxsb2NhdGVkLiAqLwog
ICAgIHBhc19oZWFwX2NvbmZpZ19hY3RpdmF0ZShjb25maWcpOwogICAgIAotICAgIFBBU19BU1NF
UlQoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpKTsKKyAgICBQQVNfQVNTRVJUKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9n
ZXQoKSkpOwogICAgIAogICAgIHRocmVhZF9sb2NhbF9jYWNoZSA9IHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfY3JlYXRlKCk7CiAgICAgCkBAIC01NjYsNyArNTgwLDcgQEAgdm9pZCBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZSogdGhyZWEKICAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlfZWxpZ2liaWxpdHlfaWZfbmVl
ZGVkKCk7CiB9CiAKLSNpZmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRFQ1RfVEhS
RUFEX0VYSVQKKyNpZiBQQVNfT1MoREFSV0lOKQogCiBzdGF0aWMgdm9pZCBzdXNwZW5kKHBhc190
aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKQogewpAQCAtNzQwLDE0ICs3NTQsNyBAQCBib29sIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlv
biBhbGxvY2F0b3JfYWN0aQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgICAgICB9CiAKLSNpZmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRFQ1RfVEhS
RUFEX0VYSVQKLSAgICAgICAgICAgICAgICBpZiAoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNf
Z3VhcmFudGVlZF90b19kZXN0cnVjdCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIFdlJ3Jl
IG9uIGEgcGxhdGZvcm0gdGhhdCBjYW4ndCBndWFyYW50ZWUgdGhhdCB0aHJlYWQgbG9jYWwgY2Fj
aGVzIGFyZSBkZXN0cnVjdGVkLgotICAgICAgICAgICAgICAgICAgICAgICBUaGVyZWZvcmUsIHdl
IG1pZ2h0IGhhdmUgYSBUTEMgdGhhdCBoYXMgYSBkYW5nbGluZyB0aHJlYWQgcG9pbnRlci4gU28s
IHdlIGRvbid0Ci0gICAgICAgICAgICAgICAgICAgICAgIGF0dGVtcHQgdG8gZG8gdGhlIHN1c3Bl
bmQgdGhpbmcuICovCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
ICAgIH0KLQorI2lmIFBBU19PUyhEQVJXSU4pCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2Up
CiAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIk5lZWQgdG8gc3VzcGVuZCBmb3IgYWxsb2Nh
dG9yICVwXG4iLCBzY2F2ZW5nZXJfZGF0YSk7CiAgICAgICAgICAgICAgICAgCkBAIC03NjksNyAr
Nzc2LDcgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRv
cl9zY2F2ZW5nZV9hY3Rpb24gYWxsb2NhdG9yX2FjdGkKICNlbmRpZgogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCi0jaWZkZWYgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RI
UkVBRF9FWElUCisjaWYgUEFTX09TKERBUldJTikKICAgICAgICAgICAgIGlmIChkaWRfc3VzcGVu
ZCkKICAgICAgICAgICAgICAgICByZXN1bWUoY2FjaGUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgg
Yi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hl
LmgKaW5kZXggMjU3NjU3YTM5ODAyMzNjZjA3MTMzZjQxODQ3NTMxMzRkZjhmZTIxMi4uZjFjN2Yy
NGVjNWNhODBhMTc3NzIzNzVlYWRjODMxMDM4OWM4OWEwNiAxMDA2NDQKLS0tIGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaApA
QCAtNDQsNiArNDQsOCBAQAogI2RlZmluZSBQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUgMAogI2Vu
ZGlmCiAKKyNkZWZpbmUgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQgMQorCiBQQVNf
QkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfbWFnYXppbmU7CkBAIC04OSw2ICs5MSwxMSBA
QCBzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfdHJ5X2dldCh2b2lkKQogICAgICAgICBQQVNfVEhSRUFEX0xPQ0FMX0tFWSwgJnBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZmFzdF90bHMpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hl
KQoreworICAgIHJldHVybiAoKHVpbnRwdHJfdCljYWNoZSkgPD0gUEFTX1RIUkVBRF9MT0NBTF9D
QUNIRV9ERVNUUk9ZRUQ7Cit9CisKICNpZiBQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUKICNpZiAo
UEFTX1BMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MTAwMDApIFwKICAgICB8fCAoUEFTX1BMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApIFwKQEAgLTk4LDM4ICsxMDUsMjcgQEAg
c3RhdGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3RyeV9nZXQodm9pZCkKICNkZWZpbmUgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVU
RUNUX1RIUkVBRF9FWElUIDEKICNlbmRpZgogCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0KHZvaWQpCi17Ci0jaWZkZWYg
UEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUCi0gICAgcmV0dXJu
IHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBzdGF0aWMgaW5s
aW5lIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KHZvaWQpCiB7CiAjaWZkZWYg
UEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUCiAgICAgcmV0dXJu
ICFwdGhyZWFkX3NlbGZfaXNfZXhpdGluZ19ucCgpOwogI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsK
KyAgICByZXR1cm4gKHVpbnRwdHJfdClwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSAh
PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRDsKICNlbmRpZgogfQorCiAjZWxzZSAv
KiBQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUgLT4gc28gIVBBU19IQVZFX1BUSFJFQURfUFJJVkFU
RSAqLwotc3RhdGljIGlubGluZSBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFu
dGVlZF90b19kZXN0cnVjdCh2b2lkKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KIAogc3RhdGlj
IGlubGluZSBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3NldCh2b2lkKQogewotICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiAodWludHB0cl90KXBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfdHJ5X2dldCgpICE9IFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEOwogfQorCiAj
ZW5kaWYgLyogUEFTX0hBVkVfUFRIUkVBRF9QUklWQVRFIC0+IHNvIGVuZCBvZiAhUEFTX0hBVkVf
UFRIUkVBRF9QUklWQVRFICovCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3NldF9pbXBsKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNo
ZSkKIHsKLSAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3NldCgpIHx8
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpKTsKKyAgICBQQVNfQVNTRVJUKHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3NldCgpIHx8ICFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lz
X251bGwocGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkpKTsKICAgICBQQVNfRkFTVF9U
TFNfU0VUKFBBU19USFJFQURfTE9DQUxfS0VZLCAmcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mYXN0
X3RscywgdGhyZWFkX2xvY2FsX2NhY2hlKTsKIH0KIApAQCAtMTQ4LDcgKzE0NCw3IEBAIHN0YXRp
YyBpbmxpbmUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfYWxyZWFkeV9pbml0aWFsCiAKICAgICByZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X3RyeV9nZXQoKTsKIAotICAgIFBBU19BU1NFUlQocmVzdWx0KTsKKyAgICBQQVNfQVNTRVJUKCFw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwocmVzdWx0KSk7CiAKICAgICByZXR1cm4gcmVz
dWx0OwogfQpAQCAtMTYxLDcgKzE1Nyw3IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3dp
dGhfaGVhcF9sb2NrX2hvbGRfbW9kZShwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKIAogICAgIHJl
c3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwogICAgIAotICAgIGlmIChQ
QVNfTElLRUxZKHJlc3VsdCkpCisgICAgaWYgKFBBU19MSUtFTFkoIXBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfaXNfbnVsbChyZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAKICAg
ICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfc2xvdyhjb25maWcsIGhlYXBfbG9j
a19ob2xkX21vZGUpOwpAQCAtMzA2LDcgKzMwMiw3IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
Z2V0X2xvY2FsX2FsbG9jYXRvcl9pZl9jYW5fc2V0X2NhY2hlX2Zvcl9wb3NzaWJseV91bmluaXRp
CiAKICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwogCi0gICAg
aWYgKFBBU19VTkxJS0VMWSghY2FjaGUpKSB7CisgICAgaWYgKFBBU19VTkxJS0VMWShwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2lzX251bGwoY2FjaGUpKSkgewogICAgICAgICByZXR1cm4KICAgICAg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pZl9jYW5f
c2V0X2NhY2hlX2Zvcl9wb3NzaWJseV91bmluaXRpYWxpemVkX2luZGV4X3Nsb3coCiAgICAgICAg
ICAgICAgICAgYWxsb2NhdG9yX2luZGV4LCBoZWFwX2NvbmZpZyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmggYi9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmgKaW5kZXggNDc3ZmJi
YTY5ZDU0MzI2ZjA1NjFkZjAwNTYyNDUwMDdhZGU3YWM1Ny4uZjFkYTg0MjA5ZDAxOTg0ODZkZWIx
YWEwYWU0YzU5Y2JmYWFhYmQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGUuaApAQCAtODMsNyArODMsNyBAQCBwYXNfdHJ5X2Fs
bG9jYXRlX2ltcGxfaW5saW5lX29ubHkoCiAKICAgICBhbGxvY2F0b3JfaW5kZXggPSBoZWFwX3Jl
Zi0+YWxsb2NhdG9yX2luZGV4OwogICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90
cnlfZ2V0KCk7Ci0gICAgaWYgKFBBU19VTkxJS0VMWSghY2FjaGUpKQorICAgIGlmIChQQVNfVU5M
SUtFTFkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKGNhY2hlKSkpCiAgICAgICAgIHJl
dHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKIAogICAgIGFsbG9j
YXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldF9sb2NhbF9hbGxvY2F0b3Jfb3Jf
dW5zZWxlY3RlZF9mb3JfdW5pbml0aWFsaXplZF9pbmRleCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaCBiL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaAppbmRl
eCA2Mjg5NTljZWVjOGU5OTUwMzc0OWRiNTRmYjQ5MDNmM2NkOTRhZTMwLi5lMjBjMzk4YzgyNWUz
YjkzMzg2ODA2NWVkMGEzYzM4OGZmY2YxNWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgKKysrIGIvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oCkBAIC0xMDEs
NyArMTAxLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9hcnJheV9pbXBsX2lubGluZV9vbmx5X3dpdGhf
aGVhcCgKICAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwgYWxpZ25lZF9zaXplLCBjb25m
aWcpOwogCiAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKLSAg
ICBpZiAoUEFTX1VOTElLRUxZKCFjYWNoZSkpCisgICAgaWYgKFBBU19VTkxJS0VMWShwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2lzX251bGwoY2FjaGUpKSkKICAgICAgICAgcmV0dXJuIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogICAgIAogICAgIGFsbG9jYXRvciA9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9j
YXRlX2ludHJpbnNpYy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ry
eV9hbGxvY2F0ZV9pbnRyaW5zaWMuaAppbmRleCBmMzUzZWI1Yzk0MTRiMTgxYWFkYjNhZDUwNjY5
OTk5OWYxNzdjZGYwLi45MGE4Mzc5MzEwNzM2NjM2YzY2ZjE2MzU1MmU0ZTNmMTRkZWVhNjI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9j
YXRlX2ludHJpbnNpYy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190cnlfYWxsb2NhdGVfaW50cmluc2ljLmgKQEAgLTExNiw3ICsxMTYsNyBAQCBwYXNfdHJ5X2Fs
bG9jYXRlX2ludHJpbnNpY19pbXBsX2Nhc3VhbF9jYXNlKAogICAgIH0KIAogICAgIGNhY2hlID0g
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Ci0gICAgaWYgKFBBU19MSUtFTFkoY2Fj
aGUpKSB7CisgICAgaWYgKFBBU19MSUtFTFkoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVs
bChjYWNoZSkpKSB7CiAgICAgICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleDsKICAgICAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdDsKICAgICAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOwpAQCAtMjEwLDcgKzIxMCw3IEBAIHBhc190cnlf
YWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5lX29ubHkoCiAgICAgfQogCiAgICAgY2FjaGUg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKLSAgICBpZiAoUEFTX1VOTElLRUxZ
KCFjYWNoZSkpCisgICAgaWYgKFBBU19VTkxJS0VMWShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lz
X251bGwoY2FjaGUpKSkKICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVh
dGVfZmFpbHVyZSgpOwogICAgIAogICAgIGRlc2lnbmF0ZWRfaW5kZXggPSBwYXNfZGVzaWduYXRl
ZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGVkX2luZGV4KApkaWZmIC0tZ2l0IGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaCBiL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZl
LmgKaW5kZXggMGJjZGMxZjgzNzI4MDdkOWUwOGI2NTk3ZmMyZGE1YjQzNGQyNGY0MC4uNGQwYmUy
YTlmMWNkYzE4MjJlMTc2MTI1ZjZjZWM0NWEyNTJkNmJhZiAxMDA2NDQKLS0tIGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaAorKysg
Yi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZS5oCkBAIC0xNjcsNyArMTY3LDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1w
bF9pbmxpbmVfb25seSgKICAgICAgICAgcHJpbnRmKCJhbGxvY2F0b3JfaW5kZXggPSAldVxuIiwg
YWxsb2NhdG9yX2luZGV4KTsKIAogICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90
cnlfZ2V0KCk7Ci0gICAgaWYgKFBBU19VTkxJS0VMWSghY2FjaGUpKQorICAgIGlmIChQQVNfVU5M
SUtFTFkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKGNhY2hlKSkpCiAgICAgICAgIHJl
dHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAKICAgICBh
bGxvY2F0b3IgPQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9yZWFsbG9jYXRlLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X3JlYWxsb2NhdGUuaAppbmRleCBkZGU1OWY1NzBlZmYwYTc4YzZhMTczZjEyZDE1MGQ5
NzU5NTNkOTNhLi44ZjI2MGI5MjUzM2FmN2QxMTcxZmFiNTVhYjZhMDUyODZlMmM2NGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2Nh
dGUuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxs
b2NhdGUuaApAQCAtMzU0LDYgKzM1NCw3IEBAIHBhc190cnlfcmVhbGxvY2F0ZSh2b2lkKiBvbGRf
cHRyLAogICAgIH0gfQogICAgIAogICAgIFBBU19BU1NFUlQoISJTaG91bGQgbmV2ZXIgYmUgcmVh
Y2hlZCIpOworICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUo
KTsKIH0KIAogdHlwZWRlZiBzdHJ1Y3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdXRpbHMuaAppbmRleCA3NjFhMjU4ZjExMmU5NmJkMTBlZWNjMjBhZDE5YjdmOTA3
MTEzNDM3Li4xMGNlNDgxYjJkOWUwOGI3NDY0MjEwODlmODgyOGVhZDRhMGM3YzJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaAorKysgYi9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaApAQCAtMTA4LDE0ICsx
MDgsMTMgQEAgUEFTX0FQSSBQQVNfTk9fUkVUVVJOIFBBU19ORVZFUl9JTkxJTkUgdm9pZCBwYXNf
cmVhbGxvY2F0aW9uX2RpZF9mYWlsKGNvbnN0IGNoYXIKIAogUEFTX0FQSSBQQVNfTk9fUkVUVVJO
IHZvaWQgcGFzX2Fzc2VydGlvbl9mYWlsZWQoY29uc3QgY2hhciogZmlsZW5hbWUsIGludCBsaW5l
LCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgY29uc3QgY2hhciogZXhwcmVzc2lvbik7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgorUEFTX0lHTk9SRV9XQVJOSU5HU19CRUdJTigibWlzc2lu
Zy1ub3JldHVybiIpCiBzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2Fzc2VydGlvbl9mYWlsZWRfbm9y
ZXR1cm5fc2lsZW5jZXIoCiAgICAgY29uc3QgY2hhciogZmlsZW5hbWUsIGludCBsaW5lLCBjb25z
dCBjaGFyKiBmdW5jdGlvbiwgY29uc3QgY2hhciogZXhwcmVzc2lvbikKIHsKICAgICBwYXNfYXNz
ZXJ0aW9uX2ZhaWxlZChmaWxlbmFtZSwgbGluZSwgZnVuY3Rpb24sIGV4cHJlc3Npb24pOwogfQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorUEFTX0lHTk9SRV9XQVJOSU5HU19FTkQKIAog
I2RlZmluZSBQQVNfTElLRUxZKHgpIF9fUEFTX0xJS0VMWSh4KQogI2RlZmluZSBQQVNfVU5MSUtF
TFkoeCkgX19QQVNfVU5MSUtFTFkoeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAgYi9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwCmluZGV4IDc0MzIxZDk0
OTEzNWQyZjE5YWQwMzcyZDk2NDJlODUwOWNlMGM1OWEuLmU5MmY4YzhiZTBlNzFiZmM1NTFlMjdj
ZGJmYmM5YTJlM2ZmY2MyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
dGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAKKysrIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcApAQCAtNDUxOSwyMiArNDUx
OSwxOCBAQCB2b2lkIGFkZEFsbFRlc3RzKCkKICAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdl
ckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDEyOCwgMSkpOwogICAgICAgICBBRERfVEVTVCh0ZXN0
U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnkoMTI4LCAxMDAwMCkpOwogICAgICAgICBB
RERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnkoOCwgMTAwMDApKTsK
LSAgICAgICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFudGVlZF90b19kZXN0
cnVjdCgpKSB7Ci0gICAgICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJl
dHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluaygxMjgsIDEpKTsKLSAgICAgICAgICAg
IEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0
TWFudWFsU2hyaW5rKDEyOCwgMTAwMDApKTsKLSAgICAgICAgICAgIEFERF9URVNUKHRlc3RTY2F2
ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDgsIDEw
MDAwKSk7Ci0gICAgICAgIH0KKyAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFs
bHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxKSk7CisgICAgICAg
IEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0
TWFudWFsU2hyaW5rKDEyOCwgMTAwMDApKTsKKyAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdl
ckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoOCwgMTAwMDAp
KTsKICAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlclNodXRzRG93bkV2ZW50dWFsbHkoNjQs
IDEwMDAwLCAxLCAxKSk7CiAgICAgfQogICAgIAogICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJF
dmVudHVhbGx5UmV0dXJuc01lbW9yeSgxMjgsIDEpKTsKICAgICBBRERfVEVTVCh0ZXN0U2NhdmVu
Z2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnkoMTI4LCAxMDAwMCkpOwogICAgIEFERF9URVNUKHRl
c3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeSg4LCAxMDAwMCkpOwotICAgIGlmIChw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9fZGVzdHJ1Y3QoKSkgewotICAg
ICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0
aG91dE1hbnVhbFNocmluaygxMjgsIDEpKTsKLSAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdl
ckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxMDAw
MCkpOwotICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1v
cnlFdmVuV2l0aG91dE1hbnVhbFNocmluayg4LCAxMDAwMCkpOwotICAgIH0KKyAgICBBRERfVEVT
VCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNo
cmluaygxMjgsIDEpKTsKKyAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVy
bnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluaygxMjgsIDEwMDAwKSk7CisgICAgQUREX1RF
U1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxT
aHJpbmsoOCwgMTAwMDApKTsKICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyU2h1dHNEb3duRXZl
bnR1YWxseSg2NCwgMTAwMDAsIDEsIDEpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAgYi9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRl
c3RzLmNwcAppbmRleCAyY2YwMjFiMmEwMDNlZGFkN2MzY2MyYjQyY2JkYjM4MDYwZTQ0NmZhLi44
OTYwYTRhMzljMDE0MTcwMWFkNjRiNmQ3NzJhZDQ3MWUzNGM5MWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3Rz
LmNwcAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxB
bmRCYXNlbGluZVRlc3RzLmNwcApAQCAtMTA4MiwxMCArMTA4Miw4IEBAIHZvaWQgYWRkSXNvSGVh
cFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzKCkKICAgICBTdXNwZW5kU2NhdmVuZ2VyU2NvcGUgc3Vz
cGVuZFNjYXZlbmdlcjsKICAgICAKICNpZiBQQVNfRU5BQkxFX0lTTyAmJiBQQVNfRU5BQkxFX0lT
T19URVNUCi0gICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFudGVlZF90b19k
ZXN0cnVjdCgpKSB7Ci0gICAgICAgIFJ1blNjYXZlbmdlckZ1bGx5IHJ1blNjYXZlbmdlckZ1bGx5
OwotICAgICAgICBhZGRTY2F2ZW5nZXJEZXBlbmRlbnRUZXN0cygpOwotICAgIH0KKyAgICBSdW5T
Y2F2ZW5nZXJGdWxseSBydW5TY2F2ZW5nZXJGdWxseTsKKyAgICBhZGRTY2F2ZW5nZXJEZXBlbmRl
bnRUZXN0cygpOwogICAgIHsKICAgICAgICAgUnVuU2NhdmVuZ2VyT25Ob25SZW1vdGVDYWNoZXMg
cnVuU2NhdmVuZ2VyT25Ob25SZW1vdGVDYWNoZXM7CiAgICAgICAgIGFkZFNjYXZlbmdlckRlcGVu
ZGVudFRlc3RzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445953</attachid>
            <date>2021-12-03 20:52:51 -0800</date>
            <delta_ts>2021-12-06 13:19:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233851-20211204045250.patch</filename>
            <type>text/plain</type>
            <size>25360</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggZTg2Yjg0MGI2NGVhZGFk
ODUxY2IwYTUzNjUxNzEyN2UxMzg3YzZlMy4uNmFhZDg4YTI3ZDljNGIzYTg1ZWE2OTk4ODczZjc1
OTQ0NWQ4OGYwMiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTEyLTAzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gU2V0IHB0
aHJlYWRfc2V0c3BlY2lmaWMgd2l0aCBtYXJrZXIgaW4gVExTIGRlc3RydWN0b3IgdG8gZGV0ZWN0
IFRMUyBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRMUyBoYXMgbGlmZXRpbWUgcHJvYmxlbSB0aGF0LAorCisgICAgICAgIDEuIFRM
UyBpcyBkZXN0cm95ZWQKKyAgICAgICAgMi4gVGhlIG90aGVyIFRMUyBpcyBkZXN0cm95ZWQsIGFu
ZCB0aGUgZGVzdHJ1Y3RvciBpcyBjYWxsZWQKKyAgICAgICAgMy4gVGhlIGRlc3RydWN0b3IgdG91
Y2hlcyAoMSkncyBUTFMsIHRoZW4gcmV2aXZlIFRMUyBvZiAoMSkgKGUuZy4gbGlicGFzJ3MgdGhy
ZWFkIGxvY2FsIGNhY2hlKS4KKworICAgICAgICBUbyBoYW5kbGUgdGhlc2UgY2FzZXMsIHB0aHJl
YWQgbGlicmFyeSAobGliYykgcmVwZWF0ZWRseSBjYWxscyBkZXN0cnVjdG9yIFBBU19USFJFQURf
TE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzCisgICAgICAgIHNvIHRoYXQgd2UgY2xlYW4gdXAg
cmV2aXZlZCBUTFMgYWdhaW4uCisKKyAgICAgICAgQnkgdXNpbmcgdGhpcyBtZWNoYW5pc20sIHdl
IGNhbiBlbXVsYXRlIHB0aHJlYWRfc2VsZl9pc19leGl0aW5nX25wIHNvIHRoYXQgd2UgY2FuIGF2
b2lkIHJldml2aW5nIFRMUy4KKworICAgICAgICAxLiBXaGVuIGRlc3Ryb3lpbmcgVExTLCB3ZSBz
ZXQgYSBtYXJrZXIgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIGluIHRoaXMgY2Fz
ZSkgdG8gVExTLgorICAgICAgICAyLiBEdXJpbmcgdGhlIG90aGVyIGRlc3RydWN0b3IgY2FsbHMs
IHdlIGNhbiBkZXRlY3QgdGhhdCBUTFMgaXMgZGVzdHJveWVkIGJ5IGNoZWNraW5nIHB0aHJlYWRf
Z2V0c3BlY2lmaWMoLi4uKSA9PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRC4KKyAg
ICAgICAgMy4gV2UgcmVwZWF0ZWRseSBjYWxscyB0aGUgZGVzdHJ1Y3RvciBvZiBUTFMsIGJ1dCBl
dmVyeSB0aW1lLCB3ZSBzZXQgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQuCisgICAg
ICAgICAgIFNvIGFmdGVyIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzLCBp
dCBpcyBsZWZ0LCBhbmQgd2UgYWNoaWV2ZSB0aGUgZ29hbCAoMSkgb2ZmZXJpbmcgdGhlIHdheSB0
bworICAgICAgICAgICBkZXRlY3QgdGhlIGRlc3Ryb3llZCBUTFMgYW5kICgyKSBhdm9pZGluZyBy
ZXZpdmluZyBvZiBUTFMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGl0IHdoZW4g
cHRocmVhZF9zZWxmX2lzX2V4aXRpbmdfbnAgZG9lcyBub3QgZXhpc3QuCisKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5oOgorICAgICAgICAocGFzX2RlYWxsb2Nh
dGVfa25vd25fc2VncmVnYXRlZCk6CisgICAgICAgIChwYXNfdHJ5X2RlYWxsb2NhdGUpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oOgor
ICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jb25maWcpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYzoKKyAgICAgICAgKHBh
c19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3MpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193aXRoX21vZGUpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxv
Y2F0b3IpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGUuYzoKKyAgICAgICAgKGRlc3RydWN0b3IpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9jcmVhdGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9kZXN0cm95KToK
KyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3Nsb3cpOgorICAgICAgICAocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX3Nsb3cpOgorICAgICAgICAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmg6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2lzX251bGwpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0
KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwpOgorICAgICAgICAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9nZXRfYWxyZWFkeV9pbml0aWFsaXplZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF93aXRoX2hlYXBfbG9ja19ob2xkX21vZGUpOgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bv
c3NpYmx5X3VuaW5pdGlhbGl6ZWRfaW5kZXgpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9j
YXRlX2ltcGxfaW5saW5lX29ubHkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190
cnlfYWxsb2NhdGVfYXJyYXkuaDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfYXJyYXlfaW1w
bF9pbmxpbmVfb25seV93aXRoX2hlYXApOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c190cnlfYWxsb2NhdGVfaW50cmluc2ljLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2lu
dHJpbnNpY19pbXBsX2Nhc3VhbF9jYXNlKToKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljX2ltcGxfaW5saW5lX29ubHkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZV9pbXBsX2lubGluZV9vbmx5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X3JlYWxsb2NhdGUuaDoKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0ZSk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmg6CisgICAgICAgICogbGlicGFzL3Ny
Yy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6YWRkQWxs
VGVzdHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJhc2Vs
aW5lVGVzdHMuY3BwOgorICAgICAgICAoYWRkSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3Rz
KToKKwogMjAyMS0xMi0wMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtsaWJwYXNdIEJpdGZpdCBhbGxvY2F0b3IgaGFzIGEgd3JvbmcgYXNzZXJ0aW9uIHdoZW4g
YSBwYWdlJ3MgbWF4X2ZyZWUgaXMgZW5vdWdoIGZvciB0aGUgc2l6ZSBvZiBhbiBhbGxvY2F0aW9u
LCBub3QgZW5vdWdoIGZvciB0aGF0IGFsbG9jYXRpb24ncyBzaXplIGNsYXNzLCBhbmQgdGhlIG9i
amVjdCBvZiB0aGF0IHNpemUgaXMgbm90IGFsaWduZWQgdG8gdGhlIGN1cnJlbnRseSByZXF1ZXN0
ZWQgYWxpZ25tZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZGVhbGxvY2F0ZS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2RlYWxsb2NhdGUuaAppbmRleCBjMWJjYTdmNjM5NzQ4YTg4YjMyYzczNTg2NDc0NTk0ZGIzMzlk
MTg4Li5jYWE2NTExMTExNjQ5NjRlZjZjMzlkOTVlMjNjMGJmNDhhNGJlYjNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5oCisrKyBi
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRlLmgKQEAgLTU2
LDcgKzU2LDcgQEAgcGFzX2RlYWxsb2NhdGVfa25vd25fc2VncmVnYXRlZCh2b2lkKiBwdHIsCiAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlOwogCiAgICAgdGhy
ZWFkX2xvY2FsX2NhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Ci0gICAg
aWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUpIHsKKyAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9pc19udWxsKHRocmVhZF9sb2NhbF9jYWNoZSkpIHsKICAgICAgICAgcGFzX3RyeV9kZWFsbG9j
YXRlX3Nsb3dfbm9fY2FjaGUocHRyLCBwYWdlX2NvbmZpZy5iYXNlLmhlYXBfY29uZmlnX3B0ciwg
cGFzX2RlYWxsb2NhdGVfbW9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xOTMsNyAr
MTkzLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3RyeV9kZWFsbG9jYXRl
KHZvaWQqIHB0ciwKICAgICAgICAgcGFzX2xvZygidHJ5X2RlYWxsb2NhdGUgZm9yICVwXG4iLCBw
dHIpOwogICAgIAogICAgIHRocmVhZF9sb2NhbF9jYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfdHJ5X2dldCgpOwotICAgIGlmIChQQVNfVU5MSUtFTFkoIXRocmVhZF9sb2NhbF9jYWNoZSkp
IHsKKyAgICBpZiAoUEFTX1VOTElLRUxZKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbCh0
aHJlYWRfbG9jYWxfY2FjaGUpKSkgewogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAg
IHBhc19sb2coIkdvaW5nIHNsb3cgYmVjYXVzZSBubyBUTEMuXG4iKTsKICAgICAgICAgcmV0dXJu
IHBhc190cnlfZGVhbGxvY2F0ZV9zbG93X25vX2NhY2hlKHB0ciwgY29uZmlnLmNvbmZpZ19wdHIs
IGRlYWxsb2NhdGlvbl9tb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oIGIvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKaW5kZXggMDUw
MWI1MGM2MTk1YzQ3YWRhYjkwM2U4NDBiZDM5ZTFlNzA3Y2VjMC4uMDIxNDk4ZjM3MDQ2MTNiNGEw
ZmU5YzNmOGU1NGViZDVmMjU4OWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKKysrIGIvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKQEAg
LTk1MSw3ICs5NTEsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2Nv
bmZpZygKICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFn
ZV9jb25maWcpKSB7CiAgICAgICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlf
Z2V0KCk7CiAgICAgICAgIAotICAgICAgICBpZiAoY2FjaGUpIHsKKyAgICAgICAgaWYgKCFwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwoY2FjaGUpKSB7CiAgICAgICAgICAgICBjYWNoZV9u
b2RlID0gY2FjaGUtPm5vZGU7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8qIERvaW5nIHRo
aXMgaGVyZSBoYXMgc29tZSBzcGVjaWFsIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBpdCBkb2Vz
bid0IHByZXZlbnQgZmFzdCByZXVzZQpAQCAtMTAyNCw3ICsxMDI0LDcgQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jb25maWcoCiAgICAgCiAgICAgZGlkX2dldF92aWV3
ID0gZmFsc2U7CiAgICAgCi0gICAgaWYgKHBhZ2VfY29uZmlnLmVuYWJsZV92aWV3X2NhY2hlICYm
IGNhY2hlKSB7CisgICAgaWYgKHBhZ2VfY29uZmlnLmVuYWJsZV92aWV3X2NhY2hlICYmICFwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwoY2FjaGUpKSB7CiAgICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3JfcmVzdWx0IHZpZXdfY2FjaGVfcmVzdWx0OwogICAgICAgICAKICAgICAgICAgUEFT
X0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZp
ZykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nj
YXZlbmdlci5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdl
ci5jCmluZGV4IDJhOGFiNzNiZTg3MzFmMDMyNTg4NjhhOGQ4Yjc4YTQ3ZDgwZjA5MmYuLmVkYTQx
OTIzOTNiZWFjZDI3ODY0OGRjYWE2ZWIzYWRlODEwMjZiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYworKysgYi9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmMKQEAgLTQ2MSw3ICs0NjEsNyBA
QCB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3Mo
dm9pZCkKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZTsKICAgICAKICAgICBjYWNo
ZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwotICAgIGlmIChjYWNoZSkKKyAg
ICBpZiAoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkpCiAgICAgICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5rKGNhY2hlLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7
CiAKICAgICBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9ub25fdGxjX2NhY2hlcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9pbmxpbmVzLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9wYWdlX2lubGluZXMuaAppbmRleCBjNzY1YjA1YWRmNDcxNDIzZWRmYjBiOGQwMzZhYWZm
ZTZhZGFkZGJlLi43MGQ5YzlmZmNjZmI4Njg4NGExNDlkYTMzMjUyNDNkMDZjMTBiYWJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlX2lubGluZXMuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2lubGluZXMuaApAQCAtMjc4LDYgKzI3OCw3IEBAIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBib29sIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9t
b2RlKAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IH0KICAgICBQQVNfQVNTRVJUKCEiU2hv
dWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2soCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9pbmxpbmVzLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgKaW5kZXggYjA1NzkxNmQ5
ZGZmMTA0ZmViNDViYjAyZDcxZTlkNjI1N2E3MWUxMS4uZjc2NThmOWUxMjgyZDNiYWMwMmFmYzli
ODRlOGU1YmRhZDBmMDA4OSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2lubGluZXMuaApAQCAtNTgsNyArNTgsNyBAQCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9zZWxlY3RfYWxsb2NhdG9yKAogICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCiB7CiAgICAg
aWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVj
dG9yeSkKLSAgICAgICAgJiYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpIHx8IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3NldCgpKSkgeworICAgICAgICAmJiAoIXBhc190aHJl
YWRfbG9jYWxfY2FjaGVfaXNfbnVsbChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSkg
fHwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KCkpKSB7CiAgICAgICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAogICAg
ICAgICAgICAgZGlyZWN0b3J5LCBzaXplLCBzaXplX2xvb2t1cF9tb2RlLCBjb25maWcsIGNhY2hl
ZF9pbmRleCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCmluZGV4IGY3ODEwMzAzN2JmZTAzZTY5
MjU1NDM5NzhhZWFkOGZlM2YwZmE3ZGUuLmUxZTg5ZmZkODAyOGVkOTFiYTAwYzg3NTI2MmVlZWNh
ZWJmYmY4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGUuYworKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMKQEAgLTkxLDExICs5MSwyNiBAQCBzdGF0aWMg
dm9pZCBkZXN0cm95KHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwg
cGFzX2xvY2tfaG9sZF9tbwogCiBzdGF0aWMgdm9pZCBkZXN0cnVjdG9yKHZvaWQqIGFyZykKIHsK
KyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGU7CiAgICAgCiAgICAgdGhyZWFkX2xvY2Fs
X2NhY2hlID0gKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKWFyZzsKIAotICAgIGRlc3Ryb3kodGhy
ZWFkX2xvY2FsX2NhY2hlLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisjaWZuZGVmIFBBU19USFJF
QURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVAorICAgIC8qIElmIHB0aHJlYWRf
c2VsZl9pc19leGl0aW5nX25wIGRvZXMgbm90IGV4aXN0LCB3ZSBzZXQgUEFTX1RIUkVBRF9MT0NB
TF9DQUNIRV9ERVNUUk9ZRUQgdG8gdGhlIFRMUyBzbyB0aGF0CisgICAgICAgc3Vic2VxdWVudCBj
YWxscyBvZiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSBjYW4gZGV0ZWN0IHdoZXRo
ZXIgVExTIGlzIGRlc3Ryb3llZC4gU2luY2UgaXQgaXMgbm90CisgICAgICAgTlVMTCwgdGhpcyBk
ZXN0cnVjdG9yIHdpbGwgYmUgY2FsbGVkIG9uY2UgYWdhaW4gbGF0ZXIuIFdlIHJlcGVhdCBpbnZv
a2luZyB0aGlzIGRlc3RydWN0b3IgUFRIUkVBRF9ERVNUUlVDVE9SX0lURVJBVElPTlMgdGltZXMu
ICovCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1wbCgocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSopUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQpOworICAgIFBBU19BU1NF
UlQoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3NldCgpKTsKKyNlbmRpZgorCisgICAgaWYg
KCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwodGhyZWFkX2xvY2FsX2NhY2hlKSkKKyAg
ICAgICAgZGVzdHJveSh0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsK
KyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJb
JWRdIFJlcGVhdGVkIGRlc3RydWN0b3IgY2FsbCBmb3IgVExTICVwXG4iLCBnZXRwaWQoKSwgdGhy
ZWFkX2xvY2FsX2NhY2hlKTsKKyAgICB9CiB9CiAKIHN0YXRpYyBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiBhbGxvY2F0ZV9jYWNoZSh1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpCkBA
IC0xNzQsNyArMTg5LDcgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9jcmVhdGUodm9pZCkKICAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZ
T1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkKICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9jb25zdHJ1Y3QobGF5b3V0X25vZGUsIHRocmVhZF9sb2NhbF9j
YWNoZSk7CiAKLSAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NldF9pbXBsKHRocmVhZF9sb2Nh
bF9jYWNoZSk7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXQodGhyZWFkX2xvY2FsX2Nh
Y2hlKTsKICAgICAKICAgICByZXR1cm4gdGhyZWFkX2xvY2FsX2NhY2hlOwogfQpAQCAtMTg3LDE0
ICsyMDIsMTQgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Rlc3Ryb3kocGFzX2xvY2tf
aG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiAKICAgICB0aHJlYWRfbG9jYWxfY2FjaGUg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKIAotICAgIGlmICghdGhyZWFkX2xv
Y2FsX2NhY2hlKQorICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwodGhyZWFk
X2xvY2FsX2NhY2hlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHZlcmJvc2UpCiAgICAg
ICAgIHBhc19sb2coIlslZF0gVExDICVwIGdldHRpbmcgZGVzdHJveWVkXG4iLCBnZXRwaWQoKSwg
dGhyZWFkX2xvY2FsX2NhY2hlKTsKICAgICBkZXN0cm95KHRocmVhZF9sb2NhbF9jYWNoZSwgaGVh
cF9sb2NrX2hvbGRfbW9kZSk7CiAKLSAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NldF9pbXBs
KE5VTEwpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0KE5VTEwpOwogfQogCiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9zbG93KHBhc19o
ZWFwX2NvbmZpZyogY29uZmlnLApAQCAtMjExLDcgKzIyNiw3IEBAIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3Nsb3cocGFzX2hlYXBfY29uZmlnKiBj
b25maWcsCiAgICAgICAgaGFwcGVuIGJlZm9yZSBhbnkgVExDcyBhcmUgYWxsb2NhdGVkLiAqLwog
ICAgIHBhc19oZWFwX2NvbmZpZ19hY3RpdmF0ZShjb25maWcpOwogICAgIAotICAgIFBBU19BU1NF
UlQoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpKTsKKyAgICBQQVNfQVNTRVJUKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9n
ZXQoKSkpOwogICAgIAogICAgIHRocmVhZF9sb2NhbF9jYWNoZSA9IHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfY3JlYXRlKCk7CiAgICAgCkBAIC0zMTIsNyArMzI3LDcgQEAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9yZXN1bHQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX3Ns
b3coCiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKIAogICAgIGlmICh0aHJlYWRfbG9jYWxfY2FjaGUgIT0gbmV3X3RocmVhZF9sb2Nh
bF9jYWNoZSkKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1wbChuZXdfdGhy
ZWFkX2xvY2FsX2NhY2hlKTsKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXQobmV3
X3RocmVhZF9sb2NhbF9jYWNoZSk7CiAgICAgCiAgICAgUEFTX0FTU0VSVChkZXNpcmVkX2FsbG9j
YXRvcl9pbmRleCA8IG5ld190aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBl
cl9ib3VuZCk7CiAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9z
dWNjZXNzKApAQCAtNTY2LDcgKzU4MSw3IEBAIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9m
bHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhCiAgICAg
ICAgIHBhc19zY2F2ZW5nZXJfbm90aWZ5X2VsaWdpYmlsaXR5X2lmX25lZWRlZCgpOwogfQogCi0j
aWZkZWYgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUCisjaWYg
UEFTX09TKERBUldJTikKIAogc3RhdGljIHZvaWQgc3VzcGVuZChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiBjYWNoZSkKIHsKQEAgLTc0MCwxNCArNzU1LDcgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24gYWxsb2NhdG9yX2Fj
dGkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogCi0j
aWZkZWYgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUCi0gICAg
ICAgICAgICAgICAgaWYgKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9f
ZGVzdHJ1Y3QoKSkgewotICAgICAgICAgICAgICAgICAgICAvKiBXZSdyZSBvbiBhIHBsYXRmb3Jt
IHRoYXQgY2FuJ3QgZ3VhcmFudGVlIHRoYXQgdGhyZWFkIGxvY2FsIGNhY2hlcyBhcmUgZGVzdHJ1
Y3RlZC4KLSAgICAgICAgICAgICAgICAgICAgICAgVGhlcmVmb3JlLCB3ZSBtaWdodCBoYXZlIGEg
VExDIHRoYXQgaGFzIGEgZGFuZ2xpbmcgdGhyZWFkIHBvaW50ZXIuIFNvLCB3ZSBkb24ndAotICAg
ICAgICAgICAgICAgICAgICAgICBhdHRlbXB0IHRvIGRvIHRoZSBzdXNwZW5kIHRoaW5nLiAqLwot
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0KKyNpZiBQ
QVNfT1MoREFSV0lOKQogICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJOZWVkIHRvIHN1c3BlbmQgZm9yIGFsbG9jYXRvciAlcFxuIiwgc2Nh
dmVuZ2VyX2RhdGEpOwogICAgICAgICAgICAgICAgIApAQCAtNzY5LDcgKzc3Nyw3IEBAIGJvb2wg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0
aW9uIGFsbG9jYXRvcl9hY3RpCiAjZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAot
I2lmZGVmIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVAorI2lm
IFBBU19PUyhEQVJXSU4pCiAgICAgICAgICAgICBpZiAoZGlkX3N1c3BlbmQpCiAgICAgICAgICAg
ICAgICAgcmVzdW1lKGNhY2hlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIGIvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oCmluZGV4IDI1NzY1
N2EzOTgwMjMzY2YwNzEzM2Y0MTg0NzUzMTM0ZGY4ZmUyMTIuLjBmNGZiM2FhNDM5NTMxMjFlMDMx
YWJmMjVlMGRjMWE2ZGViNDA2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgKQEAgLTQ0LDYgKzQ0LDgg
QEAKICNkZWZpbmUgUEFTX0hBVkVfUFRIUkVBRF9QUklWQVRFIDAKICNlbmRpZgogCisjZGVmaW5l
IFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIDEKKwogUEFTX0JFR0lOX0VYVEVSTl9D
OwogCiBzdHJ1Y3QgcGFzX21hZ2F6aW5lOwpAQCAtODksNiArOTEsMTEgQEAgc3RhdGljIGlubGlu
ZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQo
dm9pZCkKICAgICAgICAgUEFTX1RIUkVBRF9MT0NBTF9LRVksICZwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2Zhc3RfdGxzKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfaXNfbnVsbChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKK3sKKyAgICByZXR1
cm4gKCh1aW50cHRyX3QpY2FjaGUpIDw9IFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVE
OworfQorCiAjaWYgUEFTX0hBVkVfUFRIUkVBRF9QUklWQVRFCiAjaWYgKFBBU19QTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSBcCiAgICAg
fHwgKFBBU19QTEFURk9STShNQUNDQVRBTFlTVCkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTQwMDAwKSBcCkBAIC05Nyw0MCArMTA0LDI2IEBAIHN0YXRpYyBpbmxpbmUg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KHZv
aWQpCiAgICAgfHwgKFBBU19QTEFURk9STShBUFBMRVRWKSAmJiBQQVNfUExBVEZPUk0oSU9TX0ZB
TUlMWV9TSU1VTEFUT1IpICYmIF9fVFZfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAw
KQogI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRFQ1RfVEhSRUFEX0VYSVQg
MQogI2VuZGlmCi0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lz
X2d1YXJhbnRlZWRfdG9fZGVzdHJ1Y3Qodm9pZCkKLXsKLSNpZmRlZiBQQVNfVEhSRUFEX0xPQ0FM
X0NBQ0hFX0NBTl9ERVRFQ1RfVEhSRUFEX0VYSVQKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0g
ICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi19CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQodm9pZCkKIHsKICNpZmRlZiBQQVNfVEhSRUFEX0xPQ0FM
X0NBQ0hFX0NBTl9ERVRFQ1RfVEhSRUFEX0VYSVQKICAgICByZXR1cm4gIXB0aHJlYWRfc2VsZl9p
c19leGl0aW5nX25wKCk7CiAjZWxzZQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiAodWlu
dHB0cl90KXBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpICE9IFBBU19USFJFQURfTE9D
QUxfQ0FDSEVfREVTVFJPWUVEOwogI2VuZGlmCiB9Ci0jZWxzZSAvKiBQQVNfSEFWRV9QVEhSRUFE
X1BSSVZBVEUgLT4gc28gIVBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAqLwotc3RhdGljIGlubGlu
ZSBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFudGVlZF90b19kZXN0cnVjdCh2
b2lkKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KIAotc3RhdGljIGlubGluZSBib29sIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3NldCh2b2lkKQorc3RhdGljIGlubGluZSB2b2lkIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFk
X2xvY2FsX2NhY2hlKQogewotICAgIHJldHVybiB0cnVlOworICAgIFBBU19GQVNUX1RMU19TRVQo
UEFTX1RIUkVBRF9MT0NBTF9LRVksICZwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zhc3RfdGxzLCB0
aHJlYWRfbG9jYWxfY2FjaGUpOwogfQotI2VuZGlmIC8qIFBBU19IQVZFX1BUSFJFQURfUFJJVkFU
RSAtPiBzbyBlbmQgb2YgIVBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAqLwogCi1zdGF0aWMgaW5s
aW5lIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1wbChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUpCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9zZXQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2Nh
Y2hlKQogewotICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KCkg
fHwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkpOwotICAgIFBBU19GQVNUX1RMU19T
RVQoUEFTX1RIUkVBRF9MT0NBTF9LRVksICZwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zhc3RfdGxz
LCB0aHJlYWRfbG9jYWxfY2FjaGUpOworICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9jYW5fc2V0KCkgfHwgIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSkpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
c2V0X2ltcGwodGhyZWFkX2xvY2FsX2NhY2hlKTsKIH0KIAogUEFTX0FQSSBzaXplX3QgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkodW5zaWdu
ZWQgYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KTsKQEAgLTE0OCw3ICsxNDEsNyBAQCBzdGF0aWMg
aW5saW5lIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0
X2FscmVhZHlfaW5pdGlhbAogCiAgICAgcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90
cnlfZ2V0KCk7CiAKLSAgICBQQVNfQVNTRVJUKHJlc3VsdCk7CisgICAgUEFTX0FTU0VSVCghcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9pc19udWxsKHJlc3VsdCkpOwogCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KQEAgLTE2MSw3ICsxNTQsNyBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF93aXRo
X2hlYXBfbG9ja19ob2xkX21vZGUocGFzX2hlYXBfY29uZmlnKiBjb25maWcsCiAKICAgICByZXN1
bHQgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKICAgICAKLSAgICBpZiAoUEFT
X0xJS0VMWShyZXN1bHQpKQorICAgIGlmIChQQVNfTElLRUxZKCFwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2lzX251bGwocmVzdWx0KSkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgCiAgICAg
cmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3Nsb3coY29uZmlnLCBoZWFwX2xvY2tf
aG9sZF9tb2RlKTsKQEAgLTMwNiw3ICsyOTksNyBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dl
dF9sb2NhbF9hbGxvY2F0b3JfaWZfY2FuX3NldF9jYWNoZV9mb3JfcG9zc2libHlfdW5pbml0aQog
CiAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKIAotICAgIGlm
IChQQVNfVU5MSUtFTFkoIWNhY2hlKSkgeworICAgIGlmIChQQVNfVU5MSUtFTFkocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9pc19udWxsKGNhY2hlKSkpIHsKICAgICAgICAgcmV0dXJuCiAgICAgICAg
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaWZfY2FuX3Nl
dF9jYWNoZV9mb3JfcG9zc2libHlfdW5pbml0aWFsaXplZF9pbmRleF9zbG93KAogICAgICAgICAg
ICAgICAgIGFsbG9jYXRvcl9pbmRleCwgaGVhcF9jb25maWcpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oIGIvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oCmluZGV4IDQ3N2ZiYmE2
OWQ1NDMyNmYwNTYxZGYwMDU2MjQ1MDA3YWRlN2FjNTcuLmYxZGE4NDIwOWQwMTk4NDg2ZGViMWFh
MGFlNGM1OWNiZmFhYWJkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190cnlfYWxsb2NhdGUuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmgKQEAgLTgzLDcgKzgzLDcgQEAgcGFzX3RyeV9hbGxv
Y2F0ZV9pbXBsX2lubGluZV9vbmx5KAogCiAgICAgYWxsb2NhdG9yX2luZGV4ID0gaGVhcF9yZWYt
PmFsbG9jYXRvcl9pbmRleDsKICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5
X2dldCgpOwotICAgIGlmIChQQVNfVU5MSUtFTFkoIWNhY2hlKSkKKyAgICBpZiAoUEFTX1VOTElL
RUxZKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkpKQogICAgICAgICByZXR1
cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAKICAgICBhbGxvY2F0
b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfbG9jYWxfYWxsb2NhdG9yX29yX3Vu
c2VsZWN0ZWRfZm9yX3VuaW5pdGlhbGl6ZWRfaW5kZXgoCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmggYi9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgKaW5kZXgg
NjI4OTU5Y2VlYzhlOTk1MDM3NDlkYjU0ZmI0OTAzZjNjZDk0YWUzMC4uZTIwYzM5OGM4MjVlM2I5
MzM4NjgwNjVlZDBhM2MzODhmZmNmMTVmZiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oCisrKyBiL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaApAQCAtMTAxLDcg
KzEwMSw3IEBAIHBhc190cnlfYWxsb2NhdGVfYXJyYXlfaW1wbF9pbmxpbmVfb25seV93aXRoX2hl
YXAoCiAgICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsIGFsaWduZWRfc2l6ZSwgY29uZmln
KTsKIAogICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Ci0gICAg
aWYgKFBBU19VTkxJS0VMWSghY2FjaGUpKQorICAgIGlmIChQQVNfVU5MSUtFTFkocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9pc19udWxsKGNhY2hlKSkpCiAgICAgICAgIHJldHVybiBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAKICAgICBhbGxvY2F0b3IgPQpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0
ZV9pbnRyaW5zaWMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlf
YWxsb2NhdGVfaW50cmluc2ljLmgKaW5kZXggZjM1M2ViNWM5NDE0YjE4MWFhZGIzYWQ1MDY2OTk5
OTlmMTc3Y2RmMC4uOTBhODM3OTMxMDczNjYzNmM2NmYxNjM1NTJlNGUzZjE0ZGVlYTYyNyAxMDA2
NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0
ZV9pbnRyaW5zaWMuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcGFzX3RyeV9hbGxv
Y2F0ZV9pbnRyaW5zaWNfaW1wbF9jYXN1YWxfY2FzZSgKICAgICB9CiAKICAgICBjYWNoZSA9IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwotICAgIGlmIChQQVNfTElLRUxZKGNhY2hl
KSkgeworICAgIGlmIChQQVNfTElLRUxZKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwo
Y2FjaGUpKSkgewogICAgICAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXg7CiAgICAgICAgIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFsbG9jYXRvcl9yZXN1bHQ7CiAgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKQEAgLTIxMCw3ICsyMTAsNyBAQCBwYXNfdHJ5X2Fs
bG9jYXRlX2ludHJpbnNpY19pbXBsX2lubGluZV9vbmx5KAogICAgIH0KIAogICAgIGNhY2hlID0g
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Ci0gICAgaWYgKFBBU19VTkxJS0VMWSgh
Y2FjaGUpKQorICAgIGlmIChQQVNfVU5MSUtFTFkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19u
dWxsKGNhY2hlKSkpCiAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRl
X2ZhaWx1cmUoKTsKICAgICAKICAgICBkZXNpZ25hdGVkX2luZGV4ID0gcGFzX2Rlc2lnbmF0ZWRf
aW50cmluc2ljX2hlYXBfZGVzaWduYXRlZF9pbmRleCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmggYi9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5o
CmluZGV4IDBiY2RjMWY4MzcyODA3ZDllMDhiNjU5N2ZjMmRhNWI0MzRkMjRmNDAuLjRkMGJlMmE5
ZjFjZGMxODIyZTE3NjEyNWY2Y2VjNDVhMjUyZDZiYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmgKKysrIGIv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRp
dmUuaApAQCAtMTY3LDcgKzE2Nyw3IEBAIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxf
aW5saW5lX29ubHkoCiAgICAgICAgIHByaW50ZigiYWxsb2NhdG9yX2luZGV4ID0gJXVcbiIsIGFs
bG9jYXRvcl9pbmRleCk7CiAKICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5
X2dldCgpOwotICAgIGlmIChQQVNfVU5MSUtFTFkoIWNhY2hlKSkKKyAgICBpZiAoUEFTX1VOTElL
RUxZKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChjYWNoZSkpKQogICAgICAgICByZXR1
cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAgICAgCiAgICAgYWxs
b2NhdG9yID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190cnlfcmVhbGxvY2F0ZS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RyeV9yZWFsbG9jYXRlLmgKaW5kZXggZGRlNTlmNTcwZWZmMGE3OGM2YTE3M2YxMmQxNTBkOTc1
OTUzZDkzYS4uOGYyNjBiOTI1MzNhZjdkMTE3MWZhYjU1YWI2YTA1Mjg2ZTJjNjRiZCAxMDA2NDQK
LS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRl
LmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9j
YXRlLmgKQEAgLTM1NCw2ICszNTQsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGUodm9pZCogb2xkX3B0
ciwKICAgICB9IH0KICAgICAKICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5ldmVyIGJlIHJlYWNo
ZWQiKTsKKyAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7
CiB9CiAKIHR5cGVkZWYgc3RydWN0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc191dGlscy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3V0aWxzLmgKaW5kZXggNzYxYTI1OGYxMTJlOTZiZDEwZWVjYzIwYWQxOWI3ZjkwNzEx
MzQzNy4uMTBjZTQ4MWIyZDllMDhiNzQ2NDIxMDg5Zjg4MjhlYWQ0YTBjN2MyYSAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgKKysrIGIvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgKQEAgLTEwOCwxNCArMTA4
LDEzIEBAIFBBU19BUEkgUEFTX05PX1JFVFVSTiBQQVNfTkVWRVJfSU5MSU5FIHZvaWQgcGFzX3Jl
YWxsb2NhdGlvbl9kaWRfZmFpbChjb25zdCBjaGFyCiAKIFBBU19BUEkgUEFTX05PX1JFVFVSTiB2
b2lkIHBhc19hc3NlcnRpb25fZmFpbGVkKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBpbnQgbGluZSwg
Y29uc3QgY2hhciogZnVuY3Rpb24sIGNvbnN0IGNoYXIqIGV4cHJlc3Npb24pOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XbWlzc2luZy1ub3JldHVybiIKK1BBU19JR05PUkVfV0FSTklOR1NfQkVHSU4oIm1pc3Npbmct
bm9yZXR1cm4iKQogc3RhdGljIGlubGluZSB2b2lkIHBhc19hc3NlcnRpb25fZmFpbGVkX25vcmV0
dXJuX3NpbGVuY2VyKAogICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBpbnQgbGluZSwgY29uc3Qg
Y2hhciogZnVuY3Rpb24sIGNvbnN0IGNoYXIqIGV4cHJlc3Npb24pCiB7CiAgICAgcGFzX2Fzc2Vy
dGlvbl9mYWlsZWQoZmlsZW5hbWUsIGxpbmUsIGZ1bmN0aW9uLCBleHByZXNzaW9uKTsKIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK1BBU19JR05PUkVfV0FSTklOR1NfRU5ECiAKICNk
ZWZpbmUgUEFTX0xJS0VMWSh4KSBfX1BBU19MSUtFTFkoeCkKICNkZWZpbmUgUEFTX1VOTElLRUxZ
KHgpIF9fUEFTX1VOTElLRUxZKHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAppbmRleCA3NDMyMWQ5NDkx
MzVkMmYxOWFkMDM3MmQ5NjQyZTg1MDljZTBjNTlhLi5lOTJmOGM4YmUwZTcxYmZjNTUxZTI3Y2Ri
ZmJjOWEyZTNmZmNjMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rl
c3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAKQEAgLTQ1MTksMjIgKzQ1MTks
MTggQEAgdm9pZCBhZGRBbGxUZXN0cygpCiAgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJF
dmVudHVhbGx5UmV0dXJuc01lbW9yeSgxMjgsIDEpKTsKICAgICAgICAgQUREX1RFU1QodGVzdFNj
YXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDEyOCwgMTAwMDApKTsKICAgICAgICAgQURE
X1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDgsIDEwMDAwKSk7Ci0g
ICAgICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9fZGVzdHJ1
Y3QoKSkgewotICAgICAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1
cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxKSk7Ci0gICAgICAgICAgICBB
RERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1h
bnVhbFNocmluaygxMjgsIDEwMDAwKSk7Ci0gICAgICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVu
Z2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluayg4LCAxMDAw
MCkpOwotICAgICAgICB9CisgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5
UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMSkpOworICAgICAgICBB
RERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1h
bnVhbFNocmluaygxMjgsIDEwMDAwKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJF
dmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDgsIDEwMDAwKSk7
CiAgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJTaHV0c0Rvd25FdmVudHVhbGx5KDY0LCAx
MDAwMCwgMSwgMSkpOwogICAgIH0KICAgICAKICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZl
bnR1YWxseVJldHVybnNNZW1vcnkoMTI4LCAxKSk7CiAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdl
ckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDEyOCwgMTAwMDApKTsKICAgICBBRERfVEVTVCh0ZXN0
U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnkoOCwgMTAwMDApKTsKLSAgICBpZiAocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0KCkpIHsKLSAgICAg
ICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhv
dXRNYW51YWxTaHJpbmsoMTI4LCAxKSk7Ci0gICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJF
dmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMTAwMDAp
KTsKLSAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5
RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoOCwgMTAwMDApKTsKLSAgICB9CisgICAgQUREX1RFU1Qo
dGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJp
bmsoMTI4LCAxKSk7CisgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5z
TWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxMDAwMCkpOworICAgIEFERF9URVNU
KHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hy
aW5rKDgsIDEwMDAwKSk7CiAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlclNodXRzRG93bkV2ZW50
dWFsbHkoNjQsIDEwMDAwLCAxLCAxKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwIGIvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0
cy5jcHAKaW5kZXggMmNmMDIxYjJhMDAzZWRhZDdjM2NjMmI0MmNiZGIzODA2MGU0NDZmYS4uZmVm
ZmNiYTZhMjU4NWNlZTQxYmQwMWU0YTllNzJiYzNhYzkyNTc1NyAxMDA2NDQKLS0tIGEvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5j
cHAKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5k
QmFzZWxpbmVUZXN0cy5jcHAKQEAgLTEwODIsNyArMTA4Miw3IEBAIHZvaWQgYWRkSXNvSGVhcFBh
cnRpYWxBbmRCYXNlbGluZVRlc3RzKCkKICAgICBTdXNwZW5kU2NhdmVuZ2VyU2NvcGUgc3VzcGVu
ZFNjYXZlbmdlcjsKICAgICAKICNpZiBQQVNfRU5BQkxFX0lTTyAmJiBQQVNfRU5BQkxFX0lTT19U
RVNUCi0gICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFudGVlZF90b19kZXN0
cnVjdCgpKSB7CisgICAgewogICAgICAgICBSdW5TY2F2ZW5nZXJGdWxseSBydW5TY2F2ZW5nZXJG
dWxseTsKICAgICAgICAgYWRkU2NhdmVuZ2VyRGVwZW5kZW50VGVzdHMoKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446075</attachid>
            <date>2021-12-06 13:19:58 -0800</date>
            <delta_ts>2021-12-06 13:27:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233851-20211206131957.patch</filename>
            <type>text/plain</type>
            <size>15673</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggZTg2Yjg0MGI2NGVhZGFk
ODUxY2IwYTUzNjUxNzEyN2UxMzg3YzZlMy4uYTVmZjgyODQ2ZmRiZWMyMDI1MDdiMGUwMWU2NWY2
MTJhNWVkNGE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTA2ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gU2V0IHB0
aHJlYWRfc2V0c3BlY2lmaWMgd2l0aCBtYXJrZXIgaW4gVExTIGRlc3RydWN0b3IgdG8gZGV0ZWN0
IFRMUyBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRMUyBoYXMgbGlmZXRpbWUgcHJvYmxlbSB0aGF0LAorCisgICAgICAgIDEuIFRM
UyBpcyBkZXN0cm95ZWQKKyAgICAgICAgMi4gVGhlIG90aGVyIFRMUyBpcyBkZXN0cm95ZWQsIGFu
ZCB0aGUgZGVzdHJ1Y3RvciBpcyBjYWxsZWQKKyAgICAgICAgMy4gVGhlIGRlc3RydWN0b3IgdG91
Y2hlcyAoMSkncyBUTFMsIHRoZW4gcmV2aXZlIFRMUyBvZiAoMSkgKGUuZy4gbGlicGFzJ3MgdGhy
ZWFkIGxvY2FsIGNhY2hlKS4KKworICAgICAgICBUbyBoYW5kbGUgdGhlc2UgY2FzZXMsIHB0aHJl
YWQgbGlicmFyeSAobGliYykgcmVwZWF0ZWRseSBjYWxscyBkZXN0cnVjdG9yIFBBU19USFJFQURf
TE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzCisgICAgICAgIHNvIHRoYXQgd2UgY2xlYW4gdXAg
cmV2aXZlZCBUTFMgYWdhaW4uCisKKyAgICAgICAgQnkgdXNpbmcgdGhpcyBtZWNoYW5pc20sIHdl
IGNhbiBlbXVsYXRlIHB0aHJlYWRfc2VsZl9pc19leGl0aW5nX25wIHNvIHRoYXQgd2UgY2FuIGF2
b2lkIHJldml2aW5nIFRMUy4KKworICAgICAgICAxLiBXaGVuIGRlc3Ryb3lpbmcgVExTLCB3ZSBz
ZXQgYSBtYXJrZXIgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIGluIHRoaXMgY2Fz
ZSkgdG8gVExTLgorICAgICAgICAyLiBEdXJpbmcgdGhlIG90aGVyIGRlc3RydWN0b3IgY2FsbHMs
IHdlIGNhbiBkZXRlY3QgdGhhdCBUTFMgaXMgZGVzdHJveWVkIGJ5IGNoZWNraW5nIHB0aHJlYWRf
Z2V0c3BlY2lmaWMoLi4uKSA9PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRC4KKyAg
ICAgICAgMy4gV2UgcmVwZWF0ZWRseSBjYWxscyB0aGUgZGVzdHJ1Y3RvciBvZiBUTFMsIGJ1dCBl
dmVyeSB0aW1lLCB3ZSBzZXQgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQuCisgICAg
ICAgICAgIFNvIGFmdGVyIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzLCBp
dCBpcyBsZWZ0LCBhbmQgd2UgYWNoaWV2ZSB0aGUgZ29hbCAoMSkgb2ZmZXJpbmcgdGhlIHdheSB0
bworICAgICAgICAgICBkZXRlY3QgdGhlIGRlc3Ryb3llZCBUTFMgYW5kICgyKSBhdm9pZGluZyBy
ZXZpdmluZyBvZiBUTFMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGl0IHdoZW4g
cHRocmVhZF9zZWxmX2lzX2V4aXRpbmdfbnAgZG9lcyBub3QgZXhpc3QuCisKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaDoKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9tb2RlKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmM6CisgICAgICAgIChkZXN0
cnVjdG9yKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY3JlYXRlKToKKyAgICAg
ICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZGVzdHJveSk6CisgICAgICAgIChwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3Jfc2xvdyk6CisgICAgICAgIChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGUuaDoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
aXNfbnVsbCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfaW1wbCk6
CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQpOgorICAgICAgICAocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfc2V0X2ltcGwpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXQpOgor
ICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2Nh
dGUuaDoKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3V0aWxzLmg6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQ
YWdlU2hhcmluZ1Rlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6YWRkQWxsVGVzdHMpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwOgor
ICAgICAgICAoYWRkSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzKToKKwogMjAyMS0xMi0w
MyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFtsaWJwYXNdIEJp
dGZpdCBhbGxvY2F0b3IgaGFzIGEgd3JvbmcgYXNzZXJ0aW9uIHdoZW4gYSBwYWdlJ3MgbWF4X2Zy
ZWUgaXMgZW5vdWdoIGZvciB0aGUgc2l6ZSBvZiBhbiBhbGxvY2F0aW9uLCBub3QgZW5vdWdoIGZv
ciB0aGF0IGFsbG9jYXRpb24ncyBzaXplIGNsYXNzLCBhbmQgdGhlIG9iamVjdCBvZiB0aGF0IHNp
emUgaXMgbm90IGFsaWduZWQgdG8gdGhlIGN1cnJlbnRseSByZXF1ZXN0ZWQgYWxpZ25tZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9wYWdlX2lubGluZXMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCmluZGV4IGM3NjViMDVhZGY0NzE0MjNlZGZiMGI4ZDAz
NmFhZmZlNmFkYWRkYmUuLjcwZDljOWZmY2NmYjg2ODg0YTE0OWRhMzMyNTI0M2QwNmMxMGJhYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhZ2VfaW5saW5lcy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCkBAIC0yNzgsNiArMjc4LDcgQEAgc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193
aXRoX21vZGUoCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0gfQogICAgIFBBU19BU1NFUlQo
ISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jaygK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRf
bG9jYWxfY2FjaGUuYyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGUuYwppbmRleCBmNzgxMDMwMzdiZmUwM2U2OTI1NTQzOTc4YWVhZDhmZTNm
MGZhN2RlLi43OTRmOTY2MDljNWQ1ODJjYjA3YzVlMzAxNTgwZWFmZjhlM2M2MGZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlLmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZS5jCkBAIC05MSwxMSArOTEsMjYgQEAgc3RhdGljIHZvaWQgZGVzdHJveShwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19sb2NrX2hvbGRfbW8K
IAogc3RhdGljIHZvaWQgZGVzdHJ1Y3Rvcih2b2lkKiBhcmcpCiB7CisgICAgc3RhdGljIGNvbnN0
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhy
ZWFkX2xvY2FsX2NhY2hlOwogICAgIAogICAgIHRocmVhZF9sb2NhbF9jYWNoZSA9IChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKilhcmc7CiAKLSAgICBkZXN0cm95KHRocmVhZF9sb2NhbF9jYWNoZSwg
cGFzX2xvY2tfaXNfbm90X2hlbGQpOworI2lmbmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NB
Tl9ERVRFQ1RfVEhSRUFEX0VYSVQKKyAgICAvKiBJZiBwdGhyZWFkX3NlbGZfaXNfZXhpdGluZ19u
cCBkb2VzIG5vdCBleGlzdCwgd2Ugc2V0IFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVE
IHRvIHRoZSBUTFMgc28gdGhhdAorICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgb2YgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkgY2FuIGRldGVjdCB3aGV0aGVyIFRMUyBpcyBkZXN0cm95
ZWQuIFNpbmNlIGl0IGlzIG5vdAorICAgICAgIE5VTEwsIHRoaXMgZGVzdHJ1Y3RvciB3aWxsIGJl
IGNhbGxlZCBvbmNlIGFnYWluIGxhdGVyLiBXZSByZXBlYXQgaW52b2tpbmcgdGhpcyBkZXN0cnVj
dG9yIFBUSFJFQURfREVTVFJVQ1RPUl9JVEVSQVRJT05TIHRpbWVzLiAqLworICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwoKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKVBBU19USFJF
QURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEKTsKKyAgICBQQVNfQVNTRVJUKCFwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2Nhbl9zZXQoKSk7CisjZW5kaWYKKworICAgIGlmICghcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9pc19udWxsKHRocmVhZF9sb2NhbF9jYWNoZSkpCisgICAgICAgIGRlc3Ryb3kodGhy
ZWFkX2xvY2FsX2NhY2hlLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisgICAgZWxzZSB7CisgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygiWyVkXSBSZXBlYXRlZCBkZXN0
cnVjdG9yIGNhbGwgZm9yIFRMUyAlcFxuIiwgZ2V0cGlkKCksIHRocmVhZF9sb2NhbF9jYWNoZSk7
CisgICAgfQogfQogCiBzdGF0aWMgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogYWxsb2NhdGVfY2Fj
aGUodW5zaWduZWQgYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KQpAQCAtMTc0LDcgKzE4OSw3IEBA
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY3JlYXRlKHZv
aWQpCiAgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRP
UihsYXlvdXRfbm9kZSkpCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfY29uc3RydWN0KGxheW91dF9ub2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUpOwogCi0gICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1wbCh0aHJlYWRfbG9jYWxfY2FjaGUpOworICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfc2V0KHRocmVhZF9sb2NhbF9jYWNoZSk7CiAgICAgCiAgICAg
cmV0dXJuIHRocmVhZF9sb2NhbF9jYWNoZTsKIH0KQEAgLTE5NCw3ICsyMDksNyBAQCB2b2lkIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfZGVzdHJveShwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2Nr
X2hvbGRfbW9kZSkKICAgICAgICAgcGFzX2xvZygiWyVkXSBUTEMgJXAgZ2V0dGluZyBkZXN0cm95
ZWRcbiIsIGdldHBpZCgpLCB0aHJlYWRfbG9jYWxfY2FjaGUpOwogICAgIGRlc3Ryb3kodGhyZWFk
X2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAotICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfc2V0X2ltcGwoTlVMTCk7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXQo
TlVMTCk7CiB9CiAKIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfZ2V0X3Nsb3cocGFzX2hlYXBfY29uZmlnKiBjb25maWcsCkBAIC0zMTIsNyArMzI3LDcgQEAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9j
YWxfYWxsb2NhdG9yX3Nsb3coCiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxs
eShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAogICAgIGlmICh0aHJlYWRfbG9jYWxfY2FjaGUgIT0g
bmV3X3RocmVhZF9sb2NhbF9jYWNoZSkKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9z
ZXRfaW1wbChuZXdfdGhyZWFkX2xvY2FsX2NhY2hlKTsKKyAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9zZXQobmV3X3RocmVhZF9sb2NhbF9jYWNoZSk7CiAgICAgCiAgICAgUEFTX0FTU0VS
VChkZXNpcmVkX2FsbG9jYXRvcl9pbmRleCA8IG5ld190aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9j
YXRvcl9pbmRleF91cHBlcl9ib3VuZCk7CiAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVzdWx0X2NyZWF0ZV9zdWNjZXNzKApAQCAtNTY2LDcgKzU4MSw3IEBAIHZvaWQgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUqIHRocmVhCiAgICAgICAgIHBhc19zY2F2ZW5nZXJfbm90aWZ5X2VsaWdpYmlsaXR5X2lmX25l
ZWRlZCgpOwogfQogCi0jaWZkZWYgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RI
UkVBRF9FWElUCisjaWYgUEFTX09TKERBUldJTikKIAogc3RhdGljIHZvaWQgc3VzcGVuZChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKIHsKQEAgLTc0MCwxNCArNzU1LDcgQEAgYm9vbCBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rp
b24gYWxsb2NhdG9yX2FjdGkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgfQogCi0jaWZkZWYgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RI
UkVBRF9FWElUCi0gICAgICAgICAgICAgICAgaWYgKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lz
X2d1YXJhbnRlZWRfdG9fZGVzdHJ1Y3QoKSkgewotICAgICAgICAgICAgICAgICAgICAvKiBXZSdy
ZSBvbiBhIHBsYXRmb3JtIHRoYXQgY2FuJ3QgZ3VhcmFudGVlIHRoYXQgdGhyZWFkIGxvY2FsIGNh
Y2hlcyBhcmUgZGVzdHJ1Y3RlZC4KLSAgICAgICAgICAgICAgICAgICAgICAgVGhlcmVmb3JlLCB3
ZSBtaWdodCBoYXZlIGEgVExDIHRoYXQgaGFzIGEgZGFuZ2xpbmcgdGhyZWFkIHBvaW50ZXIuIFNv
LCB3ZSBkb24ndAotICAgICAgICAgICAgICAgICAgICAgICBhdHRlbXB0IHRvIGRvIHRoZSBzdXNw
ZW5kIHRoaW5nLiAqLwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
ICAgICB9Ci0KKyNpZiBQQVNfT1MoREFSV0lOKQogICAgICAgICAgICAgICAgIGlmICh2ZXJib3Nl
KQogICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJOZWVkIHRvIHN1c3BlbmQgZm9yIGFsbG9j
YXRvciAlcFxuIiwgc2NhdmVuZ2VyX2RhdGEpOwogICAgICAgICAgICAgICAgIApAQCAtNzY5LDcg
Kzc3Nyw3IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc19hbGxvY2F0
b3Jfc2NhdmVuZ2VfYWN0aW9uIGFsbG9jYXRvcl9hY3RpCiAjZW5kaWYKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIAotI2lmZGVmIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9U
SFJFQURfRVhJVAorI2lmIFBBU19PUyhEQVJXSU4pCiAgICAgICAgICAgICBpZiAoZGlkX3N1c3Bl
bmQpCiAgICAgICAgICAgICAgICAgcmVzdW1lKGNhY2hlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5o
IGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZS5oCmluZGV4IDI1NzY1N2EzOTgwMjMzY2YwNzEzM2Y0MTg0NzUzMTM0ZGY4ZmUyMTIuLjlkMGU5
YTFjYjc4ZGFlOGQzNWQyN2I2ZDdlZjA3MjIzOTRkNjE4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaAorKysgYi9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgK
QEAgLTQ0LDYgKzQ0LDggQEAKICNkZWZpbmUgUEFTX0hBVkVfUFRIUkVBRF9QUklWQVRFIDAKICNl
bmRpZgogCisjZGVmaW5lIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIDEKKwogUEFT
X0JFR0lOX0VYVEVSTl9DOwogCiBzdHJ1Y3QgcGFzX21hZ2F6aW5lOwpAQCAtODMsMTAgKzg1LDIy
IEBAIFBBU19BUEkgZXh0ZXJuIHBhc19mYXN0X3RscyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zh
c3RfdGxzOwogCiAjZGVmaW5lIFBBU19USFJFQURfTE9DQUxfS0VZIF9fUFRLX0ZSQU1FV09SS19K
QVZBU0NSSVBUQ09SRV9LRVk0CiAKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfaXNfbnVsbChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkK
K3sKKyAgICByZXR1cm4gKCh1aW50cHRyX3QpY2FjaGUpIDw9IFBBU19USFJFQURfTE9DQUxfQ0FD
SEVfREVTVFJPWUVEOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2ltcGwodm9pZCkKK3sK
KyAgICByZXR1cm4gKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKVBBU19GQVNUX1RMU19HRVQoUEFT
X1RIUkVBRF9MT0NBTF9LRVksICZwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zhc3RfdGxzKTsKK30K
Kwogc3RhdGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3RyeV9nZXQodm9pZCkKIHsKLSAgICByZXR1cm4gKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUqKVBBU19GQVNUX1RMU19HRVQoCi0gICAgICAgIFBBU19USFJFQURfTE9DQUxfS0VZLCAmcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9mYXN0X3Rscyk7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZSogY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfaW1wbCgpOworICAgIGlm
IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX251bGwoY2FjaGUpKQorICAgICAgICByZXR1cm4g
TlVMTDsKKyAgICByZXR1cm4gY2FjaGU7CiB9CiAKICNpZiBQQVNfSEFWRV9QVEhSRUFEX1BSSVZB
VEUKQEAgLTk3LDQwICsxMTEsMjYgQEAgc3RhdGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQodm9pZCkKICAgICB8fCAoUEFTX1BM
QVRGT1JNKEFQUExFVFYpICYmIFBBU19QTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgJiYg
X19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCiAjZGVmaW5lIFBBU19USFJF
QURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVCAxCiAjZW5kaWYKLQotc3RhdGlj
IGlubGluZSBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFudGVlZF90b19kZXN0
cnVjdCh2b2lkKQotewotI2lmZGVmIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9U
SFJFQURfRVhJVAotICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKLX0KIAogc3RhdGljIGlubGluZSBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY2Fu
X3NldCh2b2lkKQogewogI2lmZGVmIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9U
SFJFQURfRVhJVAogICAgIHJldHVybiAhcHRocmVhZF9zZWxmX2lzX2V4aXRpbmdfbnAoKTsKICNl
bHNlCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuICgodWludHB0cl90KXBhc190aHJlYWRf
bG9jYWxfY2FjaGVfdHJ5X2dldF9pbXBsKCkpICE9IFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVT
VFJPWUVEOwogI2VuZGlmCiB9Ci0jZWxzZSAvKiBQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUgLT4g
c28gIVBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAqLwotc3RhdGljIGlubGluZSBib29sIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFudGVlZF90b19kZXN0cnVjdCh2b2lkKQotewotICAg
IHJldHVybiBmYWxzZTsKLX0KIAotc3RhdGljIGlubGluZSBib29sIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfY2FuX3NldCh2b2lkKQorc3RhdGljIGlubGluZSB2b2lkIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfc2V0X2ltcGwocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hl
KQogewotICAgIHJldHVybiB0cnVlOworICAgIFBBU19GQVNUX1RMU19TRVQoUEFTX1RIUkVBRF9M
T0NBTF9LRVksICZwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zhc3RfdGxzLCB0aHJlYWRfbG9jYWxf
Y2FjaGUpOwogfQotI2VuZGlmIC8qIFBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAtPiBzbyBlbmQg
b2YgIVBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAqLwogCi1zdGF0aWMgaW5saW5lIHZvaWQgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1wbChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJl
YWRfbG9jYWxfY2FjaGUpCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9zZXQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlKQogewogICAg
IFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KCkgfHwgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkpOwotICAgIFBBU19GQVNUX1RMU19TRVQoUEFTX1RIUkVB
RF9MT0NBTF9LRVksICZwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zhc3RfdGxzLCB0aHJlYWRfbG9j
YWxfY2FjaGUpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwodGhyZWFkX2xv
Y2FsX2NhY2hlKTsKIH0KIAogUEFTX0FQSSBzaXplX3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9z
aXplX2Zvcl9hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkodW5zaWduZWQgYWxsb2NhdG9yX2luZGV4
X2NhcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190cnlfcmVhbGxvY2F0ZS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9yZWFsbG9jYXRlLmgKaW5kZXggZGRlNTlmNTcwZWZmMGE3OGM2YTE3M2YxMmQxNTBk
OTc1OTUzZDkzYS4uOGYyNjBiOTI1MzNhZjdkMTE3MWZhYjU1YWI2YTA1Mjg2ZTJjNjRiZCAxMDA2
NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9j
YXRlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFs
bG9jYXRlLmgKQEAgLTM1NCw2ICszNTQsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGUodm9pZCogb2xk
X3B0ciwKICAgICB9IH0KICAgICAKICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQiKTsKKyAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJl
KCk7CiB9CiAKIHR5cGVkZWYgc3RydWN0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3V0aWxzLmgKaW5kZXggNzYxYTI1OGYxMTJlOTZiZDEwZWVjYzIwYWQxOWI3Zjkw
NzExMzQzNy4uMTBjZTQ4MWIyZDllMDhiNzQ2NDIxMDg5Zjg4MjhlYWQ0YTBjN2MyYSAxMDA2NDQK
LS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgKKysrIGIv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgKQEAgLTEwOCwxNCAr
MTA4LDEzIEBAIFBBU19BUEkgUEFTX05PX1JFVFVSTiBQQVNfTkVWRVJfSU5MSU5FIHZvaWQgcGFz
X3JlYWxsb2NhdGlvbl9kaWRfZmFpbChjb25zdCBjaGFyCiAKIFBBU19BUEkgUEFTX05PX1JFVFVS
TiB2b2lkIHBhc19hc3NlcnRpb25fZmFpbGVkKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBpbnQgbGlu
ZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGNvbnN0IGNoYXIqIGV4cHJlc3Npb24pOwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XbWlzc2luZy1ub3JldHVybiIKK1BBU19JR05PUkVfV0FSTklOR1NfQkVHSU4oIm1pc3Np
bmctbm9yZXR1cm4iKQogc3RhdGljIGlubGluZSB2b2lkIHBhc19hc3NlcnRpb25fZmFpbGVkX25v
cmV0dXJuX3NpbGVuY2VyKAogICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBpbnQgbGluZSwgY29u
c3QgY2hhciogZnVuY3Rpb24sIGNvbnN0IGNoYXIqIGV4cHJlc3Npb24pCiB7CiAgICAgcGFzX2Fz
c2VydGlvbl9mYWlsZWQoZmlsZW5hbWUsIGxpbmUsIGZ1bmN0aW9uLCBleHByZXNzaW9uKTsKIH0K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK1BBU19JR05PUkVfV0FSTklOR1NfRU5ECiAK
ICNkZWZpbmUgUEFTX0xJS0VMWSh4KSBfX1BBU19MSUtFTFkoeCkKICNkZWZpbmUgUEFTX1VOTElL
RUxZKHgpIF9fUEFTX1VOTElLRUxZKHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwIGIvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAppbmRleCA3NDMyMWQ5
NDkxMzVkMmYxOWFkMDM3MmQ5NjQyZTg1MDljZTBjNTlhLi5lOTJmOGM4YmUwZTcxYmZjNTUxZTI3
Y2RiZmJjOWEyZTNmZmNjMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAKQEAgLTQ1MTksMjIgKzQ1
MTksMTggQEAgdm9pZCBhZGRBbGxUZXN0cygpCiAgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5n
ZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeSgxMjgsIDEpKTsKICAgICAgICAgQUREX1RFU1QodGVz
dFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDEyOCwgMTAwMDApKTsKICAgICAgICAg
QUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDgsIDEwMDAwKSk7
Ci0gICAgICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9fZGVz
dHJ1Y3QoKSkgewotICAgICAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlS
ZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxKSk7Ci0gICAgICAgICAg
ICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91
dE1hbnVhbFNocmluaygxMjgsIDEwMDAwKSk7Ci0gICAgICAgICAgICBBRERfVEVTVCh0ZXN0U2Nh
dmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluayg4LCAx
MDAwMCkpOwotICAgICAgICB9CisgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVh
bGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMSkpOworICAgICAg
ICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91
dE1hbnVhbFNocmluaygxMjgsIDEwMDAwKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5n
ZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDgsIDEwMDAw
KSk7CiAgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJTaHV0c0Rvd25FdmVudHVhbGx5KDY0
LCAxMDAwMCwgMSwgMSkpOwogICAgIH0KICAgICAKICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2Vy
RXZlbnR1YWxseVJldHVybnNNZW1vcnkoMTI4LCAxKSk7CiAgICAgQUREX1RFU1QodGVzdFNjYXZl
bmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDEyOCwgMTAwMDApKTsKICAgICBBRERfVEVTVCh0
ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnkoOCwgMTAwMDApKTsKLSAgICBpZiAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rlc3RydWN0KCkpIHsKLSAg
ICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldp
dGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxKSk7Ci0gICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5n
ZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMTAw
MDApKTsKLSAgICAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVt
b3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoOCwgMTAwMDApKTsKLSAgICB9CisgICAgQUREX1RF
U1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxT
aHJpbmsoMTI4LCAxKSk7CisgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1
cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoMTI4LCAxMDAwMCkpOworICAgIEFERF9U
RVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFs
U2hyaW5rKDgsIDEwMDAwKSk7CiAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdlclNodXRzRG93bkV2
ZW50dWFsbHkoNjQsIDEwMDAwLCAxLCAxKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwIGIv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVU
ZXN0cy5jcHAKaW5kZXggMmNmMDIxYjJhMDAzZWRhZDdjM2NjMmI0MmNiZGIzODA2MGU0NDZmYS4u
ZmVmZmNiYTZhMjU4NWNlZTQxYmQwMWU0YTllNzJiYzNhYzkyNTc1NyAxMDA2NDQKLS0tIGEvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0
cy5jcHAKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFs
QW5kQmFzZWxpbmVUZXN0cy5jcHAKQEAgLTEwODIsNyArMTA4Miw3IEBAIHZvaWQgYWRkSXNvSGVh
cFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzKCkKICAgICBTdXNwZW5kU2NhdmVuZ2VyU2NvcGUgc3Vz
cGVuZFNjYXZlbmdlcjsKICAgICAKICNpZiBQQVNfRU5BQkxFX0lTTyAmJiBQQVNfRU5BQkxFX0lT
T19URVNUCi0gICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFudGVlZF90b19k
ZXN0cnVjdCgpKSB7CisgICAgewogICAgICAgICBSdW5TY2F2ZW5nZXJGdWxseSBydW5TY2F2ZW5n
ZXJGdWxseTsKICAgICAgICAgYWRkU2NhdmVuZ2VyRGVwZW5kZW50VGVzdHMoKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446080</attachid>
            <date>2021-12-06 13:27:16 -0800</date>
            <delta_ts>2021-12-06 14:46:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233851-20211206132716.patch</filename>
            <type>text/plain</type>
            <size>16586</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggZTg2Yjg0MGI2NGVhZGFk
ODUxY2IwYTUzNjUxNzEyN2UxMzg3YzZlMy4uZmJiOTFiNjMwZWIyZGNlMGIzNWRlMjlkZmJhNjk4
ODYxNzM0MTI0OSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTEyLTA2ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gU2V0IHB0
aHJlYWRfc2V0c3BlY2lmaWMgd2l0aCBtYXJrZXIgaW4gVExTIGRlc3RydWN0b3IgdG8gZGV0ZWN0
IFRMUyBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRMUyBoYXMgbGlmZXRpbWUgcHJvYmxlbSB0aGF0LAorCisgICAgICAgIDEuIFRM
UyBpcyBkZXN0cm95ZWQKKyAgICAgICAgMi4gVGhlIG90aGVyIFRMUyBpcyBkZXN0cm95ZWQsIGFu
ZCB0aGUgZGVzdHJ1Y3RvciBpcyBjYWxsZWQKKyAgICAgICAgMy4gVGhlIGRlc3RydWN0b3IgdG91
Y2hlcyAoMSkncyBUTFMsIHRoZW4gcmV2aXZlIFRMUyBvZiAoMSkgKGUuZy4gbGlicGFzJ3MgdGhy
ZWFkIGxvY2FsIGNhY2hlKS4KKworICAgICAgICBUbyBoYW5kbGUgdGhlc2UgY2FzZXMsIHB0aHJl
YWQgbGlicmFyeSAobGliYykgcmVwZWF0ZWRseSBjYWxscyBkZXN0cnVjdG9yIFBBU19USFJFQURf
TE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzCisgICAgICAgIHNvIHRoYXQgd2UgY2xlYW4gdXAg
cmV2aXZlZCBUTFMgYWdhaW4uCisKKyAgICAgICAgQnkgdXNpbmcgdGhpcyBtZWNoYW5pc20sIHdl
IGNhbiBlbXVsYXRlIHB0aHJlYWRfc2VsZl9pc19leGl0aW5nX25wIHNvIHRoYXQgd2UgY2FuIGF2
b2lkIHJldml2aW5nIFRMUy4KKworICAgICAgICAxLiBXaGVuIGRlc3Ryb3lpbmcgVExTLCB3ZSBz
ZXQgYSBtYXJrZXIgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIGluIHRoaXMgY2Fz
ZSkgdG8gVExTLgorICAgICAgICAyLiBEdXJpbmcgdGhlIG90aGVyIGRlc3RydWN0b3IgY2FsbHMs
IHdlIGNhbiBkZXRlY3QgdGhhdCBUTFMgaXMgZGVzdHJveWVkIGJ5IGNoZWNraW5nIHB0aHJlYWRf
Z2V0c3BlY2lmaWMoLi4uKSA9PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRC4KKyAg
ICAgICAgMy4gV2UgcmVwZWF0ZWRseSBjYWxscyB0aGUgZGVzdHJ1Y3RvciBvZiBUTFMsIGJ1dCBl
dmVyeSB0aW1lLCB3ZSBzZXQgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQuCisgICAg
ICAgICAgIFNvIGFmdGVyIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfREVTVFJPWUVEIHRpbWVzLCBp
dCBpcyBsZWZ0LCBhbmQgd2UgYWNoaWV2ZSB0aGUgZ29hbCAoMSkgb2ZmZXJpbmcgdGhlIHdheSB0
bworICAgICAgICAgICBkZXRlY3QgdGhlIGRlc3Ryb3llZCBUTFMgYW5kICgyKSBhdm9pZGluZyBy
ZXZpdmluZyBvZiBUTFMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGl0IHdoZW4g
cHRocmVhZF9zZWxmX2lzX2V4aXRpbmdfbnAgZG9lcyBub3QgZXhpc3QuCisKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaDoKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9tb2RlKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmM6CisgICAgICAgIChkZXN0
cnVjdG9yKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY3JlYXRlKToKKyAgICAg
ICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZGVzdHJveSk6CisgICAgICAgIChwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3Jfc2xvdyk6CisgICAgICAgIChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGUuaDoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
dHJ5X2dldF9pbXBsKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCk6
CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQpOgorICAgICAgICAocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1wbCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3NldCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRl
ZWRfdG9fZGVzdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c190cnlfcmVhbGxvY2F0ZS5oOgorICAgICAgICAocGFzX3RyeV9yZWFsbG9jYXRlKToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjphZGRBbGxU
ZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxp
bmVUZXN0cy5jcHA6CisgICAgICAgIChhZGRJc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMp
OgorCiAyMDIxLTEyLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW2xpYnBhc10gQml0Zml0IGFsbG9jYXRvciBoYXMgYSB3cm9uZyBhc3NlcnRpb24gd2hlbiBh
IHBhZ2UncyBtYXhfZnJlZSBpcyBlbm91Z2ggZm9yIHRoZSBzaXplIG9mIGFuIGFsbG9jYXRpb24s
IG5vdCBlbm91Z2ggZm9yIHRoYXQgYWxsb2NhdGlvbidzIHNpemUgY2xhc3MsIGFuZCB0aGUgb2Jq
ZWN0IG9mIHRoYXQgc2l6ZSBpcyBub3QgYWxpZ25lZCB0byB0aGUgY3VycmVudGx5IHJlcXVlc3Rl
ZCBhbGlnbm1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgKaW5kZXggYzc2NWIwNWFkZjQ3
MTQyM2VkZmIwYjhkMDM2YWFmZmU2YWRhZGRiZS4uNzBkOWM5ZmZjY2ZiODY4ODRhMTQ5ZGEzMzI1
MjQzZDA2YzEwYmFiZCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgKQEAgLTI3OCw2ICsy
NzgsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdl
X3N3aXRjaF9sb2NrX3dpdGhfbW9kZSgKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSB9CiAg
ICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiB0cnVl
OwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdl
X3N3aXRjaF9sb2NrKApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCmluZGV4IGY3ODEwMzAzN2JmZTAzZTY5MjU1
NDM5NzhhZWFkOGZlM2YwZmE3ZGUuLjJiNGQyM2Y0NzM4N2ZkNWM5NTQ1OWNhYzY5ZDdmYjRkYWI3
MWQ3OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190
aHJlYWRfbG9jYWxfY2FjaGUuYworKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMKQEAgLTkxLDExICs5MSwyNiBAQCBzdGF0aWMgdm9p
ZCBkZXN0cm95KHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwgcGFz
X2xvY2tfaG9sZF9tbwogCiBzdGF0aWMgdm9pZCBkZXN0cnVjdG9yKHZvaWQqIGFyZykKIHsKKyAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGU7CiAgICAgCiAgICAgdGhyZWFkX2xvY2FsX2Nh
Y2hlID0gKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKWFyZzsKIAotICAgIGRlc3Ryb3kodGhyZWFk
X2xvY2FsX2NhY2hlLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisjaWZuZGVmIFBBU19USFJFQURf
TE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVAorICAgIC8qIElmIHB0aHJlYWRfc2Vs
Zl9pc19leGl0aW5nX25wIGRvZXMgbm90IGV4aXN0LCB3ZSBzZXQgUEFTX1RIUkVBRF9MT0NBTF9D
QUNIRV9ERVNUUk9ZRUQgdG8gdGhlIFRMUyBzbyB0aGF0CisgICAgICAgc3Vic2VxdWVudCBjYWxs
cyBvZiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSBjYW4gZGV0ZWN0IHdoZXRoZXIg
VExTIGlzIGRlc3Ryb3llZC4gU2luY2UgaXQgaXMgbm90CisgICAgICAgTlVMTCwgdGhpcyBkZXN0
cnVjdG9yIHdpbGwgYmUgY2FsbGVkIG9uY2UgYWdhaW4gbGF0ZXIuIFdlIHJlcGVhdCBpbnZva2lu
ZyB0aGlzIGRlc3RydWN0b3IgUFRIUkVBRF9ERVNUUlVDVE9SX0lURVJBVElPTlMgdGltZXMuICov
CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1wbCgocGFzX3RocmVhZF9sb2NhbF9j
YWNoZSopUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ERVNUUk9ZRUQpOworICAgIFBBU19BU1NFUlQo
IXBhc190aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3NldCgpKTsKKyNlbmRpZgorCisgICAgaWYgKCgo
dWludHB0cl90KXRocmVhZF9sb2NhbF9jYWNoZSkgIT0gUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9E
RVNUUk9ZRUQpCisgICAgICAgIGRlc3Ryb3kodGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNfbG9ja19p
c19ub3RfaGVsZCk7CisgICAgZWxzZSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgcGFzX2xvZygiWyVkXSBSZXBlYXRlZCBkZXN0cnVjdG9yIGNhbGwgZm9yIFRMUyAlcFxuIiwg
Z2V0cGlkKCksIHRocmVhZF9sb2NhbF9jYWNoZSk7CisgICAgfQogfQogCiBzdGF0aWMgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogYWxsb2NhdGVfY2FjaGUodW5zaWduZWQgYWxsb2NhdG9yX2luZGV4
X2NhcGFjaXR5KQpAQCAtMTc0LDcgKzE4OSw3IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfY3JlYXRlKHZvaWQpCiAgICAgZm9yIChQQVNfVEhSRUFEX0xP
Q0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpCiAgICAgICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29uc3RydWN0KGxheW91dF9ub2RlLCB0
aHJlYWRfbG9jYWxfY2FjaGUpOwogCi0gICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1w
bCh0aHJlYWRfbG9jYWxfY2FjaGUpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0KHRo
cmVhZF9sb2NhbF9jYWNoZSk7CiAgICAgCiAgICAgcmV0dXJuIHRocmVhZF9sb2NhbF9jYWNoZTsK
IH0KQEAgLTE5NCw3ICsyMDksNyBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZGVzdHJv
eShwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKICAgICAgICAgcGFzX2xv
ZygiWyVkXSBUTEMgJXAgZ2V0dGluZyBkZXN0cm95ZWRcbiIsIGdldHBpZCgpLCB0aHJlYWRfbG9j
YWxfY2FjaGUpOwogICAgIGRlc3Ryb3kodGhyZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKIAotICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwoTlVMTCk7Cisg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXQoTlVMTCk7CiB9CiAKIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3Nsb3cocGFzX2hlYXBfY29uZmln
KiBjb25maWcsCkBAIC0zMTIsNyArMzI3LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX3Nsb3coCiAgICAgcGFz
X2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAog
ICAgIGlmICh0aHJlYWRfbG9jYWxfY2FjaGUgIT0gbmV3X3RocmVhZF9sb2NhbF9jYWNoZSkKLSAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1wbChuZXdfdGhyZWFkX2xvY2FsX2Nh
Y2hlKTsKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXQobmV3X3RocmVhZF9sb2Nh
bF9jYWNoZSk7CiAgICAgCiAgICAgUEFTX0FTU0VSVChkZXNpcmVkX2FsbG9jYXRvcl9pbmRleCA8
IG5ld190aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCk7CiAg
ICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKApAQCAt
NTY2LDcgKzU4MSw3IEBAIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9j
YXRpb25fbG9nKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhCiAgICAgICAgIHBhc19zY2F2
ZW5nZXJfbm90aWZ5X2VsaWdpYmlsaXR5X2lmX25lZWRlZCgpOwogfQogCi0jaWZkZWYgUEFTX1RI
UkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUCisjaWYgUEFTX09TKERBUldJ
TikKIAogc3RhdGljIHZvaWQgc3VzcGVuZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkK
IHsKQEAgLTc0MCwxNCArNzU1LDcgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9h
bGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24gYWxsb2NhdG9yX2FjdGkKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogCi0jaWZkZWYgUEFTX1RI
UkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUCi0gICAgICAgICAgICAgICAg
aWYgKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9fZGVzdHJ1Y3QoKSkg
ewotICAgICAgICAgICAgICAgICAgICAvKiBXZSdyZSBvbiBhIHBsYXRmb3JtIHRoYXQgY2FuJ3Qg
Z3VhcmFudGVlIHRoYXQgdGhyZWFkIGxvY2FsIGNhY2hlcyBhcmUgZGVzdHJ1Y3RlZC4KLSAgICAg
ICAgICAgICAgICAgICAgICAgVGhlcmVmb3JlLCB3ZSBtaWdodCBoYXZlIGEgVExDIHRoYXQgaGFz
IGEgZGFuZ2xpbmcgdGhyZWFkIHBvaW50ZXIuIFNvLCB3ZSBkb24ndAotICAgICAgICAgICAgICAg
ICAgICAgICBhdHRlbXB0IHRvIGRvIHRoZSBzdXNwZW5kIHRoaW5nLiAqLwotICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0KKyNpZiBQQVNfT1MoREFSV0lO
KQogICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICBwYXNf
bG9nKCJOZWVkIHRvIHN1c3BlbmQgZm9yIGFsbG9jYXRvciAlcFxuIiwgc2NhdmVuZ2VyX2RhdGEp
OwogICAgICAgICAgICAgICAgIApAQCAtNzY5LDcgKzc3Nyw3IEBAIGJvb2wgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9mb3JfYWxsKHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uIGFsbG9jYXRv
cl9hY3RpCiAjZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotI2lmZGVmIFBBU19U
SFJFQURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVAorI2lmIFBBU19PUyhEQVJX
SU4pCiAgICAgICAgICAgICBpZiAoZGlkX3N1c3BlbmQpCiAgICAgICAgICAgICAgICAgcmVzdW1l
KGNhY2hlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oCmluZGV4IDI1NzY1N2EzOTgwMjMzY2Yw
NzEzM2Y0MTg0NzUzMTM0ZGY4ZmUyMTIuLjAyMDMwM2YyZWYxMTJmYTMyMjNhMGM0YTlhZjQyN2My
ZWVlMjE1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGUuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgKQEAgLTQ0LDYgKzQ0LDE4IEBACiAjZGVmaW5l
IFBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAwCiAjZW5kaWYKIAorI2RlZmluZSBQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0RFU1RST1lFRCAxCisKKyNpZiBQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUK
KyNpZiAoUEFTX1BMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMTAwMDApIFwKKyAgICB8fCAoUEFTX1BMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApIFwKKyAgICB8fCAoUEFTX1BM
QVRGT1JNKElPUykgJiYgUEFTX1BMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApIFwKKyAgICB8fCAoUEFTX1BM
QVRGT1JNKFdBVENIT1MpICYmIFBBU19QTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgJiYg
X19XQVRDSF9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA3MDAwMCkgXAorICAgIHx8IChQQVNf
UExBVEZPUk0oQVBQTEVUVikgJiYgUEFTX1BMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAm
JiBfX1RWX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMCkKKyNkZWZpbmUgUEFTX1RI
UkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUIDEKKyNlbmRpZgorI2VuZGlm
CisKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19tYWdhemluZTsKQEAgLTgzLDI4
ICs5NSwxOSBAQCBQQVNfQVBJIGV4dGVybiBwYXNfZmFzdF90bHMgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9mYXN0X3RsczsKIAogI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0tFWSBfX1BUS19GUkFN
RVdPUktfSkFWQVNDUklQVENPUkVfS0VZNAogCi1zdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCh2b2lkKQorc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfdHJ5X2dldF9pbXBsKHZvaWQpCiB7Ci0gICAgcmV0dXJuIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKilQQVNfRkFTVF9UTFNfR0VUKAotICAgICAgICBQQVNfVEhSRUFEX0xPQ0FMX0tFWSwg
JnBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmFzdF90bHMpOworICAgIHJldHVybiAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZSopUEFTX0ZBU1RfVExTX0dFVChQQVNfVEhSRUFEX0xPQ0FMX0tFWSwgJnBh
c190aHJlYWRfbG9jYWxfY2FjaGVfZmFzdF90bHMpOwogfQogCi0jaWYgUEFTX0hBVkVfUFRIUkVB
RF9QUklWQVRFCi0jaWYgKFBBU19QTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTEwMDAwKSBcCi0gICAgfHwgKFBBU19QTEFURk9STShNQUNDQVRBTFlT
VCkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKSBcCi0gICAg
fHwgKFBBU19QTEFURk9STShJT1MpICYmIFBBU19QTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRP
UikgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKSBcCi0gICAg
fHwgKFBBU19QTEFURk9STShXQVRDSE9TKSAmJiBQQVNfUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1V
TEFUT1IpICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gNzAwMDApIFwKLSAg
ICB8fCAoUEFTX1BMQVRGT1JNKEFQUExFVFYpICYmIFBBU19QTEFURk9STShJT1NfRkFNSUxZX1NJ
TVVMQVRPUikgJiYgX19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCi0jZGVm
aW5lIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfQ0FOX0RFVEVDVF9USFJFQURfRVhJVCAxCi0jZW5k
aWYKLQotc3RhdGljIGlubGluZSBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFu
dGVlZF90b19kZXN0cnVjdCh2b2lkKQorc3RhdGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQodm9pZCkKIHsKLSNpZmRlZiBQQVNf
VEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRFQ1RfVEhSRUFEX0VYSVQKLSAgICByZXR1cm4gdHJ1
ZTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUq
IGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2ltcGwoKTsKKyNpZm5kZWYg
UEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9DQU5fREVURUNUX1RIUkVBRF9FWElUCisgICAgaWYgKCgo
dWludHB0cl90KWNhY2hlKSA9PSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RFU1RST1lFRCkKKyAg
ICAgICAgcmV0dXJuIE5VTEw7CiAjZW5kaWYKKyAgICByZXR1cm4gY2FjaGU7CiB9CiAKIHN0YXRp
YyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQodm9pZCkKQEAgLTEx
MiwyNSArMTE1LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2Nhbl9zZXQodm9pZCkKICNpZmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0NBTl9ERVRFQ1Rf
VEhSRUFEX0VYSVQKICAgICByZXR1cm4gIXB0aHJlYWRfc2VsZl9pc19leGl0aW5nX25wKCk7CiAj
ZWxzZQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiAoKHVpbnRwdHJfdClwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX3RyeV9nZXRfaW1wbCgpKSAhPSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0RF
U1RST1lFRDsKICNlbmRpZgogfQotI2Vsc2UgLyogUEFTX0hBVkVfUFRIUkVBRF9QUklWQVRFIC0+
IHNvICFQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUgKi8KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9fZGVzdHJ1Y3Qodm9pZCkKLXsKLSAg
ICByZXR1cm4gZmFsc2U7Ci19CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2Nhbl9zZXQodm9pZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3NldF9pbXBsKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNo
ZSkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBQQVNfRkFTVF9UTFNfU0VUKFBBU19USFJFQURf
TE9DQUxfS0VZLCAmcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mYXN0X3RscywgdGhyZWFkX2xvY2Fs
X2NhY2hlKTsKIH0KLSNlbmRpZiAvKiBQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUgLT4gc28gZW5k
IG9mICFQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUgKi8KIAotc3RhdGljIGlubGluZSB2b2lkIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhy
ZWFkX2xvY2FsX2NhY2hlKQorc3RhdGljIGlubGluZSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfc2V0KHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSkKIHsKICAg
ICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3NldCgpIHx8IHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpKTsKLSAgICBQQVNfRkFTVF9UTFNfU0VUKFBBU19USFJF
QURfTE9DQUxfS0VZLCAmcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mYXN0X3RscywgdGhyZWFkX2xv
Y2FsX2NhY2hlKTsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NldF9pbXBsKHRocmVhZF9s
b2NhbF9jYWNoZSk7CiB9CiAKIFBBU19BUEkgc2l6ZV90IHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
c2l6ZV9mb3JfYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRl
eF9jYXBhY2l0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdHJ5X3JlYWxsb2NhdGUuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190cnlfcmVhbGxvY2F0ZS5oCmluZGV4IGRkZTU5ZjU3MGVmZjBhNzhjNmExNzNmMTJkMTUw
ZDk3NTk1M2Q5M2EuLjhmMjYwYjkyNTMzYWY3ZDExNzFmYWI1NWFiNmEwNTI4NmUyYzY0YmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVhbGxv
Y2F0ZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVh
bGxvY2F0ZS5oCkBAIC0zNTQsNiArMzU0LDcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlKHZvaWQqIG9s
ZF9wdHIsCiAgICAgfSB9CiAgICAgCiAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBuZXZlciBiZSBy
ZWFjaGVkIik7CisgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVy
ZSgpOwogfQogCiB0eXBlZGVmIHN0cnVjdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc191dGlscy5oCmluZGV4IDc2MWEyNThmMTEyZTk2YmQxMGVlY2MyMGFkMTliN2Y5
MDcxMTM0MzcuLjEwY2U0ODFiMmQ5ZTA4Yjc0NjQyMTA4OWY4ODI4ZWFkNGEwYzdjMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCisrKyBi
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCkBAIC0xMDgsMTQg
KzEwOCwxMyBAQCBQQVNfQVBJIFBBU19OT19SRVRVUk4gUEFTX05FVkVSX0lOTElORSB2b2lkIHBh
c19yZWFsbG9jYXRpb25fZGlkX2ZhaWwoY29uc3QgY2hhcgogCiBQQVNfQVBJIFBBU19OT19SRVRV
Uk4gdm9pZCBwYXNfYXNzZXJ0aW9uX2ZhaWxlZChjb25zdCBjaGFyKiBmaWxlbmFtZSwgaW50IGxp
bmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBleHByZXNzaW9uKTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV21pc3Npbmctbm9yZXR1cm4iCitQQVNfSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJtaXNz
aW5nLW5vcmV0dXJuIikKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfYXNzZXJ0aW9uX2ZhaWxlZF9u
b3JldHVybl9zaWxlbmNlcigKICAgICBjb25zdCBjaGFyKiBmaWxlbmFtZSwgaW50IGxpbmUsIGNv
bnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBleHByZXNzaW9uKQogewogICAgIHBhc19h
c3NlcnRpb25fZmFpbGVkKGZpbGVuYW1lLCBsaW5lLCBmdW5jdGlvbiwgZXhwcmVzc2lvbik7CiB9
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitQQVNfSUdOT1JFX1dBUk5JTkdTX0VORAog
CiAjZGVmaW5lIFBBU19MSUtFTFkoeCkgX19QQVNfTElLRUxZKHgpCiAjZGVmaW5lIFBBU19VTkxJ
S0VMWSh4KSBfX1BBU19VTkxJS0VMWSh4KQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcCBiL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAKaW5kZXggNzQzMjFk
OTQ5MTM1ZDJmMTlhZDAzNzJkOTY0MmU4NTA5Y2UwYzU5YS4uZTkyZjhjOGJlMGU3MWJmYzU1MWUy
N2NkYmZiYzlhMmUzZmZjYzI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAorKysgYi9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwCkBAIC00NTE5LDIyICs0
NTE5LDE4IEBAIHZvaWQgYWRkQWxsVGVzdHMoKQogICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVu
Z2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnkoMTI4LCAxKSk7CiAgICAgICAgIEFERF9URVNUKHRl
c3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeSgxMjgsIDEwMDAwKSk7CiAgICAgICAg
IEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeSg4LCAxMDAwMCkp
OwotICAgICAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19ndWFyYW50ZWVkX3RvX2Rl
c3RydWN0KCkpIHsKLSAgICAgICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5
UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMSkpOwotICAgICAgICAg
ICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhv
dXRNYW51YWxTaHJpbmsoMTI4LCAxMDAwMCkpOwotICAgICAgICAgICAgQUREX1RFU1QodGVzdFNj
YXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhvdXRNYW51YWxTaHJpbmsoOCwg
MTAwMDApKTsKLSAgICAgICAgfQorICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1
YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluaygxMjgsIDEpKTsKKyAgICAg
ICAgQUREX1RFU1QodGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5RXZlbldpdGhv
dXRNYW51YWxTaHJpbmsoMTI4LCAxMDAwMCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVu
Z2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluayg4LCAxMDAw
MCkpOwogICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyU2h1dHNEb3duRXZlbnR1YWxseSg2
NCwgMTAwMDAsIDEsIDEpKTsKICAgICB9CiAgICAgCiAgICAgQUREX1RFU1QodGVzdFNjYXZlbmdl
ckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDEyOCwgMSkpOwogICAgIEFERF9URVNUKHRlc3RTY2F2
ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeSgxMjgsIDEwMDAwKSk7CiAgICAgQUREX1RFU1Qo
dGVzdFNjYXZlbmdlckV2ZW50dWFsbHlSZXR1cm5zTWVtb3J5KDgsIDEwMDAwKSk7Ci0gICAgaWYg
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfZ3VhcmFudGVlZF90b19kZXN0cnVjdCgpKSB7Ci0g
ICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5X
aXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMSkpOwotICAgICAgICBBRERfVEVTVCh0ZXN0U2NhdmVu
Z2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVhbFNocmluaygxMjgsIDEw
MDAwKSk7Ci0gICAgICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01l
bW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDgsIDEwMDAwKSk7Ci0gICAgfQorICAgIEFERF9U
RVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFs
U2hyaW5rKDEyOCwgMSkpOworICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJFdmVudHVhbGx5UmV0
dXJuc01lbW9yeUV2ZW5XaXRob3V0TWFudWFsU2hyaW5rKDEyOCwgMTAwMDApKTsKKyAgICBBRERf
VEVTVCh0ZXN0U2NhdmVuZ2VyRXZlbnR1YWxseVJldHVybnNNZW1vcnlFdmVuV2l0aG91dE1hbnVh
bFNocmluayg4LCAxMDAwMCkpOwogICAgIEFERF9URVNUKHRlc3RTY2F2ZW5nZXJTaHV0c0Rvd25F
dmVudHVhbGx5KDY0LCAxMDAwMCwgMSwgMSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcCBi
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5l
VGVzdHMuY3BwCmluZGV4IDJjZjAyMWIyYTAwM2VkYWQ3YzNjYzJiNDJjYmRiMzgwNjBlNDQ2ZmEu
LmZlZmZjYmE2YTI1ODVjZWU0MWJkMDFlNGE5ZTcyYmMzYWM5MjU3NTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVz
dHMuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlh
bEFuZEJhc2VsaW5lVGVzdHMuY3BwCkBAIC0xMDgyLDcgKzEwODIsNyBAQCB2b2lkIGFkZElzb0hl
YXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cygpCiAgICAgU3VzcGVuZFNjYXZlbmdlclNjb3BlIHN1
c3BlbmRTY2F2ZW5nZXI7CiAgICAgCiAjaWYgUEFTX0VOQUJMRV9JU08gJiYgUEFTX0VOQUJMRV9J
U09fVEVTVAotICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2d1YXJhbnRlZWRfdG9f
ZGVzdHJ1Y3QoKSkgeworICAgIHsKICAgICAgICAgUnVuU2NhdmVuZ2VyRnVsbHkgcnVuU2NhdmVu
Z2VyRnVsbHk7CiAgICAgICAgIGFkZFNjYXZlbmdlckRlcGVuZGVudFRlc3RzKCk7CiAgICAgfQo=
</data>
<flag name="review"
          id="471402"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>