<?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>151019</bug_id>
          
          <creation_ts>2015-11-09 07:09:28 -0800</creation_ts>
          <short_desc>Text input autocorrect=&quot;off&quot; attribute ignored on Mac</short_desc>
          <delta_ts>2022-10-11 09:38:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>246344</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Bailey">bugzilla</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>mifenton</cc>
    
    <cc>mjs</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1140350</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Bailey">bugzilla</who>
    <bug_when>2015-11-09 07:09:28 -0800</bug_when>
    <thetext>Using the autocorrect=&quot;off&quot; attribute does not seem to have any effect on desktop Safari. It works as specified here on mobile Safari: https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.html#//apple_ref/doc/uid/TP40008058-autocorrect

STR:
1. Open http://codepen.io/anon/pen/Lpgvya on mobile Safari.
2. Type a non-word (e.g. &quot;baz&quot;) into the text field.
3. Note that there is no autocorrection offered.
4. Open the same page on desktop Safari.
5. Type a non-word (e.g. &quot;baz&quot;) into the text field.
6. Note that the autocorrect popup appears (assuming it has not been disabled system-wide).

Tested on Safari 9.0.1 (11601.2.7.2), WebKit r192147, and iOS 9.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678137</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-05 16:40:58 -0700</bug_when>
    <thetext>*** Bug 215198 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678138</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-05 16:42:11 -0700</bug_when>
    <thetext>Going to use this Bugzilla bug to track a fix for &lt;rdar://problem/65061700&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678142</commentid>
    <comment_count>3</comment_count>
      <attachid>406056</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-05 16:52:24 -0700</bug_when>
    <thetext>Created attachment 406056
Just for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679218</commentid>
    <comment_count>4</comment_count>
      <attachid>406334</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-10 15:37:08 -0700</bug_when>
    <thetext>Created attachment 406334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679228</commentid>
    <comment_count>5</comment_count>
      <attachid>406334</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-10 16:07:28 -0700</bug_when>
    <thetext>Comment on attachment 406334
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Text input autocorrect=&quot;off&quot; attribute ignored on Mac

I have no doubt that we want this on for the Mac, but wouldn&apos;t we also want this on all WebKit platforms that have automatic spelling correction for much the same reasons?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679236</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-10 16:12:18 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 406334 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406334&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Text input autocorrect=&quot;off&quot; attribute ignored on Mac
&gt; 
&gt; I have no doubt that we want this on for the Mac, but wouldn&apos;t we also want
&gt; this on all WebKit platforms that have automatic spelling correction for
&gt; much the same reasons?

I think we do! This patch merely supports the attribute on macOS, though. We will want separate bugs for the other platforms where we don’t support this attribute yet (which, as I understand, are Windows, GTK, and WPE).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679444</commentid>
    <comment_count>7</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2020-08-11 10:22:12 -0700</bug_when>
    <thetext>We&apos;re adding this in part because it affects Twitter for any browser that does automatic spelling correction (as Mac Safari does, following macOS platform convention). For benefit of readers of this bug, here&apos;s a description of the Twitter issue, and my analysis of why &quot;autocorrect&quot; attribute support will fix it:

---------

Autocorrect in Twitter search field causes Twitter search to give confusingly wrong results. When you type something in the Twitter search field, a drop down menu appears with choices to click. If that something looks like a spelling or grammar error (as usernames often are), then we helpfully autocorrect it as soon as focus leaves the field. Clicking makes focus leave the field. And Twitter immediately pops off the menu when the correction is entered, and does this before processing the click, when then clicks through to a trend below.

Thus, you get a random trend search instead of the user you meant to click on.

## Sample steps to reproduce:
1. Go to https://twitter.com on a Mac in Safari
2. Click in the search field in the upper right
3. Type greendog (no space)
4. Click on a search result, e.g. the third, Green Dog Films

## Results:
The browser goes to a search page for a random trend. In the case of my screen recording, it goes to In-N-Out. WAT. 

## Other browsers:

Mac Chrome and MacFirefox don’t experience this bug because they do not seem to have autocorrect at all; they highlight what they think is a spelling error but don’t auto fix it.

iPad and iPhone Safari don’t experience the bug either. Why? Twitter loads the search field with many attributes to try to suppress autocorrect:

&lt;input aria-activedescendant=&quot;typeaheadFocus-0.8970720798063739&quot; aria-autocomplete=&quot;list&quot; aria-label=&quot;Search query&quot; aria-owns=&quot;typeaheadDropdown-3&quot; autocapitalize=&quot;sentences&quot; autocomplete=&quot;off&quot; autocorrect=&quot;off&quot; placeholder=&quot;Search Twitter&quot; role=&quot;combobox&quot; spellcheck=&quot;true&quot; enterkeyhint=&quot;search&quot; type=&quot;text&quot; dir=&quot;auto&quot; data-focusable=&quot;true&quot; class=&quot;r-30o5oe r-1niwhzg r-17gur6a r-1yadl64 r-deolkf r-homxoj r-poiln3 r-7cikom r-1ny4l3l r-1sp51qo r-1lrr6ok r-1dz5y72 r-1ttztb7 r-13qz1uu&quot; data-testid=&quot;SearchBox_Search_Input&quot; value=&quot;greendog&quot; aria-expanded=&quot;true&quot;&gt;

I believe the one doing the trick on iOS is `autocorrect=off`. This is a nonstandard attribute that we support on iOS only. I suspect enabling it for macOS would fix this egregious Twitter bug.

In addition to that, we should probably standardize autocorrect=off, as this Twitter search bug demonstrates the use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679451</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-08-11 10:32:07 -0700</bug_when>
    <thetext>google.com also has &quot;autocorrect=off&quot; on the main search field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679508</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-11 12:46:02 -0700</bug_when>
    <thetext>Committed r265509: &lt;https://trac.webkit.org/changeset/265509&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406334.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406056</attachid>
            <date>2020-08-05 16:52:24 -0700</date>
            <delta_ts>2020-08-10 15:37:07 -0700</delta_ts>
            <desc>Just for EWS</desc>
            <filename>bug-151019-20200805165223.patch</filename>
            <type>text/plain</type>
            <size>3211</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRiODFlZGU2ODU3NGFkNzZmOTk1NGQ3
