<?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>15470</bug_id>
          
          <creation_ts>2007-10-11 17:22:13 -0700</creation_ts>
          <short_desc>Make attr selectors case-sensitive for case-sensitive HTML attrs (Acid3 bug)</short_desc>
          <delta_ts>2008-01-28 09:16:21 -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>CSS</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.css3.info/selectors-test/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>11390</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>info</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>58329</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-11 17:22:13 -0700</bug_when>
    <thetext>Make attr selectors case-sensitive for case-sensitive HTML attrs

currently we fail 18 tests in this suite:
http://www.css3.info/selectors-test/

because of this &quot;bug&quot;.  The justification is that the CSS2 spec says that case sensitivity for values (other than element names) is &quot;language dependent&quot;:

http://www.w3.org/TR/css3-selectors/#attribute-selectors

And HTML has certain attributes which are case sensitive and others which are not:
http://www.w3.org/TR/REC-html40/types.html#h-6.1

Strangely enough, both Opera and FireFox pass different subsets of these 18 tests.  They seem to be related to implementation details in both browsers.  Given that neither of them fail all 18 like we do (but rather seem to attempt to support this strangeness), I think this patch is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58330</commentid>
    <comment_count>1</comment_count>
      <attachid>16636</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-11 17:28:29 -0700</bug_when>
    <thetext>Created attachment 16636
Fix (test updates forthcoming)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58341</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-10-11 23:43:53 -0700</bug_when>
    <thetext>I think it&apos;s worth testing this in both quirks mode and standards mode in other browsers (especially Firefox and IE).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58584</commentid>
    <comment_count>3</comment_count>
      <attachid>16636</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-10-15 09:16:23 -0700</bug_when>
    <thetext>Comment on attachment 16636
Fix (test updates forthcoming)

htmlAttributeHasCaseSensitiveValue should probably use a set instead of 18 separate calls. Can first check that there&apos;s no namespace, then use a set of AtomicString for the attr names.

+            if (caseSensitive &amp;&amp; sel-&gt;m_value != value)
+                return false;
+            else if (!caseSensitive &amp;&amp; !equalIgnoringCase(sel-&gt;m_value, value))
                 return false;

No need to else after return.

I&apos;d write it with ? : instead:

    if (!(caseSensitive ? sel-&gt;m_value == value : equalIgnoringCase(sel-&gt;m_value, value)))
        return false;

I think it&apos;s a bit unfortunate that we&apos;re going to be computing the caseSensitive boolean all the time. Does every case in the switch statement use it?

review- for the set issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65983</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-01 22:09:54 -0800</bug_when>
    <thetext>*** Bug 16703 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65984</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-01 22:10:35 -0800</bug_when>
    <thetext>it is unlikely I&apos;ll get to this patch again anytime soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66372</commentid>
    <comment_count>6</comment_count>
      <attachid>18300</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-06 04:36:48 -0800</bug_when>
    <thetext>Created attachment 18300
Case sensitivity fix, including testcase

 LayoutTests/ChangeLog                              |   11 ++
 .../css/html-attr-case-sensitivity-expected.txt    |  129 ++++++++++++++
 .../fast/css/html-attr-case-sensitivity.html       |   13 ++
 .../css/resources/html-attr-case-sensitivity.js    |  176 ++++++++++++++++++++
 WebCore/ChangeLog                                  |   15 ++
 WebCore/css/CSSStyleSelector.cpp                   |   84 +++++++++-
 6 files changed, 420 insertions(+), 8 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66381</commentid>
    <comment_count>7</comment_count>
      <attachid>18300</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-06 11:25:51 -0800</bug_when>
    <thetext>Comment on attachment 18300
Case sensitivity fix, including testcase

+// test a non-existant attr

This should say &quot;nonexistent&quot;, not &quot;non-existant&quot;.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66388</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-06 12:35:40 -0800</bug_when>
    <thetext>Yay!  we now pass the 18 css3 selector tests related to this bug!
r29212
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68439</commentid>
    <comment_count>9</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2008-01-28 08:44:32 -0800</bug_when>
    <thetext>Please close a bug 11389 as a duplication of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68441</commentid>
    <comment_count>10</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2008-01-28 08:47:50 -0800</bug_when>
    <thetext>Also add this bug to meta bug 11390.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68446</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-01-28 09:15:43 -0800</bug_when>
    <thetext>*** Bug 11389 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16636</attachid>
            <date>2007-10-11 17:28:29 -0700</date>
            <delta_ts>2007-10-15 09:16:23 -0700</delta_ts>
            <desc>Fix (test updates forthcoming)</desc>
            <filename>test.patch</filename>
            <type>text/plain</type>
            <size>4800</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI2Mzc1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDctMTAt
MTEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgTWFrZSBDU1MzIGF0dHJpYnV0ZSBz
ZWxlY3RvcnMgY2FzZSBzZW5zaXRpdmUgY29uZGl0aW9uYWwKKyAgICAgICAgb24gd2hldGhlciB0
aGUgSFRNTDQgYXR0cmlidXRlIGlzIG1hcmtlZCBjYXNlIHNlbnNpdGl2ZSBpbiB0aGUgc3BlYy4K
KyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NzAKKwor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omh0
bWxBdHRyaWJ1dGVIYXNDYXNlU2Vuc2l0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVTZWxlY3Rvcjo6Y2hlY2tPbmVTZWxlY3Rvcik6CisKIDIwMDctMTAtMTEgIE5pa29sYXMg
WmltbWVybWFubiAgPHppbW1lcm1hbm5Aa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBP
bGl2ZXIuCkluZGV4OiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNjM1NCkK
KysrIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTMyNTEsNyArMTMyNTEsNiBAQAogCQkwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVj
dCBvYmplY3QgKi8gPSB7CiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0
aW9uTGlzdCA9IDE0OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9u
IGxpc3QgZm9yIFBCWFByb2plY3QgIldlYkNvcmUiICovOwotCQkJY29tcGF0aWJpbGl0eVZlcnNp
b24gPSAiWGNvZGUgMi40IjsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25v
d25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCkluZGV4OiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAyNjM2
NikKKysrIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5MSw2
ICsxMjkxLDIwIEBAIENTU1N0eWxlU2VsZWN0b3I6OlNlbGVjdG9yTWF0Y2ggQ1NTU3R5bGUKICAg
ICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CiB9CiAKK3N0YXRpYyBib29sIGh0bWxB
dHRyaWJ1dGVIYXNDYXNlU2Vuc2l0aXZlVmFsdWUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cikK
K3sKKyAgICAvLyBUaGlzIGlzIHRoZSBsaXN0IG9mIGF0dHJpYnV0ZXMgaW4gSFRNTCA0LjAxIHdp
dGggdmFsdWVzIG1hcmtlZCBhcyAiW0NTXSIgb3IgY2FzZS1zZW5zaXRpdmUKKyAgICByZXR1cm4g
KGF0dHIubWF0Y2hlcyhjbGFzc0F0dHIpIHx8IGF0dHIubWF0Y2hlcyhpZEF0dHIpCisgICAgICAg
ICAgICB8fCBhdHRyLm1hdGNoZXMoY29udGVudEF0dHIpIHx8IGF0dHIubWF0Y2hlcyhuYW1lQXR0
cikKKyAgICAgICAgICAgIHx8IGF0dHIubWF0Y2hlcyh0aXRsZUF0dHIpIHx8IGF0dHIubWF0Y2hl
cyhzY2hlbWVBdHRyKQorICAgICAgICAgICAgfHwgYXR0ci5tYXRjaGVzKGRhdGV0aW1lQXR0cikg
fHwgYXR0ci5tYXRjaGVzKHN1bW1hcnlBdHRyKQorICAgICAgICAgICAgfHwgYXR0ci5tYXRjaGVz
KGhlYWRlcnNBdHRyKSB8fCBhdHRyLm1hdGNoZXMoYWJickF0dHIpCisgICAgICAgICAgICB8fCBh
dHRyLm1hdGNoZXMoc3RhbmRieUF0dHIpIHx8IGF0dHIubWF0Y2hlcyhjb2RlQXR0cikKKyAgICAg
ICAgICAgIHx8IGF0dHIubWF0Y2hlcyhvYmplY3RBdHRyKSB8fCBhdHRyLm1hdGNoZXMoYWx0QXR0
cikKKyAgICAgICAgICAgIHx8IGF0dHIubWF0Y2hlcyh2YWx1ZUF0dHIpIHx8IGF0dHIubWF0Y2hl
cyhsYWJlbEF0dHIpCisgICAgICAgICAgICB8fCBhdHRyLm1hdGNoZXMocHJvbXB0QXR0cikgfHwg
YXR0ci5tYXRjaGVzKGZvckF0dHIpKTsKK30KKwogYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjaGVj
a09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1lbnQqIGUsIGJvb2wgaXNBbmNlc3Rv
ciwgYm9vbCBpc1N1YlNlbGVjdG9yKQogewogICAgIGlmKCFlKQpAQCAtMTMyNiwxMCArMTM0MCwx
NCBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OmNoZWNrT25lU2VsZWN0b3IoCiAgICAgICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBlLT5nZXRBdHRyaWJ1dGUoc2VsLT5tX2F0dHIpOwog
ICAgICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8v
IGF0dHJpYnV0ZSBpcyBub3Qgc2V0Ci0KKyAgICAgICAgCisgICAgICAgIGJvb2wgY2FzZVNlbnNp
dGl2ZSA9IGlzWE1MRG9jIHx8IGh0bWxBdHRyaWJ1dGVIYXNDYXNlU2Vuc2l0aXZlVmFsdWUoc2Vs
LT5tX2F0dHIpOworICAgICAgICAKICAgICAgICAgc3dpdGNoKHNlbC0+bV9tYXRjaCkgewogICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpFeGFjdDoKLSAgICAgICAgICAgIGlmICgoaXNYTUxEb2Mg
JiYgc2VsLT5tX3ZhbHVlICE9IHZhbHVlKSB8fCAoIWlzWE1MRG9jICYmICFlcXVhbElnbm9yaW5n
Q2FzZShzZWwtPm1fdmFsdWUsIHZhbHVlKSkpCisgICAgICAgICAgICBpZiAoY2FzZVNlbnNpdGl2
ZSAmJiBzZWwtPm1fdmFsdWUgIT0gdmFsdWUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgZWxzZSBpZiAoIWNhc2VTZW5zaXRpdmUgJiYgIWVxdWFsSWdub3JpbmdD
YXNlKHNlbC0+bV92YWx1ZSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0OgpAQCAt
MTM0MCw3ICsxMzU4LDcgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjaGVja09uZVNlbGVjdG9y
KAogCiAgICAgICAgICAgICBpbnQgc3RhcnRTZWFyY2hBdCA9IDA7CiAgICAgICAgICAgICB3aGls
ZSAodHJ1ZSkgewotICAgICAgICAgICAgICAgIGludCBmb3VuZFBvcyA9IHZhbHVlLmZpbmQoc2Vs
LT5tX3ZhbHVlLCBzdGFydFNlYXJjaEF0LCBpc1hNTERvYyk7CisgICAgICAgICAgICAgICAgaW50
IGZvdW5kUG9zID0gdmFsdWUuZmluZChzZWwtPm1fdmFsdWUsIHN0YXJ0U2VhcmNoQXQsIGNhc2VT
ZW5zaXRpdmUpOwogICAgICAgICAgICAgICAgIGlmIChmb3VuZFBvcyA9PSAtMSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGlmIChmb3VuZFBvcyA9
PSAwIHx8IHZhbHVlW2ZvdW5kUG9zLTFdID09ICcgJykgewpAQCAtMTM1NSwyMSArMTM3MywyMSBA
QCBib29sIENTU1N0eWxlU2VsZWN0b3I6OmNoZWNrT25lU2VsZWN0b3IoCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpDb250YWluOgotICAg
ICAgICAgICAgaWYgKCF2YWx1ZS5jb250YWlucyhzZWwtPm1fdmFsdWUsIGlzWE1MRG9jKSkKKyAg
ICAgICAgICAgIGlmICghdmFsdWUuY29udGFpbnMoc2VsLT5tX3ZhbHVlLCBjYXNlU2Vuc2l0aXZl
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6QmVnaW46Ci0gICAgICAgICAgICBpZiAoIXZhbHVlLnN0
YXJ0c1dpdGgoc2VsLT5tX3ZhbHVlLCBpc1hNTERvYykpCisgICAgICAgICAgICBpZiAoIXZhbHVl
LnN0YXJ0c1dpdGgoc2VsLT5tX3ZhbHVlLCBjYXNlU2Vuc2l0aXZlKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6RW5kOgotICAgICAgICAgICAgaWYgKCF2YWx1ZS5lbmRzV2l0aChzZWwtPm1fdmFsdWUs
IGlzWE1MRG9jKSkKKyAgICAgICAgICAgIGlmICghdmFsdWUuZW5kc1dpdGgoc2VsLT5tX3ZhbHVl
LCBjYXNlU2Vuc2l0aXZlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SHlwaGVuOgogICAgICAgICAg
ICAgaWYgKHZhbHVlLmxlbmd0aCgpIDwgc2VsLT5tX3ZhbHVlLmxlbmd0aCgpKQogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aChz
ZWwtPm1fdmFsdWUsIGlzWE1MRG9jKSkKKyAgICAgICAgICAgIGlmICghdmFsdWUuc3RhcnRzV2l0
aChzZWwtPm1fdmFsdWUsIGNhc2VTZW5zaXRpdmUpKQogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgICAgIC8vIEl0IHRoZXkgc3RhcnQgdGhlIHNhbWUsIGNoZWNrIGZvciBl
eGFjdCBtYXRjaCBvciBmb2xsb3dpbmcgJy0nOgogICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0
aCgpICE9IHNlbC0+bV92YWx1ZS5sZW5ndGgoKSAmJiB2YWx1ZVtzZWwtPm1fdmFsdWUubGVuZ3Ro
KCldICE9ICctJykK
</data>
<flag name="review"
          id="7033"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18300</attachid>
            <date>2008-01-06 04:36:48 -0800</date>
            <delta_ts>2008-01-06 11:25:51 -0800</delta_ts>
            <desc>Case sensitivity fix, including testcase</desc>
            <filename>Case-sensitivity-fix-including-testcase.patch</filename>
            <type>text/plain</type>
            <size>19533</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MWQwOGNmNjE5ODY4ODc2Mzg2NDJkYTA0Y2M1YWUwNTIyNzVmNTVlMgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNlN2Y1N2Mu
