<?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>31525</bug_id>
          
          <creation_ts>2009-11-15 18:26:42 -0800</creation_ts>
          <short_desc>WAI-ARIA roles not supported on image map &lt;area&gt;</short_desc>
          <delta_ts>2009-11-19 11:28:40 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>163826</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-15 18:26:42 -0800</bug_when>
    <thetext>WAI-ARIA roles not supported on image map &lt;area&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164474</commentid>
    <comment_count>1</comment_count>
      <attachid>43409</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-17 23:20:58 -0800</bug_when>
    <thetext>Created attachment 43409
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164614</commentid>
    <comment_count>2</comment_count>
      <attachid>43409</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-18 10:06:08 -0800</bug_when>
    <thetext>Comment on attachment 43409
patch

&gt; +    String ariaRole = m_areaElement-&gt;getAttribute(roleAttr);

It&apos;s usually a slightly better idiom to put fetched attributes into const AtomicString&amp; local variables instead of String, because it avoids a little bit of reference count churn.

&gt; +static const ARIARoleMap&amp; createARIARoleMap()

I think it&apos;s cleaner for a create function to return an ARIARoleMap* rather than a const ARIARoleMap&amp;. I realize you&apos;re just moving this code.

&gt; +AccessibilityRole AccessibilityObject::ariaRoleToWebCoreRole(String&amp; value)

The argument should be const String&amp;, not String&amp;.

&gt; +    ASSERT(!value.isEmpty() &amp;&amp; !value.isNull());

Normally we don&apos;t use &amp;&amp; in assertions. Instead we do multiple assertions in such cases; that way we know which one failed. Also, all null strings are also empty, so the only reason to have both assertions is if you want to know from the assertion which is which, and if so, the null assertion has to come first.

&gt; -    AccessibilityRole role = ariaRoleToWebCoreRole(ariaRole);
&gt; +    AccessibilityRole role = AccessibilityObject::ariaRoleToWebCoreRole(ariaRole);

Do you really need to change this? Since AccessibilityRenderObject is derived from AccessibilityObject I&apos;d expect this to already be in scope.

review- because of the String&amp; thing -- everything else is too minor to matter, but that is not good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164897</commentid>
    <comment_count>3</comment_count>
      <attachid>43483</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-18 21:31:02 -0800</bug_when>
    <thetext>Created attachment 43483
patch

made all of darin&apos;s suggestions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165025</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-19 10:58:39 -0800</bug_when>
    <thetext>adding to commit queue, cuz the code is elsewhere</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165033</commentid>
    <comment_count>5</comment_count>
      <attachid>43483</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-19 11:28:34 -0800</bug_when>
    <thetext>Comment on attachment 43483
patch

Clearing flags on attachment: 43483

Committed r51195: &lt;http://trac.webkit.org/changeset/51195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165034</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-19 11:28:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43409</attachid>
            <date>2009-11-17 23:20:58 -0800</date>
            <delta_ts>2009-11-18 21:31:02 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>15334</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTEwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDktMTEtMTcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXQUktQVJJQSByb2xlcyBub3Qgc3VwcG9ydGVkIG9uIGltYWdlIG1hcCA8YXJlYT4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNTI1CisKKyAgICAg