NjhkODk3NzJkNDkzMTFlZmYuLjY5YTM4ZDZkNjU2YTY3MTQ1N2QzYmVhYjE5ODVmODIxYTE2MThm
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDgtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4dCBpbnB1dCBhdXRvY29ycmVjdD0ib2Zm
IiBhdHRyaWJ1dGUgaWdub3JlZCBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MTAxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUwNjE3
MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKEVX
UyB0ZXN0IHJ1bikuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAy
MDIwLTA4LTA0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0pTQ10gVXNlIExhenlOZXZlckRlc3Ryb3llZCAmIHN0ZDo6Y2FsbF9vbmNlIGZvciBjb21wbGV4
IHNpbmdsZXRvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NzZlMjcwYzY1ODBiOWE2MjgwMDNmMWEyNmUwOTBk
NTI4ZmM4MjBmLi4yM2ZhNWU2MWVlZDMyYzg2YTllYzk5MTZlMDViMGRmNzQ3OWZkYWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDgtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4dCBpbnB1dCBhdXRvY29ycmVjdD0ib2Zm
IiBhdHRyaWJ1dGUgaWdub3JlZCBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MTAxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUwNjE3
MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKEVX
UyB0ZXN0IHJ1bikuCisKKyAgICAgICAgKiBlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aXNB
dXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKToKKwogMjAyMC0wOC0wNSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjUyNjYp
IER1bXBSZW5kZXJUcmVlIGNyYXNoIGF0IFdlYktpdEF1ZGlvTGlzdGVuZXI6OmRvcHBsZXJGYWN0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCA2MTVlYjAyY2E5ZGY1MzYw
YWZhY2JiZDgwNmQ5YTc4NjUzYmUxYjhmLi40OGU4MjBlNzRkNDdhMmIxNmU1YTg1ZGU2ZTE3Yjc0
ZDg2MDkxMjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC04Nyw3ICs4
Nyw3IEBACiAjZGVmaW5lIEVOQUJMRV9BVVRPQ0FQSVRBTElaRSAxCiAjZW5kaWYKIAotI2lmICFk
ZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVDVCkgJiYgIVBMQVRGT1JNKE1BQykKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfQVVUT0NPUlJFQ1QpCiAjZGVmaW5lIEVOQUJMRV9BVVRPQ09SUkVDVCAxCiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci5jcHAKaW5kZXggMjVhYWNjZmNmNDBjYWZhOGU3M2I5MmI5MmZjNGE4OGY1OTJhODI5
ZC4uMzgwMGFhOTFmODBmZmI1N2YzNzAyYmVkOTIzY2M0OWE0ZGU1ODZkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCkBA
IC0zMzcsNyArMzM3LDIzIEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFuZGxl
QWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1CiAKIGJvb2wgQWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6aXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVk
KCkKIHsKLSAgICByZXR1cm4gZWRpdG9yQ2xpZW50KCkgJiYgZWRpdG9yQ2xpZW50KCktPmlzQXV0
b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpOworICAgIGlmICghZWRpdG9yQ2xpZW50
KCkgfHwgIWVkaXRvckNsaWVudCgpLT5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgRU5BQkxFKEFVVE9DT1JSRUNUKQor
ICAgIGF1dG8gcG9zaXRpb24gPSBtX2RvY3VtZW50LnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0
YXJ0KCk7CisgICAgaWYgKGF1dG8gZWRpdGFibGVSb290ID0gcG9zaXRpb24ucm9vdEVkaXRhYmxl
RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MRWxlbWVudD4oZWRpdGFibGVSb290KSAm
JiAhZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCplZGl0YWJsZVJvb3QpLnNob3VsZEF1dG9jb3JyZWN0
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGF1dG8gY29u
dHJvbCA9IGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChwb3NpdGlvbikpIHsKKyAgICAgICAgaWYg
KCFjb250cm9sLT5zaG91bGRBdXRvY29ycmVjdCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIEZsb2F0UmVjdCBBbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyOjpyb290Vmlld1JlY3RGb3JSYW5nZShjb25zdCBTaW1wbGVS
YW5nZSYgcmFuZ2UpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406334</attachid>
            <date>2020-08-10 15:37:08 -0700</date>
            <delta_ts>2020-08-11 12:46:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151019-20200810153707.patch</filename>
            <type>text/plain</type>
            <size>20893</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU0ZTRlYWQxNWM1ZWNlYjM4OWQ5ZGZk