LmM3Y2YyN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNiBAQAogMjAwOC0wMS0wNiAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisgICAgICAgIAorICAgICAgICBNYWtlIGF0dHIgc2VsZWN0b3JzIGNhc2UtaW5zZW5zaXRpdmUg
Zm9yIGNlcnRhaW4gSFRNTCBhdHRyaWJ1dGVzCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NDcwCisKKyAgICAgICAgKiBmYXN0L2Nzcy9odG1sLWF0dHIt
Y2FzZS1zZW5zaXRpdml0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
L2h0bWwtYXR0ci1jYXNlLXNlbnNpdGl2aXR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y3NzL3Jlc291cmNlcy9odG1sLWF0dHItY2FzZS1zZW5zaXRpdml0eS5qczogQWRkZWQuCisKKzIw
MDgtMDEtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmll
d2VkIGJ5IFNhbS4KIAogICAgICAgICBGaXggOmNoZWNrZWQgbWF0Y2hpbmcgdHlwZT0ndGV4dCcg
YW5kIGFkZCB0ZXN0IGNhc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2h0bWwt
YXR0ci1jYXNlLXNlbnNpdGl2aXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2h0bWwtYXR0ci1jYXNlLXNlbnNpdGl2aXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zZDU5MzY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvaHRtbC1hdHRyLWNhc2Utc2Vuc2l0aXZpdHktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTI5IEBACitUaGlzIHRlc3RzIHRoYXQgW2F0dHI9dmFsdWVdIENTUyBzZWxlY3RvcnMg
YXJlIGNhc2Ugc2Vuc2l0aXZlIGRlcGVuZGluZyBvbiBhdHRyCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiYWJiciIpIGlzIHRydWUKK1BBU1Mg
aXNDYXNlU2Vuc2l0aXZlKCJhY2NlcHQtY2hhcnNldCIpIGlzIGZhbHNlCitQQVNTIGlzQ2FzZVNl
bnNpdGl2ZSgiYWNjZXB0IikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJhY2Nlc3Nr
ZXkiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiYWN0aW9uIikgaXMgdHJ1ZQorUEFT
UyBpc0Nhc2VTZW5zaXRpdmUoImFsaWduIikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZl
KCJhbGluayIpIGlzIGZhbHNlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiYWx0IikgaXMgdHJ1ZQor
UEFTUyBpc0Nhc2VTZW5zaXRpdmUoImFyY2hpdmUiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNp
dGl2ZSgiYXhpcyIpIGlzIGZhbHNlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiYmFja2dyb3VuZCIp
IGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJiZ2NvbG9yIikgaXMgZmFsc2UKK1BBU1Mg
aXNDYXNlU2Vuc2l0aXZlKCJib3JkZXIiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgi
Y2VsbHBhZGRpbmciKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiY2VsbHNwYWNpbmci
KSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiY2hhciIpIGlzIHRydWUKK1BBU1MgaXND
YXNlU2Vuc2l0aXZlKCJjaGFyb2ZmIikgaXMgdHJ1ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoImNo
YXJzZXQiKSBpcyBmYWxzZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoImNoZWNrZWQiKSBpcyBmYWxz
ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoImNpdGUiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNp
dGl2ZSgiY2xhc3MiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiY2xhc3NpZCIpIGlz
IHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJjbGVhciIpIGlzIGZhbHNlCitQQVNTIGlzQ2Fz
ZVNlbnNpdGl2ZSgiY29kZSIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJjb2RlYmFz
ZSIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJjb2RldHlwZSIpIGlzIGZhbHNlCitQ
QVNTIGlzQ2FzZVNlbnNpdGl2ZSgiY29sb3IiKSBpcyBmYWxzZQorUEFTUyBpc0Nhc2VTZW5zaXRp
dmUoImNvbHMiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiY29sc3BhbiIpIGlzIHRy
dWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJjb21wYWN0IikgaXMgZmFsc2UKK1BBU1MgaXNDYXNl
U2Vuc2l0aXZlKCJjb250ZW50IikgaXMgdHJ1ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoImNvb3Jk
cyIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJkYXRhIikgaXMgdHJ1ZQorUEFTUyBp
c0Nhc2VTZW5zaXRpdmUoImRhdGV0aW1lIikgaXMgdHJ1ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUo
ImRlY2xhcmUiKSBpcyBmYWxzZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoImRlZmVyIikgaXMgZmFs
c2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJkaXIiKSBpcyBmYWxzZQorUEFTUyBpc0Nhc2VTZW5z
aXRpdmUoImRpc2FibGVkIikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJlbmN0eXBl
IikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJmYWNlIikgaXMgZmFsc2UKK1BBU1Mg
aXNDYXNlU2Vuc2l0aXZlKCJmb3IiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiZnJh
bWUiKSBpcyBmYWxzZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoImZyYW1lYm9yZGVyIikgaXMgdHJ1
ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoImhlYWRlcnMiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNl
bnNpdGl2ZSgiaGVpZ2h0IikgaXMgdHJ1ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoImhyZWYiKSBp
cyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgiaHJlZmxhbmciKSBpcyBmYWxzZQorUEFTUyBp
c0Nhc2VTZW5zaXRpdmUoImhzcGFjZSIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJo
dHRwLWVxdWl2IikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJpZCIpIGlzIHRydWUK
K1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJpc21hcCIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0
aXZlKCJsYWJlbCIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJsYW5nIikgaXMgZmFs
c2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJsYW5ndWFnZSIpIGlzIGZhbHNlCitQQVNTIGlzQ2Fz
ZVNlbnNpdGl2ZSgibGluayIpIGlzIGZhbHNlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgibG9uZ2Rl
c2MiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgibWFyZ2luaGVpZ2h0IikgaXMgdHJ1
ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoIm1hcmdpbndpZHRoIikgaXMgdHJ1ZQorUEFTUyBpc0Nh
c2VTZW5zaXRpdmUoIm1heGxlbmd0aCIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJt
ZWRpYSIpIGlzIGZhbHNlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgibWV0aG9kIikgaXMgZmFsc2UK
K1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJtdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIGlzQ2FzZVNl
bnNpdGl2ZSgibmFtZSIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJub2hyZWYiKSBp
cyBmYWxzZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoIm5vcmVzaXplIikgaXMgZmFsc2UKK1BBU1Mg
aXNDYXNlU2Vuc2l0aXZlKCJub3NoYWRlIikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZl
KCJub3dyYXAiKSBpcyBmYWxzZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoIm9iamVjdCIpIGlzIHRy
dWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJvbmJsdXIiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNl
bnNpdGl2ZSgib25jaGFuZ2UiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgib25jbGlj
ayIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJvbmRibGNsaWNrIikgaXMgdHJ1ZQor
UEFTUyBpc0Nhc2VTZW5zaXRpdmUoIm9uZm9jdXMiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNp
dGl2ZSgib25rZXlkb3duIikgaXMgdHJ1ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoIm9ua2V5cHJl
c3MiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgib25rZXl1cCIpIGlzIHRydWUKK1BB
U1MgaXNDYXNlU2Vuc2l0aXZlKCJvbmxvYWQiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2
ZSgib25tb3VzZWRvd24iKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgib25tb3VzZW1v
dmUiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgib25tb3VzZW91dCIpIGlzIHRydWUK
K1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJvbm1vdXNlb3ZlciIpIGlzIHRydWUKK1BBU1MgaXNDYXNl
U2Vuc2l0aXZlKCJvbm1vdXNldXAiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgib25y
ZXNldCIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJvbnNlbGVjdCIpIGlzIHRydWUK
K1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJvbnN1Ym1pdCIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vu
c2l0aXZlKCJvbnVubG9hZCIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJwcm9maWxl
IikgaXMgdHJ1ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoInByb21wdCIpIGlzIHRydWUKK1BBU1Mg
aXNDYXNlU2Vuc2l0aXZlKCJyZWFkb25seSIpIGlzIGZhbHNlCitQQVNTIGlzQ2FzZVNlbnNpdGl2
ZSgicmVsIikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJyZXYiKSBpcyBmYWxzZQor
UEFTUyBpc0Nhc2VTZW5zaXRpdmUoInJvd3MiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2
ZSgicm93c3BhbiIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJydWxlcyIpIGlzIGZh
bHNlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgic2NoZW1lIikgaXMgdHJ1ZQorUEFTUyBpc0Nhc2VT
ZW5zaXRpdmUoInNjb3BlIikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJzY3JvbGxp
bmciKSBpcyBmYWxzZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoInNlbGVjdGVkIikgaXMgZmFsc2UK
K1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJzaGFwZSIpIGlzIGZhbHNlCitQQVNTIGlzQ2FzZVNlbnNp
dGl2ZSgic2l6ZSIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJzcGFuIikgaXMgdHJ1
ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoInNyYyIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0
aXZlKCJzdGFuZGJ5IikgaXMgdHJ1ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoInN0YXJ0IikgaXMg
dHJ1ZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoInN0eWxlIikgaXMgdHJ1ZQorUEFTUyBpc0Nhc2VT
ZW5zaXRpdmUoInN1bW1hcnkiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgidGFiaW5k
ZXgiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgidGFyZ2V0IikgaXMgZmFsc2UKK1BB
U1MgaXNDYXNlU2Vuc2l0aXZlKCJ0ZXh0IikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZl
KCJ0aXRsZSIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJ0eXBlIikgaXMgZmFsc2UK
K1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJ1c2VtYXAiKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNp
dGl2ZSgidmFsaWduIikgaXMgZmFsc2UKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJ2YWx1ZSIpIGlz
IHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJ2YWx1ZXR5cGUiKSBpcyBmYWxzZQorUEFTUyBp
c0Nhc2VTZW5zaXRpdmUoInZlcnNpb24iKSBpcyB0cnVlCitQQVNTIGlzQ2FzZVNlbnNpdGl2ZSgi
dmxpbmsiKSBpcyBmYWxzZQorUEFTUyBpc0Nhc2VTZW5zaXRpdmUoInZzcGFjZSIpIGlzIHRydWUK
K1BBU1MgaXNDYXNlU2Vuc2l0aXZlKCJ3aWR0aCIpIGlzIHRydWUKK1BBU1MgaXNDYXNlU2Vuc2l0
aXZlKCJmb29iYXIiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaHRtbC1h
dHRyLWNhc2Utc2Vuc2l0aXZpdHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2h0bWwtYXR0
ci1jYXNlLXNlbnNpdGl2aXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmE2MmE2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2h0bWwt
YXR0ci1jYXNlLXNlbnNpdGl2aXR5Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9odG1sLWF0dHItY2FzZS1zZW5z
aXRpdml0eS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvaHRtbC1hdHRyLWNhc2Utc2Vuc2l0aXZpdHkuanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvaHRtbC1hdHRyLWNhc2Utc2Vuc2l0aXZp
dHkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI5NGQ3ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc291cmNlcy9odG1sLWF0dHItY2Fz
ZS1zZW5zaXRpdml0eS5qcwpAQCAtMCwwICsxLDE3NiBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgdGhhdCBbYXR0cj12YWx1ZV0gQ1NTIHNlbGVjdG9ycyBhcmUgY2FzZSBzZW5zaXRpdmUgZGVw
ZW5kaW5nIG9uIGF0dHIiKTsKKworLy8gTGlzdCBvZiBhbGwgSFRNTDQgYXR0cnMKKy8vIHRydWUg
PSBjYXNlIHNlbnNpdGl2ZQordmFyIGh0bWxBdHRycyA9IHsKKyAgICAiYWJiciIgOiB0cnVlLAor
ICAgICJhY2NlcHQtY2hhcnNldCIgOiBmYWxzZSwKKyAgICAiYWNjZXB0IiA6IGZhbHNlLAorICAg
ICJhY2Nlc3NrZXkiIDogdHJ1ZSwKKyAgICAiYWN0aW9uIiA6IHRydWUsCisgICAgImFsaWduIiA6
IGZhbHNlLAorICAgICJhbGluayIgOiBmYWxzZSwKKyAgICAiYWx0IiA6IHRydWUsCisgICAgImFy
Y2hpdmUiIDogdHJ1ZSwKKyAgICAiYXhpcyIgOiBmYWxzZSwKKyAgICAiYmFja2dyb3VuZCIgOiB0
cnVlLAorICAgICJiZ2NvbG9yIiA6IGZhbHNlLAorICAgICJib3JkZXIiIDogdHJ1ZSwKKyAgICAi
Y2VsbHBhZGRpbmciIDogdHJ1ZSwKKyAgICAiY2VsbHNwYWNpbmciIDogdHJ1ZSwKKyAgICAiY2hh
ciIgOiB0cnVlLAorICAgICJjaGFyb2ZmIiA6IHRydWUsCisgICAgImNoYXJzZXQiIDogZmFsc2Us
CisgICAgImNoZWNrZWQiIDogZmFsc2UsCisgICAgImNpdGUiIDogdHJ1ZSwKKyAgICAiY2xhc3Mi
IDogdHJ1ZSwKKyAgICAiY2xhc3NpZCIgOiB0cnVlLAorICAgICJjbGVhciIgOiBmYWxzZSwKKyAg
ICAiY29kZSIgOiB0cnVlLAorICAgICJjb2RlYmFzZSIgOiB0cnVlLAorICAgICJjb2RldHlwZSIg
OiBmYWxzZSwKKyAgICAiY29sb3IiIDogZmFsc2UsCisgICAgImNvbHMiIDogdHJ1ZSwKKyAgICAi
Y29sc3BhbiIgOiB0cnVlLAorICAgICJjb21wYWN0IiA6IGZhbHNlLAorICAgICJjb250ZW50IiA6
IHRydWUsCisgICAgImNvb3JkcyIgOiB0cnVlLAorICAgICJkYXRhIiA6IHRydWUsCisgICAgImRh
dGV0aW1lIiA6IHRydWUsCisgICAgImRlY2xhcmUiIDogZmFsc2UsCisgICAgImRlZmVyIiA6IGZh
bHNlLAorICAgICJkaXIiIDogZmFsc2UsCisgICAgImRpc2FibGVkIiA6IGZhbHNlLAorICAgICJl
bmN0eXBlIiA6IGZhbHNlLAorICAgICJmYWNlIiA6IGZhbHNlLAorICAgICJmb3IiIDogdHJ1ZSwK
KyAgICAiZnJhbWUiIDogZmFsc2UsCisgICAgImZyYW1lYm9yZGVyIiA6IHRydWUsCisgICAgImhl
YWRlcnMiIDogdHJ1ZSwKKyAgICAiaGVpZ2h0IiA6IHRydWUsCisgICAgImhyZWYiIDogdHJ1ZSwK
KyAgICAiaHJlZmxhbmciIDogZmFsc2UsCisgICAgImhzcGFjZSIgOiB0cnVlLAorICAgICJodHRw
LWVxdWl2IiA6IGZhbHNlLAorICAgICJpZCIgOiB0cnVlLAorICAgICJpc21hcCIgOiB0cnVlLAor
ICAgICJsYWJlbCIgOiB0cnVlLAorICAgICJsYW5nIiA6IGZhbHNlLAorICAgICJsYW5ndWFnZSIg
OiBmYWxzZSwKKyAgICAibGluayIgOiBmYWxzZSwKKyAgICAibG9uZ2Rlc2MiIDogdHJ1ZSwKKyAg
ICAibWFyZ2luaGVpZ2h0IiA6IHRydWUsCisgICAgIm1hcmdpbndpZHRoIiA6IHRydWUsCisgICAg
Im1heGxlbmd0aCIgOiB0cnVlLAorICAgICJtZWRpYSIgOiBmYWxzZSwKKyAgICAibWV0aG9kIiA6
IGZhbHNlLAorICAgICJtdWx0aXBsZSIgOiBmYWxzZSwKKyAgICAibmFtZSIgOiB0cnVlLAorICAg
ICJub2hyZWYiIDogZmFsc2UsCisgICAgIm5vcmVzaXplIiA6IGZhbHNlLAorICAgICJub3NoYWRl
IiA6IGZhbHNlLAorICAgICJub3dyYXAiIDogZmFsc2UsCisgICAgIm9iamVjdCIgOiB0cnVlLAor
ICAgICJvbmJsdXIiIDogdHJ1ZSwKKyAgICAib25jaGFuZ2UiIDogdHJ1ZSwKKyAgICAib25jbGlj
ayIgOiB0cnVlLAorICAgICJvbmRibGNsaWNrIiA6IHRydWUsCisgICAgIm9uZm9jdXMiIDogdHJ1
ZSwKKyAgICAib25rZXlkb3duIiA6IHRydWUsCisgICAgIm9ua2V5cHJlc3MiIDogdHJ1ZSwKKyAg
ICAib25rZXl1cCIgOiB0cnVlLAorICAgICJvbmxvYWQiIDogdHJ1ZSwKKyAgICAib25tb3VzZWRv
d24iIDogdHJ1ZSwKKyAgICAib25tb3VzZW1vdmUiIDogdHJ1ZSwKKyAgICAib25tb3VzZW91dCIg
OiB0cnVlLAorICAgICJvbm1vdXNlb3ZlciIgOiB0cnVlLAorICAgICJvbm1vdXNldXAiIDogdHJ1
ZSwKKyAgICAib25yZXNldCIgOiB0cnVlLAorICAgICJvbnNlbGVjdCIgOiB0cnVlLAorICAgICJv
bnN1Ym1pdCIgOiB0cnVlLAorICAgICJvbnVubG9hZCIgOiB0cnVlLAorICAgICJwcm9maWxlIiA6
IHRydWUsCisgICAgInByb21wdCIgOiB0cnVlLAorICAgICJyZWFkb25seSIgOiBmYWxzZSwKKyAg
ICAicmVsIiA6IGZhbHNlLAorICAgICJyZXYiIDogZmFsc2UsCisgICAgInJvd3MiIDogdHJ1ZSwK
KyAgICAicm93c3BhbiIgOiB0cnVlLAorICAgICJydWxlcyIgOiBmYWxzZSwKKyAgICAic2NoZW1l
IiA6IHRydWUsCisgICAgInNjb3BlIiA6IGZhbHNlLAorICAgICJzY3JvbGxpbmciIDogZmFsc2Us
CisgICAgInNlbGVjdGVkIiA6IGZhbHNlLAorICAgICJzaGFwZSIgOiBmYWxzZSwKKyAgICAic2l6
ZSIgOiB0cnVlLAorICAgICJzcGFuIiA6IHRydWUsCisgICAgInNyYyIgOiB0cnVlLAorICAgICJz
dGFuZGJ5IiA6IHRydWUsCisgICAgInN0YXJ0IiA6IHRydWUsCisgICAgInN0eWxlIiA6IHRydWUs
CisgICAgInN1bW1hcnkiIDogdHJ1ZSwKKyAgICAidGFiaW5kZXgiIDogdHJ1ZSwKKyAgICAidGFy
Z2V0IiA6IGZhbHNlLAorICAgICJ0ZXh0IiA6IGZhbHNlLAorICAgICJ0aXRsZSIgOiB0cnVlLAor
ICAgICJ0eXBlIiA6IGZhbHNlLAorICAgICJ1c2VtYXAiIDogdHJ1ZSwKKyAgICAidmFsaWduIiA6
IGZhbHNlLAorICAgICJ2YWx1ZSIgOiB0cnVlLAorICAgICJ2YWx1ZXR5cGUiIDogZmFsc2UsCisg
ICAgInZlcnNpb24iIDogdHJ1ZSwKKyAgICAidmxpbmsiIDogZmFsc2UsCisgICAgInZzcGFjZSIg
OiB0cnVlLAorICAgICJ3aWR0aCIgOiB0cnVlCit9OworCitmdW5jdGlvbiBpc0Nhc2VTZW5zaXRp
dmUoYXR0ck5hbWUpIHsKKyAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
dHlsZScpOworICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJi
ciB7IGNvbG9yOiByZWQ7IGZsb2F0OiByaWdodDsgYm9yZGVyLWNvbG9yOiByZWQ7IH1cbiIpKTsK
KyAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYnJbIiArIGF0
dHJOYW1lICsgIj1mb29dIHsgY29sb3I6IGJsdWU7IH1cbiIpKTsKKyAgICBzdHlsZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYnJbIiArIGF0dHJOYW1lICsgIn49Zm9vXSB7
IGZsb2F0OiBsZWZ0OyB9XG4iKSk7CisgICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoImJyWyIgKyBhdHRyTmFtZSArICJ8PWZvb10geyBib3JkZXItbGVmdC1jb2xv
cjogZ3JlZW47IH1cbiIpKTsKKyAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiYnJbIiArIGF0dHJOYW1lICsgIl49Zm9vXSB7IGJvcmRlci1yaWdodC1jb2xvcjog
cGluazsgfVxuIikpOworICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJiclsiICsgYXR0ck5hbWUgKyAiJD1mb29dIHsgYm9yZGVyLXRvcC1jb2xvcjogb3Jhbmdl
OyB9XG4iKSk7CisgICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
ImJyWyIgKyBhdHRyTmFtZSArICIqPWZvb10geyBib3JkZXItYm90dG9tLWNvbG9yOiBibGFjazsg
fVxuIikpOworICAgIAorICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5maXJzdENoaWxkLmFw
cGVuZENoaWxkKHN0eWxlKTsKKyAgICAKKyAgICB2YXIgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJiciIpOworICAgIHRlc3RFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyTmFt
ZSwgIkZPTyIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdEVsZW1lbnQpOwor
ICAgIAorICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVz
dEVsZW1lbnQsICcnKTsKKyAgICAKKyAgICB2YXIgaXNDYXNlSW5zZW5zaXRpdmUgPSAoY29tcHV0
ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJjb2xvciIpID09ICJyZ2IoMCwgMCwgMjU1KSIpOwor
ICAgIAorICAgIGlmICgoY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJmbG9hdCIpID09
ICJsZWZ0IikgIT0gaXNDYXNlSW5zZW5zaXRpdmUpCisgICAgICAgIHRlc3RGYWlsZWQoIn49Zm9v
IGFuZCA9Zm9vIGZvciAiICsgYXR0ck5hbWUgKyAiIGRpZCBub3QgbWF0Y2ggd2l0aCBzYW1lIGNh
c2Ugc2Vuc2l0aXZpdHkiKTsKKyAgICAKKyAgICBpZiAoKGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgiYm9yZGVyLWxlZnQtY29sb3IiKSA9PSAicmdiKDAsIDEyOCwgMCkiKSAhPSBpc0Nh
c2VJbnNlbnNpdGl2ZSkKKyAgICAgICAgdGVzdEZhaWxlZCgifD1mb28gYW5kID1mb28gZm9yICIg
KyBhdHRyTmFtZSArICIgZGlkIG5vdCBtYXRjaCB3aXRoIHNhbWUgY2FzZSBzZW5zaXRpdml0eSIp
OworCisgICAgaWYgKChjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoImJvcmRlci1yaWdo
dC1jb2xvciIpID09ICJyZ2IoMjU1LCAxOTIsIDIwMykiKSAhPSBpc0Nhc2VJbnNlbnNpdGl2ZSkK
KyAgICAgICAgdGVzdEZhaWxlZCgiXj1mb28gYW5kID1mb28gZm9yICIgKyBhdHRyTmFtZSArICIg
ZGlkIG5vdCBtYXRjaCB3aXRoIHNhbWUgY2FzZSBzZW5zaXRpdml0eSIpOworCisgICAgaWYgKChj
b21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoImJvcmRlci10b3AtY29sb3IiKSA9PSAicmdi
KDI1NSwgMTY1LCAwKSIpICE9IGlzQ2FzZUluc2Vuc2l0aXZlKQorICAgICAgICB0ZXN0RmFpbGVk
KCIkPWZvbyBhbmQgPWZvbyBmb3IgIiArIGF0dHJOYW1lICsgIiBkaWQgbm90IG1hdGNoIHdpdGgg
c2FtZSBjYXNlIHNlbnNpdGl2aXR5Iik7CisKKyAgICBpZiAoKGNvbXB1dGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgiYm9yZGVyLWJvdHRvbS1jb2xvciIpID09ICJyZ2IoMCwgMCwgMCkiKSAhPSBp
c0Nhc2VJbnNlbnNpdGl2ZSkKKyAgICAgICAgdGVzdEZhaWxlZCgiKj1mb28gYW5kID1mb28gZm9y
ICIgKyBhdHRyTmFtZSArICIgZGlkIG5vdCBtYXRjaCB3aXRoIHNhbWUgY2FzZSBzZW5zaXRpdml0
eSIpOworICAgIAorICAgIC8vIGNsZWFuIHVwCisgICAgdGVzdEVsZW1lbnQucGFyZW50Tm9kZS5y
ZW1vdmVDaGlsZCh0ZXN0RWxlbWVudCk7CisgICAgc3R5bGUucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChzdHlsZSk7CisgICAgCisgICAgcmV0dXJuICFpc0Nhc2VJbnNlbnNpdGl2ZTsKK30KKworZm9y
ICh2YXIgYXR0ciBpbiBodG1sQXR0cnMpIHsKKyAgICBzaG91bGRCZSgnaXNDYXNlU2Vuc2l0aXZl
KCInICsgYXR0ciArICciKScsICIiICsgaHRtbEF0dHJzW2F0dHJdKTsKK30KKworLy8gdGVzdCBh
IG5vbi1leGlzdGFudCBhdHRyCitzaG91bGRCZSgnaXNDYXNlU2Vuc2l0aXZlKCJmb29iYXIiKScs
ICJ0cnVlIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNzBmZTVkLi4xYmNk
YmVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDIwIEBACiAyMDA4LTAxLTA2ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0
Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YWtlIGF0dHIgc2VsZWN0b3JzIGNhc2UtaW5zZW5zaXRpdmUgZm9yIGNlcnRhaW4gSFRNTCBhdHRy
aWJ1dGVzCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NDcwCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvaHRtbC1hdHRyLWNhc2Utc2Vuc2l0aXZpdHku
aHRtbAorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YWRkTG9jYWxOYW1lVG9TZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSHRtbENh
c2VJbnNlbnNpdGl2ZUF0dHJpYnV0ZXNTZXQpOgorICAgICAgICAoV2ViQ29yZTo6aHRtbEF0dHJp
YnV0ZUhhc0Nhc2VJbnNlbnNpdGl2ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxl
U2VsZWN0b3I6OmNoZWNrT25lU2VsZWN0b3IpOgorCisyMDA4LTAxLTA2ICBFcmljIFNlaWRlbCAg
PGVyaWNAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBTYW0uCiAKICAgICAgICAg
Rml4IDpjaGVja2VkIG1hdGNoaW5nIHR5cGU9J3RleHQnIGFuZCBhZGQgdGVzdCBjYXNlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDA4ZTYyNDUuLjJkNGJlMjAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2VsZWN0b3IuY3BwCkBAIC0xNDA5LDYgKzE0MDksNzMgQEAgQ1NTU3R5bGVTZWxlY3Rvcjo6U2Vs
ZWN0b3JNYXRjaCBDU1NTdHlsZVNlbGVjdG9yOjpjaGVja1NlbGVjdG9yKENTU1NlbGVjdG9yKiBz
ZWwKICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CiB9CiAKK3N0YXRpYyB2b2lk
IGFkZExvY2FsTmFtZVRvU2V0KEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+KiBzZXQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIHFOYW1lKQoreworICAgIHNldC0+YWRkKHFOYW1lLmxvY2FsTmFtZSgp
LmltcGwoKSk7Cit9CisKK3N0YXRpYyBIYXNoU2V0PEF0b21pY1N0cmluZ0ltcGwqPiogY3JlYXRl
SHRtbENhc2VJbnNlbnNpdGl2ZUF0dHJpYnV0ZXNTZXQoKQoreworICAgIC8vIFRoaXMgaXMgdGhl
IGxpc3Qgb2YgYXR0cmlidXRlcyBpbiBIVE1MIDQuMDEgd2l0aCB2YWx1ZXMgbWFya2VkIGFzICJb
Q0ldIiBvciBjYXNlLXNlbnNpdGl2ZQorICAgIC8vIE1vemlsbGEgdHJlYXRzIGFsbCBvdGhlciB2
YWx1ZXMgYXMgY2FzZS1zZW5zaXRpdmUsIHRodXMgc28gZG8gd2UuCisgICAgSGFzaFNldDxBdG9t
aWNTdHJpbmdJbXBsKj4qIGF0dHJTZXQgPSBuZXcgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj47
CisKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0LCBhY2NlcHRfY2hhcnNldEF0dHIpOwor
ICAgIGFkZExvY2FsTmFtZVRvU2V0KGF0dHJTZXQsIGFjY2VwdEF0dHIpOworICAgIGFkZExvY2Fs
TmFtZVRvU2V0KGF0dHJTZXQsIGFsaWduQXR0cik7CisgICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0
clNldCwgYWxpbmtBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0LCBheGlzQXR0
cik7CisgICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0clNldCwgYmdjb2xvckF0dHIpOworICAgIGFk
ZExvY2FsTmFtZVRvU2V0KGF0dHJTZXQsIGNoYXJzZXRBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVU
b1NldChhdHRyU2V0LCBjaGVja2VkQXR0cik7CisgICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0clNl
dCwgY2xlYXJBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0LCBjb2RldHlwZUF0
dHIpOworICAgIGFkZExvY2FsTmFtZVRvU2V0KGF0dHJTZXQsIGNvbG9yQXR0cik7CisgICAgYWRk
TG9jYWxOYW1lVG9TZXQoYXR0clNldCwgY29tcGFjdEF0dHIpOworICAgIGFkZExvY2FsTmFtZVRv
U2V0KGF0dHJTZXQsIGRlY2xhcmVBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0
LCBkZWZlckF0dHIpOworICAgIGFkZExvY2FsTmFtZVRvU2V0KGF0dHJTZXQsIGRpckF0dHIpOwor
ICAgIGFkZExvY2FsTmFtZVRvU2V0KGF0dHJTZXQsIGRpc2FibGVkQXR0cik7CisgICAgYWRkTG9j
YWxOYW1lVG9TZXQoYXR0clNldCwgZW5jdHlwZUF0dHIpOworICAgIGFkZExvY2FsTmFtZVRvU2V0
KGF0dHJTZXQsIGZhY2VBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0LCBmcmFt
ZUF0dHIpOworICAgIGFkZExvY2FsTmFtZVRvU2V0KGF0dHJTZXQsIGhyZWZsYW5nQXR0cik7Cisg
ICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0clNldCwgaHR0cF9lcXVpdkF0dHIpOworICAgIGFkZExv
Y2FsTmFtZVRvU2V0KGF0dHJTZXQsIGxhbmdBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChh
dHRyU2V0LCBsYW5ndWFnZUF0dHIpOworICAgIGFkZExvY2FsTmFtZVRvU2V0KGF0dHJTZXQsIGxp
bmtBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0LCBtZWRpYUF0dHIpOworICAg
IGFkZExvY2FsTmFtZVRvU2V0KGF0dHJTZXQsIG1ldGhvZEF0dHIpOworICAgIGFkZExvY2FsTmFt
ZVRvU2V0KGF0dHJTZXQsIG11bHRpcGxlQXR0cik7CisgICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0
clNldCwgbm9ocmVmQXR0cik7CisgICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0clNldCwgbm9yZXNp
emVBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0LCBub3NoYWRlQXR0cik7Cisg
ICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0clNldCwgbm93cmFwQXR0cik7CisgICAgYWRkTG9jYWxO
YW1lVG9TZXQoYXR0clNldCwgcmVhZG9ubHlBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChh
dHRyU2V0LCByZWxBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0LCByZXZBdHRy
KTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0LCBydWxlc0F0dHIpOworICAgIGFkZExv
Y2FsTmFtZVRvU2V0KGF0dHJTZXQsIHNjb3BlQXR0cik7CisgICAgYWRkTG9jYWxOYW1lVG9TZXQo
YXR0clNldCwgc2Nyb2xsaW5nQXR0cik7CisgICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0clNldCwg
c2VsZWN0ZWRBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChhdHRyU2V0LCBzaGFwZUF0dHIp
OworICAgIGFkZExvY2FsTmFtZVRvU2V0KGF0dHJTZXQsIHRhcmdldEF0dHIpOworICAgIGFkZExv
Y2FsTmFtZVRvU2V0KGF0dHJTZXQsIHRleHRBdHRyKTsKKyAgICBhZGRMb2NhbE5hbWVUb1NldChh
dHRyU2V0LCB0eXBlQXR0cik7CisgICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0clNldCwgdmFsaWdu
QXR0cik7CisgICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0clNldCwgdmFsdWV0eXBlQXR0cik7Cisg
ICAgYWRkTG9jYWxOYW1lVG9TZXQoYXR0clNldCwgdmxpbmtBdHRyKTsKKworICAgIHJldHVybiBh
dHRyU2V0OworfQorCitzdGF0aWMgYm9vbCBodG1sQXR0cmlidXRlSGFzQ2FzZUluc2Vuc2l0aXZl
VmFsdWUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cikKK3sKKyAgICBzdGF0aWMgSGFzaFNldDxB
dG9taWNTdHJpbmdJbXBsKj4qIGh0bWxDYXNlSW5zZW5zaXRpdmVBdHRyaWJ1dGVzU2V0ID0gY3Jl
YXRlSHRtbENhc2VJbnNlbnNpdGl2ZUF0dHJpYnV0ZXNTZXQoKTsKKyAgICBib29sIGlzUG9zc2li
bGVIVE1MQXR0ciA9ICFhdHRyLmhhc1ByZWZpeCgpICYmIChhdHRyLm5hbWVzcGFjZVVSSSgpID09
IG51bGxBdG9tKTsKKyAgICByZXR1cm4gaXNQb3NzaWJsZUhUTUxBdHRyICYmIGh0bWxDYXNlSW5z
ZW5zaXRpdmVBdHRyaWJ1dGVzU2V0LT5jb250YWlucyhhdHRyLmxvY2FsTmFtZSgpLmltcGwoKSk7
Cit9CisKIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2hlY2tPbmVTZWxlY3RvcihDU1NTZWxlY3Rv
ciogc2VsLCBFbGVtZW50KiBlLCBib29sIGlzQW5jZXN0b3IsIGJvb2wgaXNTdWJTZWxlY3RvcikK
IHsKICAgICBpZiAoIWUpCkBAIC0xNDQ2LDkgKzE1MTMsMTEgQEAgYm9vbCBDU1NTdHlsZVNlbGVj
dG9yOjpjaGVja09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1lbnQqIGUsIGJvb2wg
aXNBbmMKICAgICAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOyAvLyBhdHRyaWJ1dGUgaXMgbm90IHNldAogCisgICAgICAgIGJvb2wgY2FzZVNlbnNpdGl2
ZSA9IGlzWE1MRG9jIHx8ICFodG1sQXR0cmlidXRlSGFzQ2FzZUluc2Vuc2l0aXZlVmFsdWUoc2Vs
LT5tX2F0dHIpOworCiAgICAgICAgIHN3aXRjaCAoc2VsLT5tX21hdGNoKSB7CiAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OkV4YWN0OgotICAgICAgICAgICAgaWYgKChpc1hNTERvYyAmJiBzZWwt
Pm1fdmFsdWUgIT0gdmFsdWUpIHx8ICghaXNYTUxEb2MgJiYgIWVxdWFsSWdub3JpbmdDYXNlKHNl
bC0+bV92YWx1ZSwgdmFsdWUpKSkKKyAgICAgICAgICAgIGlmIChjYXNlU2Vuc2l0aXZlID8gc2Vs
LT5tX3ZhbHVlICE9IHZhbHVlIDogIWVxdWFsSWdub3JpbmdDYXNlKHNlbC0+bV92YWx1ZSwgdmFs
dWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0OgpAQCAtMTQ1OSw3ICsxNTI4LDcgQEAgYm9v
bCBDU1NTdHlsZVNlbGVjdG9yOjpjaGVja09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWwsIEVs
ZW1lbnQqIGUsIGJvb2wgaXNBbmMKIAogICAgICAgICAgICAgaW50IHN0YXJ0U2VhcmNoQXQgPSAw
OwogICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICAgICAgICBpbnQgZm91bmRQ
b3MgPSB2YWx1ZS5maW5kKHNlbC0+bV92YWx1ZSwgc3RhcnRTZWFyY2hBdCwgaXNYTUxEb2MpOwor
ICAgICAgICAgICAgICAgIGludCBmb3VuZFBvcyA9IHZhbHVlLmZpbmQoc2VsLT5tX3ZhbHVlLCBz
dGFydFNlYXJjaEF0LCBjYXNlU2Vuc2l0aXZlKTsKICAgICAgICAgICAgICAgICBpZiAoZm91bmRQ
b3MgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
ICAgICBpZiAoZm91bmRQb3MgPT0gMCB8fCB2YWx1ZVtmb3VuZFBvcy0xXSA9PSAnICcpIHsKQEAg
LTE0NzQsMjEgKzE1NDMsMjEgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjaGVja09uZVNlbGVj
dG9yKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1lbnQqIGUsIGJvb2wgaXNBbmMKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRhaW46Ci0g
ICAgICAgICAgICBpZiAoIXZhbHVlLmNvbnRhaW5zKHNlbC0+bV92YWx1ZSwgaXNYTUxEb2MpKQor
ICAgICAgICAgICAgaWYgKCF2YWx1ZS5jb250YWlucyhzZWwtPm1fdmFsdWUsIGNhc2VTZW5zaXRp
dmUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpCZWdpbjoKLSAgICAgICAgICAgIGlmICghdmFsdWUu
c3RhcnRzV2l0aChzZWwtPm1fdmFsdWUsIGlzWE1MRG9jKSkKKyAgICAgICAgICAgIGlmICghdmFs
dWUuc3RhcnRzV2l0aChzZWwtPm1fdmFsdWUsIGNhc2VTZW5zaXRpdmUpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpFbmQ6Ci0gICAgICAgICAgICBpZiAoIXZhbHVlLmVuZHNXaXRoKHNlbC0+bV92YWx1
ZSwgaXNYTUxEb2MpKQorICAgICAgICAgICAgaWYgKCF2YWx1ZS5lbmRzV2l0aChzZWwtPm1fdmFs
dWUsIGNhc2VTZW5zaXRpdmUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpIeXBoZW46CiAgICAgICAg
ICAgICBpZiAodmFsdWUubGVuZ3RoKCkgPCBzZWwtPm1fdmFsdWUubGVuZ3RoKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCF2YWx1ZS5zdGFydHNXaXRo
KHNlbC0+bV92YWx1ZSwgaXNYTUxEb2MpKQorICAgICAgICAgICAgaWYgKCF2YWx1ZS5zdGFydHNX
aXRoKHNlbC0+bV92YWx1ZSwgY2FzZVNlbnNpdGl2ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgLy8gSXQgdGhleSBzdGFydCB0aGUgc2FtZSwgY2hlY2sgZm9y
IGV4YWN0IG1hdGNoIG9yIGZvbGxvd2luZyAnLSc6CiAgICAgICAgICAgICBpZiAodmFsdWUubGVu
Z3RoKCkgIT0gc2VsLT5tX3ZhbHVlLmxlbmd0aCgpICYmIHZhbHVlW3NlbC0+bV92YWx1ZS5sZW5n
dGgoKV0gIT0gJy0nKQpAQCAtMTUwMCw4ICsxNTY5LDcgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9y
OjpjaGVja09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1lbnQqIGUsIGJvb2wgaXNB
bmMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQotICAgIGlmIChzZWwtPm1f
bWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKSAKLSAgICB7CisgICAgaWYgKHNlbC0+
bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpIHsKICAgICAgICAgc3dpdGNoIChz
ZWwtPnBzZXVkb1R5cGUoKSkgewogICAgICAgICAgICAgLy8gUHNldWRvIGNsYXNzZXM6CiAgICAg
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbXB0eToK
</data>
<flag name="review"
          id="7979"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>