ICAgVGVzdDogYWNjZXNzaWJpbGl0eS9hcmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1sCisKKyAg
ICAgICAgTW92ZWQgdGhlIGNvZGUgdG8gZGV0ZXJtaW5lIGFuIGFyaWEgcm9sZSBpbnRvIEFjY2Vz
c2liaWxpdHlPYmplY3QKKyAgICAgICAgc28gdGhhdCB0aGUgbWV0aG9kIHdvdWxkIGJlIGF2YWls
YWJsZSB0byBhbnkgcG90ZW50aWFsIGNsaWVudC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5SW1hZ2VNYXBMaW5rOjpyb2xlVmFsdWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpvcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBUklBUm9sZU1hcCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhUm9sZVRvV2ViQ29y
ZVJvbGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpvYnNlcnZhYmxlT2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVy
bWluZUFyaWFSb2xlQXR0cmlidXRlKToKKwogMjAwOS0xMS0xNyAgTmljb2xhcyBXZWJlciAgPHRo
YWtpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJ
bmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VN
YXBMaW5rLmNwcAkocmV2aXNpb24gNTEwNjcpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDE4
IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlJbWFnZU0KICAgICByZXR1cm4g
bV9tYXBFbGVtZW50LT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKG1f
bWFwRWxlbWVudC0+cmVuZGVyZXIoKSk7CiB9CiAgICAgCitBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nl
c3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpyb2xlVmFsdWUoKSBjb25zdAoreworICAgIGlmICghbV9h
cmVhRWxlbWVudCkKKyAgICAgICAgcmV0dXJuIFdlYkNvcmVMaW5rUm9sZTsKKyAgICAKKyAgICBT
dHJpbmcgYXJpYVJvbGUgPSBtX2FyZWFFbGVtZW50LT5nZXRBdHRyaWJ1dGUocm9sZUF0dHIpOwor
ICAgIGlmICghYXJpYVJvbGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eU9iamVjdDo6YXJpYVJvbGVUb1dlYkNvcmVSb2xlKGFyaWFSb2xlKTsKKworICAgIHJldHVybiBX
ZWJDb3JlTGlua1JvbGU7Cit9CisgICAgCiBFbGVtZW50KiBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBM
aW5rOjphY3Rpb25FbGVtZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gYW5jaG9yRWxlbWVudCgp
OwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluay5oCShyZXZpc2lvbiA1MTA2NykKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SFRNTE1hcEVsZW1lbnQoSFRNTE1hcEVsZW1lbnQqIGVsZW1l
bnQpIHsgbV9tYXBFbGVtZW50ID0gZWxlbWVudDsgfSAgICAKICAgICB2b2lkIHNldFBhcmVudChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KICAgICAg
ICAgCi0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBXZWJDb3JlTGlua1JvbGU7IH0KKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJv
bGVWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCShyZXZpc2lvbiA1MTA2NykKKysrIFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQw
LDYgKzg0MCw5MCBAQCBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gQWNjZXNzaWJpbGl0eU9iCiAK
ICAgICAvLyBBIHRpZSBnb2VzIHRvIGhvcml6b250YWwuCiAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlPcmllbnRhdGlvbkhvcml6b250YWw7Cit9ICAgIAorCit0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBBY2Nlc3NpYmlsaXR5Um9sZSwgQ2FzZUZvbGRpbmdIYXNoPiBBUklBUm9sZU1hcDsKKworc3Ry
dWN0IFJvbGVFbnRyeSB7CisgICAgU3RyaW5nIGFyaWFSb2xlOworICAgIEFjY2Vzc2liaWxpdHlS
b2xlIHdlYmNvcmVSb2xlOworfTsKKworc3RhdGljIGNvbnN0IEFSSUFSb2xlTWFwJiBjcmVhdGVB
UklBUm9sZU1hcCgpCit7CisgICAgY29uc3QgUm9sZUVudHJ5IHJvbGVzW10gPSB7CisgICAgICAg
IHsgImFsZXJ0IiwgQXBwbGljYXRpb25BbGVydFJvbGUgfSwKKyAgICAgICAgeyAiYWxlcnRkaWFs
b2ciLCBBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nUm9sZSB9LAorICAgICAgICB7ICJhcHBsaWNhdGlv
biIsIExhbmRtYXJrQXBwbGljYXRpb25Sb2xlIH0sCisgICAgICAgIHsgImFydGljbGUiLCBEb2N1
bWVudEFydGljbGVSb2xlIH0sCisgICAgICAgIHsgImJhbm5lciIsIExhbmRtYXJrQmFubmVyUm9s
ZSB9LAorICAgICAgICB7ICJidXR0b24iLCBCdXR0b25Sb2xlIH0sCisgICAgICAgIHsgImNoZWNr
Ym94IiwgQ2hlY2tCb3hSb2xlIH0sCisgICAgICAgIHsgImNvbXBsZW1lbnRhcnkiLCBMYW5kbWFy
a0NvbXBsZW1lbnRhcnlSb2xlIH0sCisgICAgICAgIHsgImNvbnRlbnRpbmZvIiwgTGFuZG1hcmtD
b250ZW50SW5mb1JvbGUgfSwKKyAgICAgICAgeyAiZGlhbG9nIiwgQXBwbGljYXRpb25EaWFsb2dS
b2xlIH0sCisgICAgICAgIHsgImRpcmVjdG9yeSIsIERpcmVjdG9yeVJvbGUgfSwKKyAgICAgICAg
eyAiZ3JpZCIsIFRhYmxlUm9sZSB9LAorICAgICAgICB7ICJncmlkY2VsbCIsIENlbGxSb2xlIH0s
CisgICAgICAgIHsgImNvbHVtbmhlYWRlciIsIENvbHVtbkhlYWRlclJvbGUgfSwKKyAgICAgICAg
eyAiY29tYm9ib3giLCBDb21ib0JveFJvbGUgfSwKKyAgICAgICAgeyAiZGVmaW5pdGlvbiIsIERl
ZmluaXRpb25MaXN0RGVmaW5pdGlvblJvbGUgfSwKKyAgICAgICAgeyAiZG9jdW1lbnQiLCBEb2N1
bWVudFJvbGUgfSwKKyAgICAgICAgeyAicm93aGVhZGVyIiwgUm93SGVhZGVyUm9sZSB9LAorICAg
ICAgICB7ICJncm91cCIsIEdyb3VwUm9sZSB9LAorICAgICAgICB7ICJoZWFkaW5nIiwgSGVhZGlu
Z1JvbGUgfSwKKyAgICAgICAgeyAiaW1nIiwgSW1hZ2VSb2xlIH0sCisgICAgICAgIHsgImxpbmsi
LCBXZWJDb3JlTGlua1JvbGUgfSwKKyAgICAgICAgeyAibGlzdCIsIExpc3RSb2xlIH0sICAgICAg
ICAKKyAgICAgICAgeyAibGlzdGl0ZW0iLCBHcm91cFJvbGUgfSwgICAgICAgIAorICAgICAgICB7
ICJsaXN0Ym94IiwgTGlzdEJveFJvbGUgfSwKKyAgICAgICAgeyAibG9nIiwgQXBwbGljYXRpb25M
b2dSb2xlIH0sCisgICAgICAgIC8vICJvcHRpb24iIGlzbid0IGhlcmUgYmVjYXVzZSBpdCBtYXkg
bWFwIHRvIGRpZmZlcmVudCByb2xlcyBkZXBlbmRpbmcgb24gdGhlIHBhcmVudCBlbGVtZW50J3Mg
cm9sZQorICAgICAgICB7ICJtYWluIiwgTGFuZG1hcmtNYWluUm9sZSB9LAorICAgICAgICB7ICJt
YXJxdWVlIiwgQXBwbGljYXRpb25NYXJxdWVlUm9sZSB9LAorICAgICAgICB7ICJtZW51IiwgTWVu
dVJvbGUgfSwKKyAgICAgICAgeyAibWVudWJhciIsIEdyb3VwUm9sZSB9LAorICAgICAgICAvLyAi
bWVudWl0ZW0iIGlzbid0IGhlcmUgYmVjYXVzZSBpdCBtYXkgbWFwIHRvIGRpZmZlcmVudCByb2xl
cyBkZXBlbmRpbmcgb24gdGhlIHBhcmVudCBlbGVtZW50J3Mgcm9sZQorICAgICAgICB7ICJtZW51
aXRlbWNoZWNrYm94IiwgTWVudUl0ZW1Sb2xlIH0sCisgICAgICAgIHsgIm1lbnVpdGVtcmFkaW8i
LCBNZW51SXRlbVJvbGUgfSwKKyAgICAgICAgeyAibm90ZSIsIERvY3VtZW50Tm90ZVJvbGUgfSwK
KyAgICAgICAgeyAibmF2aWdhdGlvbiIsIExhbmRtYXJrTmF2aWdhdGlvblJvbGUgfSwKKyAgICAg
ICAgeyAib3B0aW9uIiwgTGlzdEJveE9wdGlvblJvbGUgfSwKKyAgICAgICAgeyAicHJlc2VudGF0
aW9uIiwgSWdub3JlZFJvbGUgfSwKKyAgICAgICAgeyAicHJvZ3Jlc3NiYXIiLCBQcm9ncmVzc0lu
ZGljYXRvclJvbGUgfSwKKyAgICAgICAgeyAicmFkaW8iLCBSYWRpb0J1dHRvblJvbGUgfSwKKyAg
ICAgICAgeyAicmFkaW9ncm91cCIsIFJhZGlvR3JvdXBSb2xlIH0sCisgICAgICAgIHsgInJlZ2lv
biIsIERvY3VtZW50UmVnaW9uUm9sZSB9LAorICAgICAgICB7ICJyb3ciLCBSb3dSb2xlIH0sCisg
ICAgICAgIHsgInJhbmdlIiwgU2xpZGVyUm9sZSB9LAorICAgICAgICB7ICJzZWFyY2giLCBMYW5k
bWFya1NlYXJjaFJvbGUgfSwKKyAgICAgICAgeyAic2VwYXJhdG9yIiwgU3BsaXR0ZXJSb2xlIH0s
CisgICAgICAgIHsgInNsaWRlciIsIFNsaWRlclJvbGUgfSwKKyAgICAgICAgeyAic3BpbmJ1dHRv
biIsIFByb2dyZXNzSW5kaWNhdG9yUm9sZSB9LAorICAgICAgICB7ICJzdGF0dXMiLCBBcHBsaWNh
dGlvblN0YXR1c1JvbGUgfSwKKyAgICAgICAgeyAidGFiIiwgVGFiUm9sZSB9LAorICAgICAgICB7
ICJ0YWJsaXN0IiwgVGFiTGlzdFJvbGUgfSwKKyAgICAgICAgeyAidGFicGFuZWwiLCBUYWJQYW5l
bFJvbGUgfSwKKyAgICAgICAgeyAidGV4dGJveCIsIFRleHRBcmVhUm9sZSB9LAorICAgICAgICB7
ICJ0aW1lciIsIEFwcGxpY2F0aW9uVGltZXJSb2xlIH0sCisgICAgICAgIHsgInRvb2xiYXIiLCBU
b29sYmFyUm9sZSB9LAorICAgICAgICB7ICJ0b29sdGlwIiwgVXNlckludGVyZmFjZVRvb2x0aXBS
b2xlIH0sCisgICAgICAgIHsgInRyZWUiLCBUcmVlUm9sZSB9LAorICAgICAgICB7ICJ0cmVlaXRl
bSIsIFRyZWVJdGVtUm9sZSB9CisgICAgfTsKKyAgICBBUklBUm9sZU1hcCYgcm9sZU1hcCA9ICpu
ZXcgQVJJQVJvbGVNYXA7CisgICAgCisgICAgY29uc3QgdW5zaWduZWQgbnVtUm9sZXMgPSBzaXpl
b2Yocm9sZXMpIC8gc2l6ZW9mKHJvbGVzWzBdKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtUm9sZXM7ICsraSkKKyAgICAgICAgcm9sZU1hcC5zZXQocm9sZXNbaV0uYXJpYVJvbGUs
IHJvbGVzW2ldLndlYmNvcmVSb2xlKTsKKyAgICByZXR1cm4gcm9sZU1hcDsKK30KKworQWNjZXNz
aWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYVJvbGVUb1dlYkNvcmVSb2xlKFN0
cmluZyYgdmFsdWUpCit7CisgICAgQVNTRVJUKCF2YWx1ZS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlz
TnVsbCgpKTsKKyAgICBzdGF0aWMgY29uc3QgQVJJQVJvbGVNYXAmIHJvbGVNYXAgPSBjcmVhdGVB
UklBUm9sZU1hcCgpOworICAgIHJldHVybiByb2xlTWFwLmdldCh2YWx1ZSk7CiB9CiAgICAgCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgJKHJldmlzaW9uIDUxMDY3KQorKysgV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDE3LDYgKzQxNyw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGFjdGl2ZURlc2Nl
bmRhbnQoKSBjb25zdCB7IHJldHVybiAwOyB9ICAgIAogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVB
Y3RpdmVEZXNjZW5kYW50Q2hhbmdlZCgpIHsgfQogCisgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlS
b2xlIGFyaWFSb2xlVG9XZWJDb3JlUm9sZShTdHJpbmcmKTsKKyAgICAKICAgICB2aXJ0dWFsIFZp
c2libGVQb3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJhbmdlKCkgY29uc3QgeyByZXR1cm4g
VmlzaWJsZVBvc2l0aW9uUmFuZ2UoKTsgfQogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uUmFu
Z2UgdmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBjb25zdCB7IHJldHVybiBW
aXNpYmxlUG9zaXRpb25SYW5nZSgpOyB9CiAgICAgCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiA1MTA2
NykKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjQzNSw5MCArMjQzNSw2IEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFjY2Vzc2liaWxpdHlSZW5kZXIKICAgICAKICAgICByZXR1cm4gMDsKIH0KLSAgICAKLXR5
cGVkZWYgSGFzaE1hcDxTdHJpbmcsIEFjY2Vzc2liaWxpdHlSb2xlLCBDYXNlRm9sZGluZ0hhc2g+
IEFSSUFSb2xlTWFwOwotCi1zdHJ1Y3QgUm9sZUVudHJ5IHsKLSAgICBTdHJpbmcgYXJpYVJvbGU7
Ci0gICAgQWNjZXNzaWJpbGl0eVJvbGUgd2ViY29yZVJvbGU7Ci19OwotCi1zdGF0aWMgY29uc3Qg
QVJJQVJvbGVNYXAmIGNyZWF0ZUFSSUFSb2xlTWFwKCkKLXsKLSAgICBjb25zdCBSb2xlRW50cnkg
cm9sZXNbXSA9IHsKLSAgICAgICAgeyAiYWxlcnQiLCBBcHBsaWNhdGlvbkFsZXJ0Um9sZSB9LAot
ICAgICAgICB7ICJhbGVydGRpYWxvZyIsIEFwcGxpY2F0aW9uQWxlcnREaWFsb2dSb2xlIH0sCi0g
ICAgICAgIHsgImFwcGxpY2F0aW9uIiwgTGFuZG1hcmtBcHBsaWNhdGlvblJvbGUgfSwKLSAgICAg
ICAgeyAiYXJ0aWNsZSIsIERvY3VtZW50QXJ0aWNsZVJvbGUgfSwKLSAgICAgICAgeyAiYmFubmVy
IiwgTGFuZG1hcmtCYW5uZXJSb2xlIH0sCi0gICAgICAgIHsgImJ1dHRvbiIsIEJ1dHRvblJvbGUg
fSwKLSAgICAgICAgeyAiY2hlY2tib3giLCBDaGVja0JveFJvbGUgfSwKLSAgICAgICAgeyAiY29t
cGxlbWVudGFyeSIsIExhbmRtYXJrQ29tcGxlbWVudGFyeVJvbGUgfSwKLSAgICAgICAgeyAiY29u
dGVudGluZm8iLCBMYW5kbWFya0NvbnRlbnRJbmZvUm9sZSB9LAotICAgICAgICB7ICJkaWFsb2ci
LCBBcHBsaWNhdGlvbkRpYWxvZ1JvbGUgfSwKLSAgICAgICAgeyAiZGlyZWN0b3J5IiwgRGlyZWN0
b3J5Um9sZSB9LAotICAgICAgICB7ICJncmlkIiwgVGFibGVSb2xlIH0sCi0gICAgICAgIHsgImdy
aWRjZWxsIiwgQ2VsbFJvbGUgfSwKLSAgICAgICAgeyAiY29sdW1uaGVhZGVyIiwgQ29sdW1uSGVh
ZGVyUm9sZSB9LAotICAgICAgICB7ICJjb21ib2JveCIsIENvbWJvQm94Um9sZSB9LAotICAgICAg
ICB7ICJkZWZpbml0aW9uIiwgRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uUm9sZSB9LAotICAgICAg
ICB7ICJkb2N1bWVudCIsIERvY3VtZW50Um9sZSB9LAotICAgICAgICB7ICJyb3doZWFkZXIiLCBS
b3dIZWFkZXJSb2xlIH0sCi0gICAgICAgIHsgImdyb3VwIiwgR3JvdXBSb2xlIH0sCi0gICAgICAg
IHsgImhlYWRpbmciLCBIZWFkaW5nUm9sZSB9LAotICAgICAgICB7ICJpbWciLCBJbWFnZVJvbGUg
fSwKLSAgICAgICAgeyAibGluayIsIFdlYkNvcmVMaW5rUm9sZSB9LAotICAgICAgICB7ICJsaXN0
IiwgTGlzdFJvbGUgfSwgICAgICAgIAotICAgICAgICB7ICJsaXN0aXRlbSIsIEdyb3VwUm9sZSB9
LCAgICAgICAgCi0gICAgICAgIHsgImxpc3Rib3giLCBMaXN0Qm94Um9sZSB9LAotICAgICAgICB7
ICJsb2ciLCBBcHBsaWNhdGlvbkxvZ1JvbGUgfSwKLSAgICAgICAgLy8gIm9wdGlvbiIgaXNuJ3Qg
aGVyZSBiZWNhdXNlIGl0IG1heSBtYXAgdG8gZGlmZmVyZW50IHJvbGVzIGRlcGVuZGluZyBvbiB0
aGUgcGFyZW50IGVsZW1lbnQncyByb2xlCi0gICAgICAgIHsgIm1haW4iLCBMYW5kbWFya01haW5S
b2xlIH0sCi0gICAgICAgIHsgIm1hcnF1ZWUiLCBBcHBsaWNhdGlvbk1hcnF1ZWVSb2xlIH0sCi0g
ICAgICAgIHsgIm1lbnUiLCBNZW51Um9sZSB9LAotICAgICAgICB7ICJtZW51YmFyIiwgR3JvdXBS
b2xlIH0sCi0gICAgICAgIC8vICJtZW51aXRlbSIgaXNuJ3QgaGVyZSBiZWNhdXNlIGl0IG1heSBt
YXAgdG8gZGlmZmVyZW50IHJvbGVzIGRlcGVuZGluZyBvbiB0aGUgcGFyZW50IGVsZW1lbnQncyBy
b2xlCi0gICAgICAgIHsgIm1lbnVpdGVtY2hlY2tib3giLCBNZW51SXRlbVJvbGUgfSwKLSAgICAg
ICAgeyAibWVudWl0ZW1yYWRpbyIsIE1lbnVJdGVtUm9sZSB9LAotICAgICAgICB7ICJub3RlIiwg
RG9jdW1lbnROb3RlUm9sZSB9LAotICAgICAgICB7ICJuYXZpZ2F0aW9uIiwgTGFuZG1hcmtOYXZp
Z2F0aW9uUm9sZSB9LAotICAgICAgICB7ICJvcHRpb24iLCBMaXN0Qm94T3B0aW9uUm9sZSB9LAot
ICAgICAgICB7ICJwcmVzZW50YXRpb24iLCBJZ25vcmVkUm9sZSB9LAotICAgICAgICB7ICJwcm9n
cmVzc2JhciIsIFByb2dyZXNzSW5kaWNhdG9yUm9sZSB9LAotICAgICAgICB7ICJyYWRpbyIsIFJh
ZGlvQnV0dG9uUm9sZSB9LAotICAgICAgICB7ICJyYWRpb2dyb3VwIiwgUmFkaW9Hcm91cFJvbGUg
fSwKLSAgICAgICAgeyAicmVnaW9uIiwgRG9jdW1lbnRSZWdpb25Sb2xlIH0sCi0gICAgICAgIHsg
InJvdyIsIFJvd1JvbGUgfSwKLSAgICAgICAgeyAicmFuZ2UiLCBTbGlkZXJSb2xlIH0sCi0gICAg
ICAgIHsgInNlYXJjaCIsIExhbmRtYXJrU2VhcmNoUm9sZSB9LAotICAgICAgICB7ICJzZXBhcmF0
b3IiLCBTcGxpdHRlclJvbGUgfSwKLSAgICAgICAgeyAic2xpZGVyIiwgU2xpZGVyUm9sZSB9LAot
ICAgICAgICB7ICJzcGluYnV0dG9uIiwgUHJvZ3Jlc3NJbmRpY2F0b3JSb2xlIH0sCi0gICAgICAg
IHsgInN0YXR1cyIsIEFwcGxpY2F0aW9uU3RhdHVzUm9sZSB9LAotICAgICAgICB7ICJ0YWIiLCBU
YWJSb2xlIH0sCi0gICAgICAgIHsgInRhYmxpc3QiLCBUYWJMaXN0Um9sZSB9LAotICAgICAgICB7
ICJ0YWJwYW5lbCIsIFRhYlBhbmVsUm9sZSB9LAotICAgICAgICB7ICJ0ZXh0Ym94IiwgVGV4dEFy
ZWFSb2xlIH0sCi0gICAgICAgIHsgInRpbWVyIiwgQXBwbGljYXRpb25UaW1lclJvbGUgfSwKLSAg
ICAgICAgeyAidG9vbGJhciIsIFRvb2xiYXJSb2xlIH0sCi0gICAgICAgIHsgInRvb2x0aXAiLCBV
c2VySW50ZXJmYWNlVG9vbHRpcFJvbGUgfSwKLSAgICAgICAgeyAidHJlZSIsIFRyZWVSb2xlIH0s
Ci0gICAgICAgIHsgInRyZWVpdGVtIiwgVHJlZUl0ZW1Sb2xlIH0KLSAgICB9OwotICAgIEFSSUFS
b2xlTWFwJiByb2xlTWFwID0gKm5ldyBBUklBUm9sZU1hcDsKLSAgICAgICAgCi0gICAgY29uc3Qg
dW5zaWduZWQgbnVtUm9sZXMgPSBzaXplb2Yocm9sZXMpIC8gc2l6ZW9mKHJvbGVzWzBdKTsKLSAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtUm9sZXM7ICsraSkKLSAgICAgICAgcm9sZU1h
cC5zZXQocm9sZXNbaV0uYXJpYVJvbGUsIHJvbGVzW2ldLndlYmNvcmVSb2xlKTsKLSAgICByZXR1
cm4gcm9sZU1hcDsKLX0KLQotc3RhdGljIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFSb2xlVG9XZWJD
b3JlUm9sZShTdHJpbmcgdmFsdWUpCi17Ci0gICAgQVNTRVJUKCF2YWx1ZS5pc0VtcHR5KCkgJiYg
IXZhbHVlLmlzTnVsbCgpKTsKLSAgICBzdGF0aWMgY29uc3QgQVJJQVJvbGVNYXAmIHJvbGVNYXAg
PSBjcmVhdGVBUklBUm9sZU1hcCgpOwotICAgIHJldHVybiByb2xlTWFwLmdldCh2YWx1ZSk7Ci19
CiAKIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWlu
ZUFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3QKIHsKQEAgLTI1MjYsNyArMjQ0Miw3IEBAIEFjY2Vz
c2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmoKICAgICBpZiAoYXJpYVJvbGUuaXNO
dWxsKCkgfHwgYXJpYVJvbGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gVW5rbm93blJvbGU7
CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IGFyaWFSb2xlVG9XZWJDb3JlUm9s
ZShhcmlhUm9sZSk7CisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmFyaWFSb2xlVG9XZWJDb3JlUm9sZShhcmlhUm9sZSk7CiAgICAgaWYgKHJvbGUpCiAg
ICAgICAgIHJldHVybiByb2xlOwogICAgIC8vIHNlbGVjdHMgYW5kIGxpc3Rib3hlcyBib3RoIGhh
dmUgb3B0aW9ucyBhcyBjaGlsZCByb2xlcywgYnV0IHRoZXkgbWFwIHRvIGRpZmZlcmVudCByb2xl
cyB3aXRoaW4gV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTExMDIpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0xMS0xNyAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBSS1BUklBIHJvbGVzIG5vdCBzdXBwb3J0
ZWQgb24gaW1hZ2UgbWFwIDxhcmVhPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzE1MjUKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS11c2Vk
LW9uLWltYWdlLW1hcHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDA5
LTExLTE3ICBIYXlhdG8gSXRvICA8aGF5YXRvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEt
dXNlZC1vbi1pbWFnZS1tYXBzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9uLWltYWdl
LW1hcHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACisKK1RoaXMg
dGVzdHMgdGhhdCB5b3UgY2FuIHNldCBhbiBBUklBIHJvbGUgb24gaW1hZ2UgbWFwIGVsZW1lbnRz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBncm91cC5jaGlsZEF0SW5k
ZXgoMCkucm9sZSBpcyAnQVhSb2xlOiBBWEJ1dHRvbicKK1BBU1MgZ3JvdXAuY2hpbGRBdEluZGV4
KDEpLnJvbGUgaXMgJ0FYUm9sZTogQVhCdXR0b24nCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9hcmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9uLWltYWdlLW1hcHMuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9uLWltYWdlLW1hcHMuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGltZyBpZD0iaW1hZ2UiIHVzZW1hcD0iI21hcCIg
c3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFPVG03QUFBQUNINUJB
RUFBQUFBTEFBQUFBQUJBQUVBQUFJQ1JBRUFPdz09IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjUwIiBh
bHQ9IiI+Cis8bWFwIG5hbWU9Im1hcCIgaWQ9Im1hcCI+CisgICAgPGFyZWEgdGFiaW5kZXg9IjAi
IHJvbGU9ImJ1dHRvbiIgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMCwwLDUwLDUwIiBocmVmPSIjIiB0
aXRsZT0iRXhhbXBsZSAxIj4KKyAgICA8YXJlYSB0YWJpbmRleD0iMCIgcm9sZT0iYnV0dG9uIiBz
aGFwZT0icmVjdCIgY29vcmRzPSI1MCwwLDEwMCw1MCIgaHJlZj0iIyIgdGl0bGU9IkV4YW1wbGUg
MiI+Cis8L21hcD4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQg
eW91IGNhbiBzZXQgYW4gQVJJQSByb2xlIG9uIGltYWdlIG1hcCBlbGVtZW50cy4iKTsKKworICAg
IGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKworICAgICAgICAgIHZhciBn
cm91cCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KS5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgc2hvdWxkQmUoImdyb3VwLmNoaWxkQXRJbmRl
eCgwKS5yb2xlIiwgIidBWFJvbGU6IEFYQnV0dG9uJyIpOworICAgICAgICAgIHNob3VsZEJlKCJn
cm91cC5jaGlsZEF0SW5kZXgoMSkucm9sZSIsICInQVhSb2xlOiBBWEJ1dHRvbiciKTsKKyAgICB9
CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHJldmlzaW9uIDUx
MDY3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29weSkK
QEAgLTU0LDYgKzU0LDcgQEAgYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktc3RheS13aXRo
aQogYWNjZXNzaWJpbGl0eS9hcmlhLWxpbmstc3VwcG9ydHMtcHJlc3MuaHRtbAogYWNjZXNzaWJp
bGl0eS9hcmlhLXJlYWRvbmx5Lmh0bWwKIGFjY2Vzc2liaWxpdHkvYXJpYS10YWItcm9sZXMuaHRt
bAorYWNjZXNzaWJpbGl0eS9hcmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1sCiBhY2Nlc3NpYmls
aXR5L2J1dHRvbi1wcmVzcy1hY3Rpb24uaHRtbAogYWNjZXNzaWJpbGl0eS9jYW52YXMuaHRtbAog
YWNjZXNzaWJpbGl0eS9lZGl0YWJsZS13ZWJhcmVhLWNvbnRleHQtbWVudS1wb2ludC5odG1sCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkocmV2aXNpb24gNTEwNjcpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMzcxLDYgKzM3MSw3
IEBAIGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sCiBhY2Nlc3NpYmlsaXR5L2FyaWEt
cm9sZXMuaHRtbAogYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlcy5odG1sCiBhY2Nlc3NpYmlsaXR5
L2FyaWEtdGFiLXJvbGVzLmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9uLWltYWdlLW1h
cHMuaHRtbAogYWNjZXNzaWJpbGl0eS9idXR0b24tcHJlc3MtYWN0aW9uLmh0bWwKIGFjY2Vzc2li
aWxpdHkvY2FudmFzLmh0bWwKIGFjY2Vzc2liaWxpdHkvZG9jdW1lbnQtYXR0cmlidXRlcy5odG1s
Cg==
</data>
<flag name="review"
          id="25112"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43483</attachid>
            <date>2009-11-18 21:31:02 -0800</date>
            <delta_ts>2009-11-19 11:28:33 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13582</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluay5jcHAJKHJldmlzaW9uIDUxMDY3KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCwx
OCBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5SW1hZ2VNCiAgICAgcmV0dXJu
IG1fbWFwRWxlbWVudC0+ZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZSht
X21hcEVsZW1lbnQtPnJlbmRlcmVyKCkpOwogfQogICAgIAorQWNjZXNzaWJpbGl0eVJvbGUgQWNj
ZXNzaWJpbGl0eUltYWdlTWFwTGluazo6cm9sZVZhbHVlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1f
YXJlYUVsZW1lbnQpCisgICAgICAgIHJldHVybiBXZWJDb3JlTGlua1JvbGU7CisgICAgCisgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBhcmlhUm9sZSA9IG1fYXJlYUVsZW1lbnQtPmdldEF0dHJpYnV0
ZShyb2xlQXR0cik7CisgICAgaWYgKCFhcmlhUm9sZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhUm9sZVRvV2ViQ29yZVJvbGUoYXJpYVJvbGUpOwor
CisgICAgcmV0dXJuIFdlYkNvcmVMaW5rUm9sZTsKK30KKyAgICAKIEVsZW1lbnQqIEFjY2Vzc2li
aWxpdHlJbWFnZU1hcExpbms6OmFjdGlvbkVsZW1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBh
bmNob3JFbGVtZW50KCk7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUltYWdlTWFwTGluay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgJKHJldmlzaW9uIDUxMDY3KQorKysgV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaAkod29ya2luZyBjb3B5KQpAQCAt
NDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIVE1MTWFwRWxlbWVudChIVE1MTWFw
RWxlbWVudCogZWxlbWVudCkgeyBtX21hcEVsZW1lbnQgPSBlbGVtZW50OyB9ICAgIAogICAgIHZv
aWQgc2V0UGFyZW50KEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBh
cmVudDsgfQogICAgICAgICAKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIFdlYkNvcmVMaW5rUm9sZTsgfQorICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKSW5kZXg6IFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAJKHJldmlzaW9uIDUxMDY3KQor
KysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04NDAsNiArODQwLDkwIEBAIEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbiBBY2Nl
c3NpYmlsaXR5T2IKIAogICAgIC8vIEEgdGllIGdvZXMgdG8gaG9yaXpvbnRhbC4KICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uSG9yaXpvbnRhbDsKK30gICAgCisKK3R5cGVkZWYg
SGFzaE1hcDxTdHJpbmcsIEFjY2Vzc2liaWxpdHlSb2xlLCBDYXNlRm9sZGluZ0hhc2g+IEFSSUFS
b2xlTWFwOworCitzdHJ1Y3QgUm9sZUVudHJ5IHsKKyAgICBTdHJpbmcgYXJpYVJvbGU7CisgICAg
QWNjZXNzaWJpbGl0eVJvbGUgd2ViY29yZVJvbGU7Cit9OworCitzdGF0aWMgQVJJQVJvbGVNYXAq
IGNyZWF0ZUFSSUFSb2xlTWFwKCkKK3sKKyAgICBjb25zdCBSb2xlRW50cnkgcm9sZXNbXSA9IHsK
KyAgICAgICAgeyAiYWxlcnQiLCBBcHBsaWNhdGlvbkFsZXJ0Um9sZSB9LAorICAgICAgICB7ICJh
bGVydGRpYWxvZyIsIEFwcGxpY2F0aW9uQWxlcnREaWFsb2dSb2xlIH0sCisgICAgICAgIHsgImFw
cGxpY2F0aW9uIiwgTGFuZG1hcmtBcHBsaWNhdGlvblJvbGUgfSwKKyAgICAgICAgeyAiYXJ0aWNs
ZSIsIERvY3VtZW50QXJ0aWNsZVJvbGUgfSwKKyAgICAgICAgeyAiYmFubmVyIiwgTGFuZG1hcmtC
YW5uZXJSb2xlIH0sCisgICAgICAgIHsgImJ1dHRvbiIsIEJ1dHRvblJvbGUgfSwKKyAgICAgICAg
eyAiY2hlY2tib3giLCBDaGVja0JveFJvbGUgfSwKKyAgICAgICAgeyAiY29tcGxlbWVudGFyeSIs
IExhbmRtYXJrQ29tcGxlbWVudGFyeVJvbGUgfSwKKyAgICAgICAgeyAiY29udGVudGluZm8iLCBM
YW5kbWFya0NvbnRlbnRJbmZvUm9sZSB9LAorICAgICAgICB7ICJkaWFsb2ciLCBBcHBsaWNhdGlv
bkRpYWxvZ1JvbGUgfSwKKyAgICAgICAgeyAiZGlyZWN0b3J5IiwgRGlyZWN0b3J5Um9sZSB9LAor
ICAgICAgICB7ICJncmlkIiwgVGFibGVSb2xlIH0sCisgICAgICAgIHsgImdyaWRjZWxsIiwgQ2Vs
bFJvbGUgfSwKKyAgICAgICAgeyAiY29sdW1uaGVhZGVyIiwgQ29sdW1uSGVhZGVyUm9sZSB9LAor
ICAgICAgICB7ICJjb21ib2JveCIsIENvbWJvQm94Um9sZSB9LAorICAgICAgICB7ICJkZWZpbml0
aW9uIiwgRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uUm9sZSB9LAorICAgICAgICB7ICJkb2N1bWVu
dCIsIERvY3VtZW50Um9sZSB9LAorICAgICAgICB7ICJyb3doZWFkZXIiLCBSb3dIZWFkZXJSb2xl
IH0sCisgICAgICAgIHsgImdyb3VwIiwgR3JvdXBSb2xlIH0sCisgICAgICAgIHsgImhlYWRpbmci
LCBIZWFkaW5nUm9sZSB9LAorICAgICAgICB7ICJpbWciLCBJbWFnZVJvbGUgfSwKKyAgICAgICAg
eyAibGluayIsIFdlYkNvcmVMaW5rUm9sZSB9LAorICAgICAgICB7ICJsaXN0IiwgTGlzdFJvbGUg
fSwgICAgICAgIAorICAgICAgICB7ICJsaXN0aXRlbSIsIEdyb3VwUm9sZSB9LCAgICAgICAgCisg
ICAgICAgIHsgImxpc3Rib3giLCBMaXN0Qm94Um9sZSB9LAorICAgICAgICB7ICJsb2ciLCBBcHBs
aWNhdGlvbkxvZ1JvbGUgfSwKKyAgICAgICAgLy8gIm9wdGlvbiIgaXNuJ3QgaGVyZSBiZWNhdXNl
IGl0IG1heSBtYXAgdG8gZGlmZmVyZW50IHJvbGVzIGRlcGVuZGluZyBvbiB0aGUgcGFyZW50IGVs
ZW1lbnQncyByb2xlCisgICAgICAgIHsgIm1haW4iLCBMYW5kbWFya01haW5Sb2xlIH0sCisgICAg
ICAgIHsgIm1hcnF1ZWUiLCBBcHBsaWNhdGlvbk1hcnF1ZWVSb2xlIH0sCisgICAgICAgIHsgIm1l
bnUiLCBNZW51Um9sZSB9LAorICAgICAgICB7ICJtZW51YmFyIiwgR3JvdXBSb2xlIH0sCisgICAg
ICAgIC8vICJtZW51aXRlbSIgaXNuJ3QgaGVyZSBiZWNhdXNlIGl0IG1heSBtYXAgdG8gZGlmZmVy
ZW50IHJvbGVzIGRlcGVuZGluZyBvbiB0aGUgcGFyZW50IGVsZW1lbnQncyByb2xlCisgICAgICAg
IHsgIm1lbnVpdGVtY2hlY2tib3giLCBNZW51SXRlbVJvbGUgfSwKKyAgICAgICAgeyAibWVudWl0
ZW1yYWRpbyIsIE1lbnVJdGVtUm9sZSB9LAorICAgICAgICB7ICJub3RlIiwgRG9jdW1lbnROb3Rl
Um9sZSB9LAorICAgICAgICB7ICJuYXZpZ2F0aW9uIiwgTGFuZG1hcmtOYXZpZ2F0aW9uUm9sZSB9
LAorICAgICAgICB7ICJvcHRpb24iLCBMaXN0Qm94T3B0aW9uUm9sZSB9LAorICAgICAgICB7ICJw
cmVzZW50YXRpb24iLCBJZ25vcmVkUm9sZSB9LAorICAgICAgICB7ICJwcm9ncmVzc2JhciIsIFBy
b2dyZXNzSW5kaWNhdG9yUm9sZSB9LAorICAgICAgICB7ICJyYWRpbyIsIFJhZGlvQnV0dG9uUm9s
ZSB9LAorICAgICAgICB7ICJyYWRpb2dyb3VwIiwgUmFkaW9Hcm91cFJvbGUgfSwKKyAgICAgICAg
eyAicmVnaW9uIiwgRG9jdW1lbnRSZWdpb25Sb2xlIH0sCisgICAgICAgIHsgInJvdyIsIFJvd1Jv
bGUgfSwKKyAgICAgICAgeyAicmFuZ2UiLCBTbGlkZXJSb2xlIH0sCisgICAgICAgIHsgInNlYXJj
aCIsIExhbmRtYXJrU2VhcmNoUm9sZSB9LAorICAgICAgICB7ICJzZXBhcmF0b3IiLCBTcGxpdHRl
clJvbGUgfSwKKyAgICAgICAgeyAic2xpZGVyIiwgU2xpZGVyUm9sZSB9LAorICAgICAgICB7ICJz
cGluYnV0dG9uIiwgUHJvZ3Jlc3NJbmRpY2F0b3JSb2xlIH0sCisgICAgICAgIHsgInN0YXR1cyIs
IEFwcGxpY2F0aW9uU3RhdHVzUm9sZSB9LAorICAgICAgICB7ICJ0YWIiLCBUYWJSb2xlIH0sCisg
ICAgICAgIHsgInRhYmxpc3QiLCBUYWJMaXN0Um9sZSB9LAorICAgICAgICB7ICJ0YWJwYW5lbCIs
IFRhYlBhbmVsUm9sZSB9LAorICAgICAgICB7ICJ0ZXh0Ym94IiwgVGV4dEFyZWFSb2xlIH0sCisg
ICAgICAgIHsgInRpbWVyIiwgQXBwbGljYXRpb25UaW1lclJvbGUgfSwKKyAgICAgICAgeyAidG9v
bGJhciIsIFRvb2xiYXJSb2xlIH0sCisgICAgICAgIHsgInRvb2x0aXAiLCBVc2VySW50ZXJmYWNl
VG9vbHRpcFJvbGUgfSwKKyAgICAgICAgeyAidHJlZSIsIFRyZWVSb2xlIH0sCisgICAgICAgIHsg
InRyZWVpdGVtIiwgVHJlZUl0ZW1Sb2xlIH0KKyAgICB9OworICAgIEFSSUFSb2xlTWFwKiByb2xl
TWFwID0gbmV3IEFSSUFSb2xlTWFwOworICAgIAorICAgIGNvbnN0IHVuc2lnbmVkIG51bVJvbGVz
ID0gc2l6ZW9mKHJvbGVzKSAvIHNpemVvZihyb2xlc1swXSk7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG51bVJvbGVzOyArK2kpCisgICAgICAgIHJvbGVNYXAtPnNldChyb2xlc1tpXS5h
cmlhUm9sZSwgcm9sZXNbaV0ud2ViY29yZVJvbGUpOworICAgIHJldHVybiByb2xlTWFwOworfQor
CitBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhUm9sZVRvV2ViQ29y
ZVJvbGUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIXZhbHVlLmlzRW1wdHko
KSk7CisgICAgc3RhdGljIGNvbnN0IEFSSUFSb2xlTWFwKiByb2xlTWFwID0gY3JlYXRlQVJJQVJv
bGVNYXAoKTsKKyAgICByZXR1cm4gcm9sZU1hcC0+Z2V0KHZhbHVlKTsKIH0KICAgICAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaAkocmV2aXNpb24gNTEwNjcpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MTcsNiArNDI0LDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogYWN0aXZlRGVzY2VuZGFu
dCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0gICAgCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUFjdGl2
ZURlc2NlbmRhbnRDaGFuZ2VkKCkgeyB9CiAKKyAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eVJvbGUg
YXJpYVJvbGVUb1dlYkNvcmVSb2xlKGNvbnN0IFN0cmluZyYpOworICAgIAogICAgIHZpcnR1YWwg
VmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9uUmFuZ2UoKSBjb25zdCB7IHJldHVy
biBWaXNpYmxlUG9zaXRpb25SYW5nZSgpOyB9CiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb25S
YW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZUZvckxpbmUodW5zaWduZWQpIGNvbnN0IHsgcmV0dXJu
IFZpc2libGVQb3NpdGlvblJhbmdlKCk7IH0KICAgICAKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDUx
MDY3KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDM1LDkwICsyNDM1LDYgQEAgQWNjZXNzaWJpbGl0eU9i
amVjdCogQWNjZXNzaWJpbGl0eVJlbmRlcgogICAgIAogICAgIHJldHVybiAwOwogfQotICAgIAot
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQWNjZXNzaWJpbGl0eVJvbGUsIENhc2VGb2xkaW5nSGFz
aD4gQVJJQVJvbGVNYXA7Ci0KLXN0cnVjdCBSb2xlRW50cnkgewotICAgIFN0cmluZyBhcmlhUm9s
ZTsKLSAgICBBY2Nlc3NpYmlsaXR5Um9sZSB3ZWJjb3JlUm9sZTsKLX07Ci0KLXN0YXRpYyBjb25z
dCBBUklBUm9sZU1hcCYgY3JlYXRlQVJJQVJvbGVNYXAoKQotewotICAgIGNvbnN0IFJvbGVFbnRy
eSByb2xlc1tdID0gewotICAgICAgICB7ICJhbGVydCIsIEFwcGxpY2F0aW9uQWxlcnRSb2xlIH0s
Ci0gICAgICAgIHsgImFsZXJ0ZGlhbG9nIiwgQXBwbGljYXRpb25BbGVydERpYWxvZ1JvbGUgfSwK
LSAgICAgICAgeyAiYXBwbGljYXRpb24iLCBMYW5kbWFya0FwcGxpY2F0aW9uUm9sZSB9LAotICAg
ICAgICB7ICJhcnRpY2xlIiwgRG9jdW1lbnRBcnRpY2xlUm9sZSB9LAotICAgICAgICB7ICJiYW5u
ZXIiLCBMYW5kbWFya0Jhbm5lclJvbGUgfSwKLSAgICAgICAgeyAiYnV0dG9uIiwgQnV0dG9uUm9s
ZSB9LAotICAgICAgICB7ICJjaGVja2JveCIsIENoZWNrQm94Um9sZSB9LAotICAgICAgICB7ICJj
b21wbGVtZW50YXJ5IiwgTGFuZG1hcmtDb21wbGVtZW50YXJ5Um9sZSB9LAotICAgICAgICB7ICJj
b250ZW50aW5mbyIsIExhbmRtYXJrQ29udGVudEluZm9Sb2xlIH0sCi0gICAgICAgIHsgImRpYWxv
ZyIsIEFwcGxpY2F0aW9uRGlhbG9nUm9sZSB9LAotICAgICAgICB7ICJkaXJlY3RvcnkiLCBEaXJl
Y3RvcnlSb2xlIH0sCi0gICAgICAgIHsgImdyaWQiLCBUYWJsZVJvbGUgfSwKLSAgICAgICAgeyAi
Z3JpZGNlbGwiLCBDZWxsUm9sZSB9LAotICAgICAgICB7ICJjb2x1bW5oZWFkZXIiLCBDb2x1bW5I
ZWFkZXJSb2xlIH0sCi0gICAgICAgIHsgImNvbWJvYm94IiwgQ29tYm9Cb3hSb2xlIH0sCi0gICAg
ICAgIHsgImRlZmluaXRpb24iLCBEZWZpbml0aW9uTGlzdERlZmluaXRpb25Sb2xlIH0sCi0gICAg
ICAgIHsgImRvY3VtZW50IiwgRG9jdW1lbnRSb2xlIH0sCi0gICAgICAgIHsgInJvd2hlYWRlciIs
IFJvd0hlYWRlclJvbGUgfSwKLSAgICAgICAgeyAiZ3JvdXAiLCBHcm91cFJvbGUgfSwKLSAgICAg
ICAgeyAiaGVhZGluZyIsIEhlYWRpbmdSb2xlIH0sCi0gICAgICAgIHsgImltZyIsIEltYWdlUm9s
ZSB9LAotICAgICAgICB7ICJsaW5rIiwgV2ViQ29yZUxpbmtSb2xlIH0sCi0gICAgICAgIHsgImxp
c3QiLCBMaXN0Um9sZSB9LCAgICAgICAgCi0gICAgICAgIHsgImxpc3RpdGVtIiwgR3JvdXBSb2xl
IH0sICAgICAgICAKLSAgICAgICAgeyAibGlzdGJveCIsIExpc3RCb3hSb2xlIH0sCi0gICAgICAg
IHsgImxvZyIsIEFwcGxpY2F0aW9uTG9nUm9sZSB9LAotICAgICAgICAvLyAib3B0aW9uIiBpc24n
dCBoZXJlIGJlY2F1c2UgaXQgbWF5IG1hcCB0byBkaWZmZXJlbnQgcm9sZXMgZGVwZW5kaW5nIG9u
IHRoZSBwYXJlbnQgZWxlbWVudCdzIHJvbGUKLSAgICAgICAgeyAibWFpbiIsIExhbmRtYXJrTWFp
blJvbGUgfSwKLSAgICAgICAgeyAibWFycXVlZSIsIEFwcGxpY2F0aW9uTWFycXVlZVJvbGUgfSwK
LSAgICAgICAgeyAibWVudSIsIE1lbnVSb2xlIH0sCi0gICAgICAgIHsgIm1lbnViYXIiLCBHcm91
cFJvbGUgfSwKLSAgICAgICAgLy8gIm1lbnVpdGVtIiBpc24ndCBoZXJlIGJlY2F1c2UgaXQgbWF5
IG1hcCB0byBkaWZmZXJlbnQgcm9sZXMgZGVwZW5kaW5nIG9uIHRoZSBwYXJlbnQgZWxlbWVudCdz
IHJvbGUKLSAgICAgICAgeyAibWVudWl0ZW1jaGVja2JveCIsIE1lbnVJdGVtUm9sZSB9LAotICAg
ICAgICB7ICJtZW51aXRlbXJhZGlvIiwgTWVudUl0ZW1Sb2xlIH0sCi0gICAgICAgIHsgIm5vdGUi
LCBEb2N1bWVudE5vdGVSb2xlIH0sCi0gICAgICAgIHsgIm5hdmlnYXRpb24iLCBMYW5kbWFya05h
dmlnYXRpb25Sb2xlIH0sCi0gICAgICAgIHsgIm9wdGlvbiIsIExpc3RCb3hPcHRpb25Sb2xlIH0s
Ci0gICAgICAgIHsgInByZXNlbnRhdGlvbiIsIElnbm9yZWRSb2xlIH0sCi0gICAgICAgIHsgInBy
b2dyZXNzYmFyIiwgUHJvZ3Jlc3NJbmRpY2F0b3JSb2xlIH0sCi0gICAgICAgIHsgInJhZGlvIiwg
UmFkaW9CdXR0b25Sb2xlIH0sCi0gICAgICAgIHsgInJhZGlvZ3JvdXAiLCBSYWRpb0dyb3VwUm9s
ZSB9LAotICAgICAgICB7ICJyZWdpb24iLCBEb2N1bWVudFJlZ2lvblJvbGUgfSwKLSAgICAgICAg
eyAicm93IiwgUm93Um9sZSB9LAotICAgICAgICB7ICJyYW5nZSIsIFNsaWRlclJvbGUgfSwKLSAg
ICAgICAgeyAic2VhcmNoIiwgTGFuZG1hcmtTZWFyY2hSb2xlIH0sCi0gICAgICAgIHsgInNlcGFy
YXRvciIsIFNwbGl0dGVyUm9sZSB9LAotICAgICAgICB7ICJzbGlkZXIiLCBTbGlkZXJSb2xlIH0s
Ci0gICAgICAgIHsgInNwaW5idXR0b24iLCBQcm9ncmVzc0luZGljYXRvclJvbGUgfSwKLSAgICAg
ICAgeyAic3RhdHVzIiwgQXBwbGljYXRpb25TdGF0dXNSb2xlIH0sCi0gICAgICAgIHsgInRhYiIs
IFRhYlJvbGUgfSwKLSAgICAgICAgeyAidGFibGlzdCIsIFRhYkxpc3RSb2xlIH0sCi0gICAgICAg
IHsgInRhYnBhbmVsIiwgVGFiUGFuZWxSb2xlIH0sCi0gICAgICAgIHsgInRleHRib3giLCBUZXh0
QXJlYVJvbGUgfSwKLSAgICAgICAgeyAidGltZXIiLCBBcHBsaWNhdGlvblRpbWVyUm9sZSB9LAot
ICAgICAgICB7ICJ0b29sYmFyIiwgVG9vbGJhclJvbGUgfSwKLSAgICAgICAgeyAidG9vbHRpcCIs
IFVzZXJJbnRlcmZhY2VUb29sdGlwUm9sZSB9LAotICAgICAgICB7ICJ0cmVlIiwgVHJlZVJvbGUg
fSwKLSAgICAgICAgeyAidHJlZWl0ZW0iLCBUcmVlSXRlbVJvbGUgfQotICAgIH07Ci0gICAgQVJJ
QVJvbGVNYXAmIHJvbGVNYXAgPSAqbmV3IEFSSUFSb2xlTWFwOwotICAgICAgICAKLSAgICBjb25z
dCB1bnNpZ25lZCBudW1Sb2xlcyA9IHNpemVvZihyb2xlcykgLyBzaXplb2Yocm9sZXNbMF0pOwot
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1Sb2xlczsgKytpKQotICAgICAgICByb2xl
TWFwLnNldChyb2xlc1tpXS5hcmlhUm9sZSwgcm9sZXNbaV0ud2ViY29yZVJvbGUpOwotICAgIHJl
dHVybiByb2xlTWFwOwotfQotCi1zdGF0aWMgQWNjZXNzaWJpbGl0eVJvbGUgYXJpYVJvbGVUb1dl
YkNvcmVSb2xlKFN0cmluZyB2YWx1ZSkKLXsKLSAgICBBU1NFUlQoIXZhbHVlLmlzRW1wdHkoKSAm
JiAhdmFsdWUuaXNOdWxsKCkpOwotICAgIHN0YXRpYyBjb25zdCBBUklBUm9sZU1hcCYgcm9sZU1h
cCA9IGNyZWF0ZUFSSUFSb2xlTWFwKCk7Ci0gICAgcmV0dXJuIHJvbGVNYXAuZ2V0KHZhbHVlKTsK
LX0KIAogQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJt
aW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdAogewpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTExMDIp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBA
QAorMjAwOS0xMS0xOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBSS1BUklBIHJv
bGVzIG5vdCBzdXBwb3J0ZWQgb24gaW1hZ2UgbWFwIDxhcmVhPgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1MjUKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvYXJpYS11c2VkLW9uLWltYWdlLW1hcHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9T
a2lwcGVkOgorCiAyMDA5LTExLTE3ICBIYXlhdG8gSXRvICA8aGF5YXRvQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJp
YS11c2VkLW9uLWltYWdlLW1hcHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEyIEBACisKK1RoaXMgdGVzdHMgdGhhdCB5b3UgY2FuIHNldCBhbiBBUklBIHJvbGUgb24gaW1h
Z2UgbWFwIGVsZW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBn
cm91cC5jaGlsZEF0SW5kZXgoMCkucm9sZSBpcyAnQVhSb2xlOiBBWEJ1dHRvbicKK1BBU1MgZ3Jv
dXAuY2hpbGRBdEluZGV4KDEpLnJvbGUgaXMgJ0FYUm9sZTogQVhCdXR0b24nCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9hcmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9uLWltYWdlLW1hcHMuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9u
LWltYWdlLW1hcHMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGltZyBpZD0iaW1hZ2Ui
IHVzZW1hcD0iI21hcCIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlB
QUFPVG03QUFBQUNINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQ1JBRUFPdz09IiB3aWR0aD0iMTAw
IiBoZWlnaHQ9IjUwIiBhbHQ9IiI+Cis8bWFwIG5hbWU9Im1hcCIgaWQ9Im1hcCI+CisgICAgPGFy
ZWEgdGFiaW5kZXg9IjAiIHJvbGU9ImJ1dHRvbiIgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMCwwLDUw
LDUwIiBocmVmPSIjIiB0aXRsZT0iRXhhbXBsZSAxIj4KKyAgICA8YXJlYSB0YWJpbmRleD0iMCIg
cm9sZT0iYnV0dG9uIiBzaGFwZT0icmVjdCIgY29vcmRzPSI1MCwwLDEwMCw1MCIgaHJlZj0iIyIg
dGl0bGU9IkV4YW1wbGUgMiI+Cis8L21hcD4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgeW91IGNhbiBzZXQgYW4gQVJJQSByb2xlIG9uIGltYWdlIG1hcCBlbGVt
ZW50cy4iKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKwor
ICAgICAgICAgIHZhciBncm91cCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50
LmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgc2hvdWxkQmUoImdy
b3VwLmNoaWxkQXRJbmRleCgwKS5yb2xlIiwgIidBWFJvbGU6IEFYQnV0dG9uJyIpOworICAgICAg
ICAgIHNob3VsZEJlKCJncm91cC5jaGlsZEF0SW5kZXgoMSkucm9sZSIsICInQVhSb2xlOiBBWEJ1
dHRvbiciKTsKKyAgICB9CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQJKHJldmlzaW9uIDUxMDY3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJ
KHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVs
bGVkYnktc3RheS13aXRoaQogYWNjZXNzaWJpbGl0eS9hcmlhLWxpbmstc3VwcG9ydHMtcHJlc3Mu
aHRtbAogYWNjZXNzaWJpbGl0eS9hcmlhLXJlYWRvbmx5Lmh0bWwKIGFjY2Vzc2liaWxpdHkvYXJp
YS10YWItcm9sZXMuaHRtbAorYWNjZXNzaWJpbGl0eS9hcmlhLXVzZWQtb24taW1hZ2UtbWFwcy5o
dG1sCiBhY2Nlc3NpYmlsaXR5L2J1dHRvbi1wcmVzcy1hY3Rpb24uaHRtbAogYWNjZXNzaWJpbGl0
eS9jYW52YXMuaHRtbAogYWNjZXNzaWJpbGl0eS9lZGl0YWJsZS13ZWJhcmVhLWNvbnRleHQtbWVu
dS1wb2ludC5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkocmV2aXNpb24gNTEw
NjcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkod29ya2luZyBjb3B5KQpA
QCAtMzcxLDYgKzM3MSw3IEBAIGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sCiBhY2Nl
c3NpYmlsaXR5L2FyaWEtcm9sZXMuaHRtbAogYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlcy5odG1s
CiBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFiLXJvbGVzLmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS11
c2VkLW9uLWltYWdlLW1hcHMuaHRtbAogYWNjZXNzaWJpbGl0eS9idXR0b24tcHJlc3MtYWN0aW9u
Lmh0bWwKIGFjY2Vzc2liaWxpdHkvY2FudmFzLmh0bWwKIGFjY2Vzc2liaWxpdHkvZG9jdW1lbnQt
YXR0cmlidXRlcy5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>