ZjFhYzUxYTA5ODZkODVmYzYuLmQxMDE5MmZjOWM5YmU1MWIzZGM4NTcwOTFjMGIxNjZjMjI1OTZj
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDgtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4dCBpbnB1dCBhdXRvY29ycmVjdD0ib2Zm
IiBhdHRyaWJ1dGUgaWdub3JlZCBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MTAxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUwNjE3
MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOiBUdXJuIHRoZSBmZWF0dXJlIG9uIGZvciBtYWNPUy4K
KwogMjAyMC0wOC0wOSAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVs
b2FkIGdyYXBoaWNzIGRyaXZlcnMgaW4gTWFjIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2OGU5
MzQwYzFlYjlmMzdlMDliOGFiYTc5ZTkwZTRmMmZjNjQxOGMwLi5lYzQwM2Q0ZTNjYmFlMjBkN2Ix
YjY1YjU3YTM5ZjNkMDE3YmJjZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAt
MDgtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
VGV4dCBpbnB1dCBhdXRvY29ycmVjdD0ib2ZmIiBhdHRyaWJ1dGUgaWdub3JlZCBvbiBNYWMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTAxOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjUwNjE3MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBgYXV0b2NvcnJlY3Rg
IGF0dHJpYnV0ZSBvbiBtYWNPUywgYnkgbm90IHNob3dpbmcgdGhlIGF1dG9tYXRpYyBzcGVsbCBj
aGVja2luZyBwb3B1cCBvcgorICAgICAgICBhdXRvbWF0aWNhbGx5IGNvcnJlY3RpbmcgbWlzc3Bl
bGxlZCB3b3JkcyBpZiB0aGUgcm9vdCBlZGl0YWJsZSBlbGVtZW50IGhhcyBgYXV0b2NvcnJlY3Q9
Im9mZiJgLgorCisgICAgICAgIFRlc3RzOiAgZWRpdGluZy9pbnB1dC9jb2NvYS9hdXRvY29ycmVj
dC1vZmYuaHRtbAorICAgICAgICAgICAgICAgIGVkaXRpbmcvaW5wdXQvY29jb2EvYXV0b2NvcnJl
Y3Qtb24uaHRtbAorCisgICAgICAgICogZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmlzQXV0
b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCk6CisKIDIwMjAtMDgtMDkgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2
MDgzMSk6IFdlYiBwcm9jZXNzIGNyYXNoZXMgdW5kZXIgRWRpdG9yOjpzZXRDb21wb3NpdGlvbigp
IGFmdGVyIG5hdmlnYXRpbmcgd2l0aCBtYXJrZWQgdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi
bGVDb2NvYS5oCmluZGV4IGI4ZDhlNjlkNDIzNWI3ZDNkMjA5YWI2NzczOGNmZTZjYWM3YjQyYzIu
LmFmODNlOTUxNjAwZmU5ZDQxYjQ1MTFmMDQ5MGJlZmMxZjczNTRmZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTg3LDcgKzg3LDcgQEAKICNkZWZpbmUgRU5BQkxFX0FV
VE9DQVBJVEFMSVpFIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0FVVE9DT1JSRUNU
KSAmJiAhUExBVEZPUk0oTUFDKQorI2lmICFkZWZpbmVkKEVOQUJMRV9BVVRPQ09SUkVDVCkKICNk
ZWZpbmUgRU5BQkxFX0FVVE9DT1JSRUNUIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAppbmRleCAyNWFhY2Nm
Y2Y0MGNhZmE4ZTczYjkyYjkyZmM0YTg4ZjU5MmE4MjlkLi4zODAwYWE5MWY4MGZmYjU3ZjM3MDJi
ZWQ5MjNjYzQ5YTRkZTU4NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKQEAgLTMzNyw3ICszMzcsMjMgQEAgdm9pZCBB
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpoYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChj
b25zdCBTdHJpbmcmIHJlc3UKIAogYm9vbCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjppc0F1
dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKQogewotICAgIHJldHVybiBlZGl0b3JD
bGllbnQoKSAmJiBlZGl0b3JDbGllbnQoKS0+aXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25F
bmFibGVkKCk7CisgICAgaWYgKCFlZGl0b3JDbGllbnQoKSB8fCAhZWRpdG9yQ2xpZW50KCktPmlz
QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyNpZiBFTkFCTEUoQVVUT0NPUlJFQ1QpCisgICAgYXV0byBwb3NpdGlvbiA9IG1fZG9j
dW1lbnQuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKTsKKyAgICBpZiAoYXV0byBlZGl0
YWJsZVJvb3QgPSBwb3NpdGlvbi5yb290RWRpdGFibGVFbGVtZW50KCkpIHsKKyAgICAgICAgaWYg
KGlzPEhUTUxFbGVtZW50PihlZGl0YWJsZVJvb3QpICYmICFkb3duY2FzdDxIVE1MRWxlbWVudD4o
KmVkaXRhYmxlUm9vdCkuc2hvdWxkQXV0b2NvcnJlY3QoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBpZiAoYXV0byBjb250cm9sID0gZW5jbG9zaW5nVGV4dEZvcm1D
b250cm9sKHBvc2l0aW9uKSkgeworICAgICAgICBpZiAoIWNvbnRyb2wtPnNob3VsZEF1dG9jb3Jy
ZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI2VuZGlmCisKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogRmxvYXRSZWN0IEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnJv
b3RWaWV3UmVjdEZvclJhbmdlKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkgY29uc3QKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3YTY0ZWMwYzNhNDA5MTY2MTgxZGVjN2YxMGM4Yzc0YmE1NTMxMGEwLi4wNWI1Y2YxNWFmZWQ3
OWYwMTJiMzhlNTdjNGZjODhmZjNiMGYwOTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAt
MDgtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
VGV4dCBpbnB1dCBhdXRvY29ycmVjdD0ib2ZmIiBhdHRyaWJ1dGUgaWdub3JlZCBvbiBNYWMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTAxOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjUwNjE3MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZXhpc3RpbmcgdGVzdCBgZmFzdC9ldmVu
dHMvaW9zL2NvbnRlbnRlZGl0YWJsZS1hdXRvY29ycmVjdC5odG1sYCBpbnRvIGBlZGl0aW5nL2lu
cHV0L2NvY29hYCwgYW5kCisgICAgICAgIHJlZmFjdG9yIGl0IHNvIHRoYXQgaXQ6CisgICAgICAg
IC0gICBXb3JrcyBvbiBib3RoIGlPUyBhbmQgbWFjT1MuCisgICAgICAgIC0gICBUZXN0cyBib3Ro
IHRoZSBgY29udGVudGVkaXRhYmxlYCBjYXNlIGFuZCB0aGUgZm9ybSBjb250cm9sIGNhc2UuCisg
ICAgICAgIC0gICBJcyBzcGxpdCBpbnRvIHR3byB0ZXN0czogb25lIG9mIHdoaWNoIHVzZXMgYXV0
b2NvcnJlY3Q9Im9mZiIgYnkgdHlwaW5nICJUc2V0IiBhbmQgZXhwZWN0aW5nIGl0IHRvIHJlbWFp
bgorICAgICAgICAgICAgYXMtaXMsIGFuZCBhIHNlY29uZCB0ZXN0IHRoYXQgdXNlcyBhdXRvY29y
cmVjdD0ib24iIGFuZCB2ZXJpZmllcyB0aGF0ICJUc2V0IiBpcyBhdXRvY29ycmVjdGVkIHRvICJU
ZXN0IiwKKyAgICAgICAgICAgIGZpcmluZyBhbiBpbnB1dCBldmVudCB3aXRoIGBpbnB1dFR5cGVg
IGAiaW5zZXJ0UmVwbGFjZW1lbnRUZXh0ImAgaW4gdGhlIHByb2Nlc3MuCisKKyAgICAgICAgKiBU
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGVkaXRpbmcvaW5wdXQvY29jb2EvYXV0b2NvcnJl
Y3Qtb2ZmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pbnB1dC9jb2Nv
YS9hdXRvY29ycmVjdC1vZmYuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pbnB1dC9j
b2NvYS9hdXRvY29ycmVjdC1vbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvaW5wdXQvY29jb2EvYXV0b2NvcnJlY3Qtb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvaW9zL2NvbnRlbnRlZGl0YWJsZS1hdXRvY29ycmVjdC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL2NvbnRlbnRlZGl0YWJsZS1hdXRvY29y
cmVjdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL2RvbS9kb20tc3RhdGljLXByb3BlcnR5
LWZvci1pbi1pdGVyYXRpb24tZXhwZWN0ZWQudHh0OgorCisgICAgICAgIFJlYmFzZWxpbmUgYSBj
b3VwbGUgb2YgZXhpc3RpbmcgbGF5b3V0IHRlc3RzLCBhcyB3ZWxsLgorCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9q
cy9kb20vZG9tLXN0YXRpYy1wcm9wZXJ0eS1mb3ItaW4taXRlcmF0aW9uLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0wOC0wOCAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
R2x5cGhCdWZmZXJzIHJlcXVpcmVkIGluIHRoZSBmYXN0IHRleHQgY29kZXBhdGgKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDIzZDI1OWRlYzYxMjk5MzBjMzU1MTkwY2E5ZDhmNjgwNzI0OTBjYjEuLmM2
ZjliOTExMDM5YmI3NjI2ZWJmMGEyNmE2NjNiZTFlMDZiNzgxYjEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMjAsNiArMjAsNyBAQCBlZGl0aW5nL21hYyBbIFNraXAgXQogZWRpdGluZy9jYXJldC9p
b3MgWyBTa2lwIF0KIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uIFsgU2tpcCBdCiBlZGl0aW5nL2V4
ZWNDb21tYW5kL2lvcyBbIFNraXAgXQorZWRpdGluZy9pbnB1dC9jb2NvYSBbIFNraXAgXQogZWRp
dGluZy9pbnB1dC9pb3MgWyBTa2lwIF0KIGVkaXRpbmcvZmluZCBbIFNraXAgXQogZWRpdGluZy9w
YXN0ZWJvYXJkL2d0ayBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9p
bnB1dC9jb2NvYS9hdXRvY29ycmVjdC1vZmYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9pbnB1dC9jb2NvYS9hdXRvY29ycmVjdC1vZmYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZhMmZmN2UwOGY2YTQ2YTg3MmE1YTViNzBiYWE2MWMxMDQ5YmJlZTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0L2NvY29hL2F1dG9jb3JyZWN0LW9mZi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGF1dG9j
b3JyZWN0PW9mZiBkaXNhYmxlcyBhdXRvY29ycmVjdGlvbi4gVG8gbWFudWFsbHkgdGVzdCwgdHlw
ZSAnVHNldCcgaW50byBib3RoIGVkaXRhYmxlIGFyZWFzIGFuZCBhIHBlcmlvZCwgYW5kIHZlcmlm
eSB0aGF0IGl0IGlzIG5vdCBhdXRvY29ycmVjdGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKK1BBU1MgY29udGVudGVkaXRhYmxlLnRleHRDb250ZW50IGlzICJUc2V0LiIKK1BBU1Mg
dGV4dGFyZWEudmFsdWUgaXMgIlRzZXQuIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5w
dXQvY29jb2EvYXV0b2NvcnJlY3Qtb2ZmLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0
L2NvY29hL2F1dG9jb3JyZWN0LW9mZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3Yjc0OThkODc2ODg3YmY4
NzdjYzEwY2NmNjM2OTc5ODBjN2IwZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2lucHV0L2NvY29hL2F1dG9jb3JyZWN0LW9mZi5odG1sCkBAIC0wLDAgKzEsNzcgQEAK
KzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmll
d3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLjAsIHdpZHRoPWRldmljZS13aWR0aCwgdXNlci1z
Y2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgIGRpdltjb250ZW50ZWRpdGFibGVd
LCB0ZXh0YXJlYSB7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgZm9udC1zaXplOiAyNHB4OworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0
b21hdG87CisgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxkaXYgY29udGVudGVkaXRhYmxlIGF1dG9jb3JyZWN0PSJvZmYiPjwv
ZGl2PgorICAgIDx0ZXh0YXJlYSBhdXRvY29ycmVjdD0ib2ZmIj48L3RleHRhcmVhPgorICAgIDxw
cmUgaWQ9ImRlc2NyaXB0aW9uIj48L3ByZT4KKyAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4K
KyAgICA8c2NyaXB0PgorICAgIGNvbnN0IHN0cmluZ1RvVHlwZSA9ICJUc2V0LiI7CisgICAgd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCBhdXRvY29ycmVjdD1vZmYgZGlzYWJsZXMgYXV0b2NvcnJlY3Rpb24uIFRvIG1h
bnVhbGx5IHRlc3QsIHR5cGUgJ1RzZXQnIGludG8gYm90aCBlZGl0YWJsZSBhcmVhcyBhbmQgYSBw
ZXJpb2QsIGFuZCB2ZXJpZnkgdGhhdCBpdCBpcyBub3QgYXV0b2NvcnJlY3RlZC4iKTsKKworICAg
IGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3RGb3JFbGVtZW50KGVsZW1lbnQsIHN0cmluZ1RvVHlwZSkK
KyAgICB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24oZWxlbWVudCk7
CisKKyAgICAgICAgZm9yIChsZXQgY2hhcmFjdGVyIG9mIFsuLi5zdHJpbmdUb1R5cGVdKSB7Cisg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkg
PT4geworICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cudGVzdFJ1bm5lciA/IFVJSGVscGVy
LnR5cGVDaGFyYWN0ZXIoY2hhcmFjdGVyKSA6IFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICAg
ICAgfSwgZWxlbWVudCwgImlucHV0Iik7CisgICAgICAgIH0KKworICAgICAgICBlbGVtZW50LmJs
dXIoKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsKKyAgICB9CisKKyAgICBhZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnNldENvbnRpbnVvdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnNldFNwZWxs
Q2hlY2tlclJlc3VsdHMoeworICAgICAgICAgICAgICAgICJUc2V0LiI6IFsKKyAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgInJlcGxhY2VtZW50IjogIlRlc3Qi
LAorICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiY29ycmVjdGlvbiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAiZnJvbSI6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAidG8i
OiA0CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgaW50ZXJuYWxzLnNldEF1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dEVuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0QXV0b21hdGljU3BlbGxp
bmdDb3JyZWN0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnRlbnRl
ZGl0YWJsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdltjb250ZW50ZWRpdGFibGVdIik7
CisgICAgICAgIHRleHRhcmVhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidGV4dGFyZWEiKTsK
KworICAgICAgICBhd2FpdCBydW5UZXN0Rm9yRWxlbWVudChjb250ZW50ZWRpdGFibGUsIHN0cmlu
Z1RvVHlwZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY29udGVudGVkaXRhYmxl
LnRleHRDb250ZW50Iiwgc3RyaW5nVG9UeXBlKTsKKworICAgICAgICBhd2FpdCBydW5UZXN0Rm9y
RWxlbWVudCh0ZXh0YXJlYSwgc3RyaW5nVG9UeXBlKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJ0ZXh0YXJlYS52YWx1ZSIsIHN0cmluZ1RvVHlwZSk7CisKKyAgICAgICAgY29udGVu
dGVkaXRhYmxlLnJlbW92ZSgpOworICAgICAgICB0ZXh0YXJlYS5yZW1vdmUoKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9pbnB1dC9jb2NvYS9hdXRvY29ycmVjdC1vbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2lucHV0L2NvY29hL2F1dG9jb3JyZWN0LW9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lYjcxZjUxYjQ4YTk0OTEyZDMxZjYxY2YyYzYxMTIzYzJiMWZjYTVlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnB1dC9jb2NvYS9hdXRvY29ycmVjdC1vbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGF1
dG9jb3JyZWN0aW9uPW9uIGVuYWJsZXMgYXV0b2NvcnJlY3Rpb24uIFRvIG1hbnVhbGx5IHRlc3Qs
IHR5cGUgJ1RzZXQnIGludG8gYm90aCBlZGl0YWJsZSBhcmVhcyBhbmQgYSBwZXJpb2QsIGFuZCB2
ZXJpZnkgdGhhdCBpdCBpcyBub3QgYXV0b2NvcnJlY3RlZC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCitQQVNTIGluc2VydGVkVGV4dCBiZWNhbWUgdHJ1ZQorUEFTUyBpbnNlcnRlZFRl
eHQgYmVjYW1lIHRydWUKK1BBU1MgaW5zZXJ0ZWRUZXh0IGJlY2FtZSB0cnVlCitQQVNTIGluc2Vy
dGVkVGV4dCBiZWNhbWUgdHJ1ZQorUEFTUyBpbnNlcnRlZFRleHQgYmVjYW1lIHRydWUKK1BBU1Mg
aW5zZXJ0ZWRSZXBsYWNlbWVudFRleHQgYmVjYW1lIHRydWUKK1BBU1MgY29udGVudGVkaXRhYmxl
LnRleHRDb250ZW50IGlzICJUZXN0LiIKK1BBU1MgaW5zZXJ0ZWRUZXh0IGJlY2FtZSB0cnVlCitQ
QVNTIGluc2VydGVkVGV4dCBiZWNhbWUgdHJ1ZQorUEFTUyBpbnNlcnRlZFRleHQgYmVjYW1lIHRy
dWUKK1BBU1MgaW5zZXJ0ZWRUZXh0IGJlY2FtZSB0cnVlCitQQVNTIGluc2VydGVkVGV4dCBiZWNh
bWUgdHJ1ZQorUEFTUyBpbnNlcnRlZFJlcGxhY2VtZW50VGV4dCBiZWNhbWUgdHJ1ZQorUEFTUyB0
ZXh0YXJlYS52YWx1ZSBpcyAiVGVzdC4iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnB1
dC9jb2NvYS9hdXRvY29ycmVjdC1vbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnB1dC9j
b2NvYS9hdXRvY29ycmVjdC1vbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNDZkM2MxYmY0NTQ2OGNlMzA4
OTc2N2NiOGNkZDc1MWE3N2RlMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL2lucHV0L2NvY29hL2F1dG9jb3JyZWN0LW9uLmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFE
T0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9y
dD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCwgd2lkdGg9ZGV2aWNlLXdpZHRoLCB1c2VyLXNjYWxh
YmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgZGl2W2NvbnRlbnRlZGl0YWJsZV0sIHRl
eHRhcmVhIHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgICAgICBmb250LXNpemU6IDI0cHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRvbWF0
bzsKKyAgICAgICAgbWFyZ2luOiAxMHB4OworICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+CisgICAgPGRpdiBjb250ZW50ZWRpdGFibGUgYXV0b2NvcnJlY3Q9Im9uIj48L2Rpdj4K
KyAgICA8dGV4dGFyZWEgYXV0b2NvcnJlY3Q9Im9uIj48L3RleHRhcmVhPgorICAgIDxwcmUgaWQ9
ImRlc2NyaXB0aW9uIj48L3ByZT4KKyAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKyAgICA8
c2NyaXB0PgorICAgIGNvbnN0IHN0cmluZ1RvVHlwZSA9ICJUc2V0LiI7CisgICAgY29uc3QgYXV0
b2NvcnJlY3RlZFN0cmluZyA9ICJUZXN0LiI7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworICAgIHdpbmRvdy5pbnNlcnRlZFRleHQgPSBmYWxzZTsKKyAgICB3aW5kb3cuaW5zZXJ0
ZWRSZXBsYWNlbWVudFRleHQgPSBmYWxzZTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgYXV0b2NvcnJlY3Rpb249b24gZW5hYmxlcyBhdXRvY29ycmVjdGlvbi4gVG8g
bWFudWFsbHkgdGVzdCwgdHlwZSAnVHNldCcgaW50byBib3RoIGVkaXRhYmxlIGFyZWFzIGFuZCBh
IHBlcmlvZCwgYW5kIHZlcmlmeSB0aGF0IGl0IGlzIG5vdCBhdXRvY29ycmVjdGVkLiIpOworCisg
ICAgZnVuY3Rpb24gaGFuZGxlSW5wdXQoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50LmlucHV0
VHlwZSA9PT0gImluc2VydFRleHQiKQorICAgICAgICAgICAgd2luZG93Lmluc2VydGVkVGV4dCA9
IHRydWU7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LmlucHV0VHlwZSA9PT0gImluc2VydFJlcGxh
Y2VtZW50VGV4dCIpCisgICAgICAgICAgICB3aW5kb3cuaW5zZXJ0ZWRSZXBsYWNlbWVudFRleHQg
PSB0cnVlOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3RGb3JFbGVtZW50KGVs
ZW1lbnQsIHN0cmluZ1RvVHlwZSkKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJ
bnB1dFNlc3Npb24oZWxlbWVudCk7CisKKyAgICAgICAgd2luZG93Lmluc2VydGVkUmVwbGFjZW1l
bnRUZXh0ID0gZmFsc2U7CisKKyAgICAgICAgZm9yIChsZXQgY2hhcmFjdGVyIG9mIFsuLi5zdHJp
bmdUb1R5cGVdKSB7CisgICAgICAgICAgICB3aW5kb3cuaW5zZXJ0ZWRUZXh0ID0gZmFsc2U7Cisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIudHlwZUNoYXJhY3RlcihjaGFyYWN0ZXIpOworICAgICAgICAgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiBzaG91bGRCZWNvbWVFcXVhbCgiaW5zZXJ0ZWRUZXh0IiwgInRy
dWUiLCByZXNvbHZlKSk7CisgICAgICAgIH0KKworICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHNob3VsZEJlY29tZUVxdWFsKCJpbnNlcnRlZFJlcGxhY2VtZW50VGV4dCIsICJ0
cnVlIiwgcmVzb2x2ZSkpOworCisgICAgICAgIGVsZW1lbnQuYmx1cigpOworCisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JL
ZXlib2FyZFRvSGlkZSgpOworICAgIH0KKworICAgIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBh
c3luYyAoKSA9PiB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIuc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHRydWUp
OworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuc2V0U3BlbGxDaGVja2VyUmVzdWx0cyh7Cisg
ICAgICAgICAgICAgICAgIlRzZXQuIjogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAicmVwbGFjZW1lbnQiOiAiVGVzdCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAidHlwZSI6ICJjb3JyZWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJm
cm9tIjogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0byI6IDQKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICBpbnRlcm5hbHMuc2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgICAgIGludGVybmFscy5zZXRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVk
KHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgY29udGVudGVkaXRhYmxlID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiZGl2W2NvbnRlbnRlZGl0YWJsZV0iKTsKKyAgICAgICAgY29udGVudGVk
aXRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgaGFuZGxlSW5wdXQpOworICAgICAgICB0
ZXh0YXJlYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRleHRhcmVhIik7CisgICAgICAgIHRl
eHRhcmVhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgaGFuZGxlSW5wdXQpOworCisgICAgICAg
IGF3YWl0IHJ1blRlc3RGb3JFbGVtZW50KGNvbnRlbnRlZGl0YWJsZSwgc3RyaW5nVG9UeXBlKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjb250ZW50ZWRpdGFibGUudGV4dENvbnRl
bnQiLCBhdXRvY29ycmVjdGVkU3RyaW5nKTsKKworICAgICAgICBhd2FpdCBydW5UZXN0Rm9yRWxl
bWVudCh0ZXh0YXJlYSwgc3RyaW5nVG9UeXBlKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ0ZXh0YXJlYS52YWx1ZSIsIGF1dG9jb3JyZWN0ZWRTdHJpbmcpOworCisgICAgICAgIGNv
bnRlbnRlZGl0YWJsZS5yZW1vdmUoKTsKKyAgICAgICAgdGV4dGFyZWEucmVtb3ZlKCk7CisgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2lvcy9jb250ZW50ZWRpdGFibGUtYXV0b2NvcnJlY3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL2NvbnRlbnRlZGl0YWJsZS1hdXRvY29ycmVj
dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmMTEzOWNmNjc2
ZjMyZjhmMWUyNDEyNTQxN2JhNGQwODIwNWU1YjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL2NvbnRlbnRl
ZGl0YWJsZS1hdXRvY29ycmVjdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICsw
LDAgQEAKLVRvIG1hbnVhbGx5IHRlc3QsIHR5cGUgJ1RpJyBpbnRvIHRoZSBjb250ZW50ZWRpdGFi
bGUgYW5kIGEgc3BhY2UuIFRoZSAnVGknIHNob3VsZCBub3QgYmUgYXV0b2NvcnJlY3RlZC4KLQot
V2l0aCBhdXRvY29ycmVjdCBvZmYsIHRoZSByZXN1bHQgaXM6ICJUaSIKLVdpdGggYXV0b2NvcnJl
Y3Qgb24sIHRoZSByZXN1bHQgaXM6ICJUbyIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW9zL2NvbnRlbnRlZGl0YWJsZS1hdXRvY29ycmVjdC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvaW9zL2NvbnRlbnRlZGl0YWJsZS1hdXRvY29ycmVjdC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmI1YzM4OTRhYmI5MTQ2MGNlZGFhNDhkY2Q5MTYw
M2ZjYWU5NmNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9jb250ZW50ZWRpdGFibGUtYXV0b2NvcnJlY3Qu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotCi08
aHRtbD4KLQotPGhlYWQ+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRp
YWwtc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0PgotICAgICAgICBs
ZXQgd3JpdGUgPSBtZXNzYWdlID0+IG91dHB1dC5pbm5lckhUTUwgKz0gbWVzc2FnZSArICI8YnI+
IjsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IHJlbWFpbmluZ0lucHV0RXZlbnRDb3VudCA9IDA7
Ci0gICAgICAgIGxldCByZXNvbHZlRXhwZWN0ZWRJbnB1dEV2ZW50cyA9IG51bGw7Ci0gICAgICAg
IGZ1bmN0aW9uIGhhbmRsZUlucHV0KCkgewotICAgICAgICAgICAgcmVtYWluaW5nSW5wdXRFdmVu
dENvdW50LS07Ci0gICAgICAgICAgICBpZiAocmVzb2x2ZUV4cGVjdGVkSW5wdXRFdmVudHMgJiYg
IXJlbWFpbmluZ0lucHV0RXZlbnRDb3VudCkKLSAgICAgICAgICAgICAgICByZXNvbHZlRXhwZWN0
ZWRJbnB1dEV2ZW50cygpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVUlTY3Jp
cHRBbmRFeHBlY3RJbnB1dEV2ZW50cyhpbnB1dEV2ZW50Q291bnQsIG5leHRBdXRvY29ycmVjdFZh
bHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZW1haW5pbmdJbnB1dEV2ZW50Q291bnQgPSBp
bnB1dEV2ZW50Q291bnQ7Ci0gICAgICAgICAgICByZXNvbHZlRXhwZWN0ZWRJbnB1dEV2ZW50cyA9
ICgpID0+IHsKLSAgICAgICAgICAgICAgICB3cml0ZShgV2l0aCBhdXRvY29ycmVjdCAke2VkaXRh
YmxlLmF1dG9jb3JyZWN0ID8gIm9uIiA6ICJvZmYifSwgdGhlIHJlc3VsdCBpczogIiR7ZWRpdGFi
bGUudGV4dENvbnRlbnQudHJpbSgpfSJgKTsKLSAgICAgICAgICAgICAgICBlZGl0YWJsZS50ZXh0
Q29udGVudCA9ICIiOwotICAgICAgICAgICAgICAgIGVkaXRhYmxlLmF1dG9jb3JyZWN0ID0gbmV4
dEF1dG9jb3JyZWN0VmFsdWU7Ci0gICAgICAgICAgICAgICAgZWRpdGFibGUuYmx1cigpOwotICAg
ICAgICAgICAgfTsKLQotICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUpIHsKLSAgICAgICAgICAgICAgICBsZXQgcmVjdCA9IGVkaXRhYmxlLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRpZFNob3dLZXli
b2FyZENhbGxiYWNrID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIudHlwZUNoYXJhY3RlclVzaW5nSGFyZHdhcmVLZXlib2FyZCgidCIsIGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci50eXBlQ2hhcmFj
dGVyVXNpbmdIYXJkd2FyZUtleWJvYXJkKCJpIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci50eXBlQ2hhcmFjdGVyVXNpbmdIYXJkd2Fy
ZUtleWJvYXJkKCIgIiwgZnVuY3Rpb24oKSB7IH0pOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRpZEhpZGVLZXlib2FyZENhbGxi
YWNrID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
dWlTY3JpcHRDb21wbGV0ZSgpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KCR7cmVjdC5sZWZ0ICsgcmVjdC53
aWR0aCAvIDJ9LCAke3JlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyfSwgZnVuY3Rpb24oKSB7fSk7
Ci0gICAgICAgICAgICAgICAgfSkoKTtgLCByZXNvbHZlKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBydW5VSVNjcmlwdEFuZEV4cGVj
dElucHV0RXZlbnRzKDMsICJvbiIpCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gcnVuVUlT
Y3JpcHRBbmRFeHBlY3RJbnB1dEV2ZW50cyg0LCBudWxsKSkKLSAgICAgICAgICAgICAgICAudGhl
bigoKSA9PiB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSk7Ci0gICAgICAgIH0KLSAgICA8L3Njcmlw
dD4KLSAgICA8c3R5bGU+Ci0gICAgI2VkaXRhYmxlIHsKLSAgICAgICAgd2lkdGg6IDIwMHB4Owot
ICAgICAgICBoZWlnaHQ6IDEwMHB4OwotICAgICAgICB0b3A6IDA7Ci0gICAgICAgIGxlZnQ6IDA7
Ci0gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPXJ1blRlc3QoKT4KLSAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6
IDI0cHg7IiBjb250ZW50ZWRpdGFibGUgYXV0b2NvcnJlY3Q9Im9mZiIgaWQ9ImVkaXRhYmxlIiBv
bmlucHV0PWhhbmRsZUlucHV0KCk+PC9kaXY+Ci0gICAgPHA+VG8gbWFudWFsbHkgdGVzdCwgdHlw
ZSAnVGknIGludG8gdGhlIGNvbnRlbnRlZGl0YWJsZSBhbmQgYSBzcGFjZS4gVGhlICdUaScgc2hv
dWxkIG5vdCBiZSBhdXRvY29ycmVjdGVkLjwvcD4KLSAgICA8Y29kZT48ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PjwvY29kZT4KLTwvYm9keT4KLQotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL2RvbS1zdGF0aWMtcHJvcGVydHktZm9yLWluLWl0ZXJhdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9tLXN0YXRpYy1wcm9wZXJ0eS1mb3ItaW4taXRlcmF0
aW9uLWV4cGVjdGVkLnR4dAppbmRleCBlNjI0NTg1ZWE0YzY3MjZhNTNlYmMzMDEwMTg3ODdkZDUz
NzMzOGU0Li5jNTA2MDU0OGFiMGJmMTRjYzg0Y2MzYWIyZGFkZmZhYWMzZTZjMjUxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZG9tLXN0YXRpYy1wcm9wZXJ0eS1mb3ItaW4taXRlcmF0
aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9tLXN0YXRpYy1wcm9w
ZXJ0eS1mb3ItaW4taXRlcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtNTAsNiArNTAsNyBAQCBQQVNT
IGFbIm9mZnNldExlZnQiXSBpcyA4CiBQQVNTIGFbIm9mZnNldFdpZHRoIl0gaXMgNDAKIFBBU1Mg
YVsib2Zmc2V0SGVpZ2h0Il0gaXMgMTgKIFBBU1MgYVsib3V0ZXJUZXh0Il0gaXMgbmVyZ2V0CitQ
QVNTIGFbImF1dG9jb3JyZWN0Il0gaXMgdHJ1ZQogUEFTUyBhWyJ3ZWJraXRkcm9wem9uZSJdIGlz
IAogUEFTUyBhWyJpbnB1dE1vZGUiXSBpcyAKIFBBU1MgYVsic3R5bGUiXSBpcyBbb2JqZWN0IENT
U1N0eWxlRGVjbGFyYXRpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDUxMDVkN2RhZDQzZDdlODE4ODI2NGIzYjg4YTQyNzhlYzhkZGYwNjIuLjZhMDlk
MGU4NDEyNWYxZjIwZGJkNmQ4Y2IwZjUxNDc0M2Q5ZWI5M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMSw2ICsxMSw3IEBAIGRpc3BsYXlsaXN0cyBb
IFBhc3MgXQogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24gWyBQYXNzIF0KIGVkaXRpbmcvZXhlY0Nv
bW1hbmQvaW9zIFsgUGFzcyBdCiBlZGl0aW5nL2RlbGV0aW5nL2lvcyBbIFBhc3MgXQorZWRpdGlu
Zy9pbnB1dC9jb2NvYSBbIFBhc3MgXQogaHR0cC90ZXN0cy9xdWlja2xvb2sgWyBQYXNzIF0KIG1l
ZGlhL2lvcyBbIFBhc3MgXQogcXVpY2tsb29rIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2pzL2RvbS9kb20tc3RhdGljLXByb3BlcnR5LWZvci1pbi1p
dGVyYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9qcy9k
b20vZG9tLXN0YXRpYy1wcm9wZXJ0eS1mb3ItaW4taXRlcmF0aW9uLWV4cGVjdGVkLnR4dAppbmRl
eCA1NzBmZDFiNmNiOGY0N2RhZTYyMTViMzI3YWNhMmUxOGVhNGVlNWQ3Li5iZTcyZmY2Yzg1ZDVk
OWVlYjU4YmIzM2U1NTllZjEyYjc2ZTg1ZDkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL2pzL2RvbS9kb20tc3RhdGljLXByb3BlcnR5LWZvci1pbi1pdGVyYXRpb24t
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvanMvZG9tL2Rv
bS1zdGF0aWMtcHJvcGVydHktZm9yLWluLWl0ZXJhdGlvbi1leHBlY3RlZC50eHQKQEAgLTUyLDYg
KzUyLDcgQEAgUEFTUyBhWyJvZmZzZXRMZWZ0Il0gaXMgOAogUEFTUyBhWyJvZmZzZXRXaWR0aCJd
IGlzIDQwCiBQQVNTIGFbIm9mZnNldEhlaWdodCJdIGlzIDE4CiBQQVNTIGFbIm91dGVyVGV4dCJd
IGlzIG5lcmdldAorUEFTUyBhWyJhdXRvY29ycmVjdCJdIGlzIHRydWUKIFBBU1MgYVsid2Via2l0
ZHJvcHpvbmUiXSBpcyAKIFBBU1MgYVsiaW5wdXRNb2RlIl0gaXMgCiBQQVNTIGFbImVudGVyS2V5
SGludCJdIGlzIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAzNzhhYzVhNWI3NWRhMDA4ZGY4ODFjOTYwZTY4MTM1Zjc1NGJlMjU2Li44MWQ2NDFkNmE1MDU4
NWJmZGJiMTIyMzdiNTg2N2FmZDljMTk4NDlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtOSw2ICs5LDcgQEAKIGFjY2Vzc2liaWxpdHkvbWFjIFsgUGFz
cyBdCiBjb21wb3NpdGluZy9zY3JvbGxpbmcvYXN5bmMtb3ZlcmZsb3ctc2Nyb2xsaW5nL21hYyBb
IFBhc3MgXQogZGlzcGxheWxpc3RzIFsgUGFzcyBdCitlZGl0aW5nL2lucHV0L2NvY29hIFsgUGFz
cyBdCiBlZGl0aW5nL21hYyBbIFBhc3MgXQogZWRpdGluZy9wYXN0ZWJvYXJkL21hYyBbIFBhc3Mg
XQogZmFzdC9kb20vUmFuZ2UvbWFjIFsgUGFzcyBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>