<?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>133473</bug_id>
          
          <creation_ts>2014-06-03 03:31:18 -0700</creation_ts>
          <short_desc>CSS JIT: add support for the &quot;any&quot; pseudo class</short_desc>
          <delta_ts>2014-06-03 19:28:39 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1013073</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-06-03 03:31:18 -0700</bug_when>
    <thetext>Add support for the &quot;any&quot; pseudo class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013084</commentid>
    <comment_count>1</comment_count>
      <attachid>232422</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-06-03 05:21:36 -0700</bug_when>
    <thetext>Created attachment 232422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013085</commentid>
    <comment_count>2</comment_count>
      <attachid>232422</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-06-03 05:27:45 -0700</bug_when>
    <thetext>Comment on attachment 232422
Patch

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

Added comments.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:160
&gt; +    Vector&lt;Vector&lt;SelectorFragment&gt;&gt; anyFilters;

Used &quot;&gt;&gt;&quot; since C++11 is enabled.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:461
&gt; +                // :any() may not contain complex selectors which have combinators.

simple_selectors don&apos;t contain combinators. So fragmentList.size() always becomes 1.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:467
&gt; +                subFragment.inFunctionalPseudoClass = true;

Set `inFunctionalPseudoClass` true.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:476
&gt; +            ASSERT(!anyFragments.isEmpty());

anyFragments always has fragments.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:2621
&gt; +        RELEASE_ASSERT(!subFragments.isEmpty());

This is guaranteed in the construction phase.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:2632
&gt; +        // At the last fragment, optimize the failure jump to jump to the non-local failure directly.

Optimized path. At the last fragment, the failure jump should jump to the non-local failure site directly.
This removes unnecessary trampolines.

&gt; LayoutTests/ChangeLog:11
&gt; +        * fast/selectors/pseudo-class-any.html: Added.

:hover / :active tests are needed? If so, I&apos;ll add them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013135</commentid>
    <comment_count>3</comment_count>
      <attachid>232422</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-03 13:56:08 -0700</bug_when>
    <thetext>Comment on attachment 232422
Patch

The patch is great. There is an issue I also forgot about :not(), fragmentOnlyMatchesLinksInQuirksMode() should return false in those cases.
Let&apos;s land this since it is complete and correct with the exception of fragmentOnlyMatchesLinksInQuirksMode(). I&apos;ll write a quick fix for fragmentOnlyMatchesLinksInQuirksMode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013142</commentid>
    <comment_count>4</comment_count>
      <attachid>232422</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-03 14:27:21 -0700</bug_when>
    <thetext>Comment on attachment 232422
Patch

Clearing flags on attachment: 232422

Committed r169569: &lt;http://trac.webkit.org/changeset/169569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013143</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-03 14:27:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013202</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-06-03 19:28:39 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 232422 [details])
&gt; The patch is great. There is an issue I also forgot about :not(), fragmentOnlyMatchesLinksInQuirksMode() should return false in those cases.
&gt; Let&apos;s land this since it is complete and correct with the exception of fragmentOnlyMatchesLinksInQuirksMode(). I&apos;ll write a quick fix for fragmentOnlyMatchesLinksInQuirksMode.

Oh! Thank you. I&apos;ve commented your patch :)
https://bugs.webkit.org/show_bug.cgi?id=133493</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232422</attachid>
            <date>2014-06-03 05:21:36 -0700</date>
            <delta_ts>2014-06-03 14:27:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133473-20140603212149.patch</filename>
            <type>text/plain</type>
            <size>16821</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q1NzYwMTU4MmMzZWNl
MDUzMTllYWNkYmM3Zjk5YmZhZGQzNjAwZS4uNTM2ODQ2YjQ1MDc3YjYyNzkyNmI1OTFiMTliNWEw
ZDQxOGQxNWVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTA2LTAzICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IGFk
ZCBzdXBwb3J0IGZvciB0aGUgImFueSIgcHNldWRvIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM0NzMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIDphbnkgcHNl
dWRvIGNsYXNzLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc2VsZWN0b3JzL3BzZXVkby1jbGFzcy1h
bnkuaHRtbAorCisgICAgICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6YWRkUHNldWRvQ2xhc3NUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6Om1pbmltdW1SZWdpc3RlclJlcXVpcmVtZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OmdlbmVyYXRlRWxlbWVudE1hdGNoaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50TWF0Y2hl
c0FueVBzZXVkb0NsYXNzKToKKwogMjAxNC0wNi0wMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFdlYkNvcmUgZmFpbHMgdG8gYnVpbGQ6IHBsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOjcyOTo2MjogZXJyb3I6IHVzZSBv
ZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ19DRlVSTENvbm5lY3Rpb25Db3B5VGltaW5nRGF0YScK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRleCA5ZTAzNTc2
NmU0OWExZjFlN2U4YmVkNDNhNTdhODRmNDE2Y2YyZjM1Li40NGE3YzI5NWYzOTViMDQwYzI3Mjhl
NDhhYjlhNDc1ZWZkOTMwOWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29t
cGlsZXIuY3BwCkBAIC0xNTcsNiArMTU3LDcgQEAgc3RydWN0IFNlbGVjdG9yRnJhZ21lbnQgewog
ICAgIFZlY3RvcjxBdHRyaWJ1dGVNYXRjaGluZ0luZm8+IGF0dHJpYnV0ZXM7CiAgICAgVmVjdG9y
PHN0ZDo6cGFpcjxpbnQsIGludD4+IG50aENoaWxkRmlsdGVyczsKICAgICBWZWN0b3I8U2VsZWN0
b3JGcmFnbWVudD4gbm90RmlsdGVyczsKKyAgICBWZWN0b3I8VmVjdG9yPFNlbGVjdG9yRnJhZ21l
bnQ+PiBhbnlGaWx0ZXJzOwogCiAgICAgYm9vbCBpbkZ1bmN0aW9uYWxQc2V1ZG9DbGFzczsKIH07
CkBAIC0yMjksNiArMjMwLDcgQEAgY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIHsKICAgICB2
b2lkIGdlbmVyYXRlRWxlbWVudElzTGluayhBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2Fz
ZXMpOwogICAgIHZvaWQgZ2VuZXJhdGVFbGVtZW50SXNOdGhDaGlsZChBc3NlbWJsZXI6Okp1bXBM
aXN0JiBmYWlsdXJlQ2FzZXMsIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmKTsKICAgICB2b2lkIGdl
bmVyYXRlRWxlbWVudE1hdGNoZXNOb3RQc2V1ZG9DbGFzcyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBm
YWlsdXJlQ2FzZXMsIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmKTsKKyAgICB2b2lkIGdlbmVyYXRl
RWxlbWVudE1hdGNoZXNBbnlQc2V1ZG9DbGFzcyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJl
Q2FzZXMsIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmKTsKICAgICB2b2lkIGdlbmVyYXRlRWxlbWVu
dElzUm9vdChBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpOwogICAgIHZvaWQgZ2Vu
ZXJhdGVFbGVtZW50SXNUYXJnZXQoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKTsK
IApAQCAtNDQxLDYgKzQ0Myw0MiBAQCBzdGF0aWMgaW5saW5lIEZ1bmN0aW9uVHlwZSBhZGRQc2V1
ZG9DbGFzc1R5cGUoY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yLCBTZWxlYwogICAgICAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uVHlwZTsKICAgICAgICAgfQogCisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NBbnk6CisgICAgICAgIHsKKyAgICAgICAgICAgIFZlY3RvcjxTZWxlY3Rv
ckZyYWdtZW50PiBhbnlGcmFnbWVudHM7CisgICAgICAgICAgICBGdW5jdGlvblR5cGUgZnVuY3Rp
b25UeXBlID0gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CisgICAgICAgICAg
ICBmb3IgKGNvbnN0IENTU1NlbGVjdG9yKiByb290U2VsZWN0b3IgPSBzZWxlY3Rvci5zZWxlY3Rv
ckxpc3QoKS0+Zmlyc3QoKTsgcm9vdFNlbGVjdG9yOyByb290U2VsZWN0b3IgPSBDU1NTZWxlY3Rv
ckxpc3Q6Om5leHQocm9vdFNlbGVjdG9yKSkgeworICAgICAgICAgICAgICAgIFNlbGVjdG9yRnJh
Z21lbnRMaXN0IGZyYWdtZW50TGlzdDsKKyAgICAgICAgICAgICAgICBGdW5jdGlvblR5cGUgc3Vi
RnVuY3Rpb25UeXBlID0gY29uc3RydWN0RnJhZ21lbnRzKHJvb3RTZWxlY3Rvciwgc2VsZWN0b3JD
b250ZXh0LCBmcmFnbWVudExpc3QpOworCisgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhpcyBm
cmFnbWVudCBhbHdheXMgdW5tYXRjaCBhZ2FpbnN0IHRoZSBlbGVtZW50LCBkb24ndCBpbnNlcnQg
aXQgdG8gYW55RnJhZ21lbnRzLgorICAgICAgICAgICAgICAgIGlmIChzdWJGdW5jdGlvblR5cGUg
PT0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nKQorICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGlmIChzdWJGdW5jdGlvblR5cGUgPT0gRnVu
Y3Rpb25UeXBlOjpDYW5ub3RDb21waWxlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRnVu
Y3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOworCisgICAgICAgICAgICAgICAgLy8gOmFueSgpIG1h
eSBub3QgY29udGFpbiBjb21wbGV4IHNlbGVjdG9ycyB3aGljaCBoYXZlIGNvbWJpbmF0b3JzLgor
ICAgICAgICAgICAgICAgIEFTU0VSVChmcmFnbWVudExpc3Quc2l6ZSgpID09IDEpOworICAgICAg
ICAgICAgICAgIGlmIChmcmFnbWVudExpc3Quc2l6ZSgpICE9IDEpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGU7CisKKyAgICAgICAgICAgICAg
ICBTZWxlY3RvckZyYWdtZW50IHN1YkZyYWdtZW50ID0gZnJhZ21lbnRMaXN0LmZpcnN0KCk7Cisg
ICAgICAgICAgICAgICAgc3ViRnJhZ21lbnQuaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3MgPSB0cnVl
OworICAgICAgICAgICAgICAgIGFueUZyYWdtZW50cy5hcHBlbmQoc3ViRnJhZ21lbnQpOworICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uVHlwZSA9IG1vc3RSZXN0cmljdGl2ZUZ1bmN0aW9uVHlwZShm
dW5jdGlvblR5cGUsIHN1YkZ1bmN0aW9uVHlwZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIC8vIFNpbmNlIGFsbCBmcmFnbWVudHMgaW4gOmFueSgpIGNhbm5vdCBtYXRjaCBhbnl0aGlu
ZywgdGhpcyA6YW55KCkgZmlsdGVyIGNhbm5vdCBtYXRjaCBhbnl0aGluZy4KKyAgICAgICAgICAg
IGlmIChhbnlGcmFnbWVudHMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBGdW5j
dGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CisKKyAgICAgICAgICAgIEFTU0VSVCghYW55
RnJhZ21lbnRzLmlzRW1wdHkoKSk7CisgICAgICAgICAgICBmcmFnbWVudC5hbnlGaWx0ZXJzLmFw
cGVuZChhbnlGcmFnbWVudHMpOworCisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25UeXBlOwor
ICAgICAgICB9CisKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CkBAIC01OTQs
NiArNjMyLDE1IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbWluaW11bVJlZ2lzdGVyUmVxdWly
ZW1lbnRzKGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmIHNlbGVjCiAgICAgICAgIHVuc2lnbmVkIG5v
dEZpbHRlck1pbmltdW0gPSBtaW5pbXVtUmVnaXN0ZXJSZXF1aXJlbWVudHMoc3ViRnJhZ21lbnQp
ICsgYmFja3RyYWNraW5nUmVnaXN0ZXJSZXF1aXJlbWVudHM7CiAgICAgICAgIG1pbmltdW0gPSBz
dGQ6Om1heChtaW5pbXVtLCBub3RGaWx0ZXJNaW5pbXVtKTsKICAgICB9CisKKyAgICAvLyA6YW55
IHBzZXVkbyBjbGFzcyBmaWx0ZXJzIGNhdXNlIHNvbWUgcmVnaXN0ZXIgcHJlc3N1cmUuCisgICAg
Zm9yIChjb25zdCBhdXRvJiBzdWJGcmFnbWVudHMgOiBzZWxlY3RvckZyYWdtZW50LmFueUZpbHRl
cnMpIHsKKyAgICAgICAgZm9yIChjb25zdCBTZWxlY3RvckZyYWdtZW50JiBzdWJGcmFnbWVudCA6
IHN1YkZyYWdtZW50cykgeworICAgICAgICAgICAgdW5zaWduZWQgYW55RmlsdGVyTWluaW11bSA9
IG1pbmltdW1SZWdpc3RlclJlcXVpcmVtZW50cyhzdWJGcmFnbWVudCkgKyBiYWNrdHJhY2tpbmdS
ZWdpc3RlclJlcXVpcmVtZW50czsKKyAgICAgICAgICAgIG1pbmltdW0gPSBzdGQ6Om1heChtaW5p
bXVtLCBhbnlGaWx0ZXJNaW5pbXVtKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHJldHVybiBt
aW5pbXVtOwogfQogCkBAIC0xNjU0LDYgKzE3MDEsOCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVy
YXRvcjo6Z2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYgbWF0Y2hp
bgogICAgICAgICBnZW5lcmF0ZUVsZW1lbnRJc050aENoaWxkKG1hdGNoaW5nUG9zdFRhZ05hbWVG
YWlsdXJlQ2FzZXMsIGZyYWdtZW50KTsKICAgICBpZiAoIWZyYWdtZW50Lm5vdEZpbHRlcnMuaXNF
bXB0eSgpKQogICAgICAgICBnZW5lcmF0ZUVsZW1lbnRNYXRjaGVzTm90UHNldWRvQ2xhc3MobWF0
Y2hpbmdQb3N0VGFnTmFtZUZhaWx1cmVDYXNlcywgZnJhZ21lbnQpOworICAgIGlmICghZnJhZ21l
bnQuYW55RmlsdGVycy5pc0VtcHR5KCkpCisgICAgICAgIGdlbmVyYXRlRWxlbWVudE1hdGNoZXNB
bnlQc2V1ZG9DbGFzcyhtYXRjaGluZ1Bvc3RUYWdOYW1lRmFpbHVyZUNhc2VzLCBmcmFnbWVudCk7
CiB9CiAKIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnREYXRhTWF0
Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZy
YWdtZW50JiBmcmFnbWVudCkKQEAgLTI1NjYsNiArMjYxNSwyNiBAQCB2b2lkIFNlbGVjdG9yQ29k
ZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50TWF0Y2hlc05vdFBzZXVkb0NsYXNzKEFzc2VtYmxl
cjo6SnVtcAogICAgIH0KIH0KIAordm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRl
RWxlbWVudE1hdGNoZXNBbnlQc2V1ZG9DbGFzcyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJl
Q2FzZXMsIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50KQoreworICAgIGZvciAoY29u
c3QgYXV0byYgc3ViRnJhZ21lbnRzIDogZnJhZ21lbnQuYW55RmlsdGVycykgeworICAgICAgICBS
RUxFQVNFX0FTU0VSVCghc3ViRnJhZ21lbnRzLmlzRW1wdHkoKSk7CisKKyAgICAgICAgLy8gRG9u
J3QgaGFuZGxlIHRoZSBsYXN0IGZyYWdtZW50IGluIHRoaXMgbG9vcC4KKyAgICAgICAgQXNzZW1i
bGVyOjpKdW1wTGlzdCBzdWNjZXNzQ2FzZXM7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzdWJGcmFnbWVudHMuc2l6ZSgpIC0gMTsgKytpKSB7CisgICAgICAgICAgICBBc3NlbWJs
ZXI6Okp1bXBMaXN0IGxvY2FsRmFpbHVyZUNhc2VzOworICAgICAgICAgICAgZ2VuZXJhdGVFbGVt
ZW50TWF0Y2hpbmcobG9jYWxGYWlsdXJlQ2FzZXMsIGxvY2FsRmFpbHVyZUNhc2VzLCBzdWJGcmFn
bWVudHNbaV0pOworICAgICAgICAgICAgc3VjY2Vzc0Nhc2VzLmFwcGVuZChtX2Fzc2VtYmxlci5q
dW1wKCkpOworICAgICAgICAgICAgbG9jYWxGYWlsdXJlQ2FzZXMubGluaygmbV9hc3NlbWJsZXIp
OworICAgICAgICB9CisKKyAgICAgICAgLy8gQXQgdGhlIGxhc3QgZnJhZ21lbnQsIG9wdGltaXpl
IHRoZSBmYWlsdXJlIGp1bXAgdG8ganVtcCB0byB0aGUgbm9uLWxvY2FsIGZhaWx1cmUgZGlyZWN0
bHkuCisgICAgICAgIGdlbmVyYXRlRWxlbWVudE1hdGNoaW5nKGZhaWx1cmVDYXNlcywgZmFpbHVy
ZUNhc2VzLCBzdWJGcmFnbWVudHMubGFzdCgpKTsKKyAgICAgICAgc3VjY2Vzc0Nhc2VzLmxpbmso
Jm1fYXNzZW1ibGVyKTsKKyAgICB9Cit9CisKIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpn
ZW5lcmF0ZUVsZW1lbnRJc1Jvb3QoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKQog
ewogICAgIExvY2FsUmVnaXN0ZXIgZG9jdW1lbnQobV9yZWdpc3RlckFsbG9jYXRvcik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMDE0YzE3ZDMwZDA3N2YxOTNmMzlmYjgzMTU5MzQ4M2JiMzhjODZmOS4uY2JlOWQ2ZDU3OTQ5
NmJiM2I1YTgyYTM0MzEyODI0NjlhYzlkOWNjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0
LTA2LTAzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAg
IENTUyBKSVQ6IGFkZCBzdXBwb3J0IGZvciB0aGUgImFueSIgcHNldWRvIGNsYXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM0NzMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
dGhlIDphbnkgcHNldWRvIGNsYXNzLgorCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvcHNldWRv
LWNsYXNzLWFueS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3Jz
L3BzZXVkby1jbGFzcy1hbnkuaHRtbDogQWRkZWQuCisKIDIwMTQtMDYtMDIgIEppbndvbyBTb25n
ICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgRUZMIGdh
cmRlbmluZy4gUmViYXNlbGluZSBhZnRlciByMTY5NTIyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLWFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3MtYW55LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZDJlZDMxOGQ0Zjc1MmY4NTBiYTZkMDUwMzdjMTdkNDFjMDllYTgyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLWFueS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0MSBAQAorVGhlIHBzZXVkbyBjbGFzcyA6YW55CisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitzaW1wbGUgOmFueSBzZWxlY3RvciBsaXN0IG1hdGNo
ZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dDEiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitzaW1wbGUgOmFueSBzZWxl
Y3RvciBsaXN0IG1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldDIiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitz
aW1wbGUgOmFueSBzZWxlY3RvciB1bm1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDMiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Io
MCwgMCwgMCkiCittdWx0aXBsZSA6YW55IHNlbGVjdG9yIGxpc3QgbWF0Y2hlZC4KK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NCIpKS5iYWNrZ3Jv
dW5kQ29sb3IgaXMgInJnYigyLCAzLCA0KSIKK211bHRpcGxlIDphbnkgc2VsZWN0b3IgbGlzdCBt
YXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQ1IikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDIsIDMsIDQpIgorbXVsdGlwbGUgOmFu
eSBzZWxlY3RvciBsaXN0IHVubWF0Y2hlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NiIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigwLCAw
LCAwKSIKK211bHRpcGxlIDphbnkgc2VsZWN0b3IgbGlzdCB1bm1hdGNoZWQuCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDciKSkuYmFja2dyb3Vu
ZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCittdWx0aXBsZSA6YW55IHNlbGVjdG9yIGxpc3QgdW5t
YXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQ4IikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDAsIDAsIDApIgorc2ltcGxlIDphbnkg
c2VsZWN0b3IgbGlzdCBpbmNsdWRpbmcgOm5vdCBtYXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ5IikpLmJhY2tncm91bmRDb2xvciBp
cyAicmdiKDMsIDQsIDUpIgorc2ltcGxlIDphbnkgc2VsZWN0b3IgbGlzdCBpbmNsdWRpbmcgOm5v
dCBtYXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQxMCIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigzLCA0LCA1KSIKK3NpbXBsZSA6
YW55IHNlbGVjdG9yIGxpc3QgaW5jbHVkaW5nIDpub3QgbWF0Y2hlZC4KK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTEiKSkuYmFja2dyb3VuZENv
bG9yIGlzICJyZ2IoMywgNCwgNSkiCitzaW1wbGUgOmFueSBzZWxlY3RvciBsaXN0IGluY2x1ZGlu
ZyA6bm90IHVubWF0Y2hlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0MTIiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCitz
aW1wbGUgOmFueSBzZWxlY3RvciBsaXN0IGluY2x1ZGluZyA6bm90IHVubWF0Y2hlZC4KK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MTMiKSkuYmFj
a2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCis6YW55IHNlbGVjdG9yIGluY2x1ZGluZyBh
dHRyaWJ1dGVzIG1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldDE0IikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
OmFueSBzZWxlY3RvciBpbmNsdWRpbmcgYXR0cmlidXRlcyBtYXRjaGVkLgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxNSIpKS5iYWNrZ3JvdW5k
Q29sb3IgaXMgInJnYig0LCA1LCA2KSIKKzphbnkgc2VsZWN0b3IgaW5jbHVkaW5nIGF0dHJpYnV0
ZXMgdW5tYXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQxNiIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigwLCAwLCAwKSIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3MtYW55Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3MtYW55Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTE4NjcwODI2M2I2ODc5NGJmZDAyMjAwNzFkYjIyMzhmZTE0NzdiMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3BzZXVkby1jbGFzcy1hbnkuaHRtbApAQCAt
MCwwICsxLDE4MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citz
cGFuLnRhcmdldCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMCwwLDApOworfQorCithOi13
ZWJraXQtYW55KC5ob3VzZSwgLmhvcnNlKSBzcGFuLnRhcmdldCB7CisgICAgYmFja2dyb3VuZC1j
b2xvcjpyZ2IoMSwyLDMpOworfQorCitiLnJhYmJpdDotd2Via2l0LWFueSguaG91c2UsIC5ob3Jz
ZSk6LXdlYmtpdC1hbnkoLmNvY29hLCAuY2FwcHVjY2lubykgc3Bhbi50YXJnZXQgeworICAgIGJh
Y2tncm91bmQtY29sb3I6cmdiKDIsMyw0KTsKK30KKworYy5yYWJiaXQ6LXdlYmtpdC1hbnkoLmhv
dXNlLCA6bm90KC5ob3JzZSkpIHNwYW4udGFyZ2V0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJn
YigzLDQsNSk7Cit9CisKKy8qIE1heGltdW0gcmVnaXN0ZXIgY2FzZSAqLworZCA+IGQ6LXdlYmtp
dC1hbnkoW3JlbD0iZHJpbmsiXVtkYXRhLWNvY29hXVtkYXRhLWNhcHB1Y2Npbm9dLCAub2spID4g
ZCA+IGQgc3Bhbi50YXJnZXQgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDQsNSw2KTsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Cisg
ICAgPCEtLSBhOmFueSguaG91c2UsIC5ob3JzZSkgc3Bhbi50YXJnZXQgLS0+CisgICAgPHRlc3Qx
PgorICAgICAgICA8YSBjbGFzcz0iaG91c2UiPgorICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRh
cmdldCIgaWQ9InRhcmdldDEiPjwvc3Bhbj4KKyAgICAgICAgPC9hPgorCisgICAgICAgIDxhIGNs
YXNzPSJob3VzZSI+CisgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0
MiI+PC9zcGFuPgorICAgICAgICA8L2E+CisKKyAgICAgICAgPGE+CisgICAgICAgICAgICA8c3Bh
biBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MyI+PC9zcGFuPgorICAgICAgICA8L2E+CisgICAg
PC90ZXN0MT4KKworICAgIDwhLS0gYi5yYWJiaXQ6LXdlYmtpdC1hbnkoLmhvdXNlLCAuaG9yc2Up
Oi13ZWJraXQtYW55KC5jb2NvYSwgLmNhcHB1Y2Npbm8pIHNwYW4udGFyZ2V0IC0tPgorICAgIDx0
ZXN0Mj4KKyAgICAgICAgPGIgY2xhc3M9InJhYmJpdCBob3JzZSBjb2NvYSI+CisgICAgICAgICAg
ICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0NCI+PC9zcGFuPgorICAgICAgICA8L2I+
CisKKyAgICAgICAgPGIgY2xhc3M9InJhYmJpdCBob3VzZSBjYXBwdWNjaW5vIj4KKyAgICAgICAg
ICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQ1Ij48L3NwYW4+CisgICAgICAgIDwv
Yj4KKworICAgICAgICA8YiBjbGFzcz0icmFiYml0IGhvdXNlIGhvcnNlIj4KKyAgICAgICAgICAg
IDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQ2Ij48L3NwYW4+CisgICAgICAgIDwvYj4K
KworICAgICAgICA8YiBjbGFzcz0iaG9yc2UgY29jb2EiPgorICAgICAgICAgICAgPHNwYW4gY2xh
c3M9InRhcmdldCIgaWQ9InRhcmdldDciPjwvc3Bhbj4KKyAgICAgICAgPC9iPgorCisgICAgICAg
IDxiIGNsYXNzPSJyYWJiaXQgY29jb2EgY2FwcHVjY2lubyI+CisgICAgICAgICAgICA8c3BhbiBj
bGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0OCI+PC9zcGFuPgorICAgICAgICA8L2I+CisgICAgPC90
ZXN0Mj4KKworICAgIDwhLS0gYy5yYWJiaXQ6LXdlYmtpdC1hbnkoLmhvdXNlLCA6bm90KC5ob3Jz
ZSkpIHNwYW4udGFyZ2V0IC0tPgorICAgIDx0ZXN0Mz4KKyAgICAgICAgPGMgY2xhc3M9InJhYmJp
dCBob3VzZSI+CisgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0OSI+
PC9zcGFuPgorICAgICAgICA8L2M+CisKKyAgICAgICAgPGMgY2xhc3M9InJhYmJpdCBjYXBwdWNj
aW5vIj4KKyAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQxMCI+PC9z
cGFuPgorICAgICAgICA8L2M+CisKKyAgICAgICAgPGMgY2xhc3M9InJhYmJpdCI+CisgICAgICAg
ICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MTEiPjwvc3Bhbj4KKyAgICAgICAg
PC9jPgorCisgICAgICAgIDxjIGNsYXNzPSJyYWJiaXQgaG9yc2UiPgorICAgICAgICAgICAgPHNw
YW4gY2xhc3M9InRhcmdldCIgaWQ9InRhcmdldDEyIj48L3NwYW4+CisgICAgICAgIDwvYz4KKwor
ICAgICAgICA8YyBjbGFzcz0iaG91c2UiPgorICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdl
dCIgaWQ9InRhcmdldDEzIj48L3NwYW4+CisgICAgICAgIDwvYz4KKyAgICA8L3Rlc3QzPgorCisg
ICAgPCEtLSBkID4gZDotd2Via2l0LWFueShbcmVsPSJkcmluayJdW2RhdGEtY29jb2FdW2RhdGEt
Y2FwcHVjY2lub10sIC5vaykgPiBkID4gZCBzcGFuLnRhcmdldCAtLT4KKyAgICA8dGVzdDQ+Cisg
ICAgICAgIDxkPiAgPCEtLSBNYXRjaGVkLiAtLT4KKyAgICAgICAgICAgIDxkIHJlbD0iZHJpbmsi
IGRhdGEtY29jb2EgZGF0YS1jYXBwdWNjaW5vPgorICAgICAgICAgICAgICAgIDxkIGRhdGEtY29j
b2E+ICA8IS0tIEZhaWxlZC4gQmFja3RyYWNraW5nIGZyb20gdGhlIHRhaWwuIC0tPgorICAgICAg
ICAgICAgICAgICAgICA8ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxkPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQxNCI+PC9z
cGFuPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9kPgorICAgICAgICAgICAgICAgICAgICA8
L2Q+CisgICAgICAgICAgICAgICAgPC9kPgorICAgICAgICAgICAgPC9kPgorICAgICAgICA8L2Q+
CisKKyAgICAgICAgPGQ+ICA8IS0tIE1hdGNoZWQuIC0tPgorICAgICAgICAgICAgPGQgY2xhc3M9
Im9rIj4KKyAgICAgICAgICAgICAgICA8ZCBkYXRhLWNvY29hPiAgPCEtLSBGYWlsZWQuIEJhY2t0
cmFja2luZyBmcm9tIHRoZSB0YWlsLiAtLT4KKyAgICAgICAgICAgICAgICAgICAgPGQ+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bh
biBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0MTUiPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZD4KKyAgICAgICAgICAgICAgICAgICAgPC9kPgorICAgICAgICAgICAgICAgIDwv
ZD4KKyAgICAgICAgICAgIDwvZD4KKyAgICAgICAgPC9kPgorCisgICAgICAgIDxhPiAgPCEtLSBG
YWlsZWQuIC0tPgorICAgICAgICAgICAgPGQgY2xhc3M9Im9rIj4KKyAgICAgICAgICAgICAgICA8
ZCBkYXRhLWNvY29hPiAgPCEtLSBGYWlsZWQuIEJhY2t0cmFja2luZyBmcm9tIHRoZSB0YWlsLiAt
LT4KKyAgICAgICAgICAgICAgICAgICAgPGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZD4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFy
Z2V0MTYiPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvZD4KKyAgICAgICAgICAg
ICAgICAgICAgPC9kPgorICAgICAgICAgICAgICAgIDwvZD4KKyAgICAgICAgICAgIDwvZD4KKyAg
ICAgICAgPC9hPgorICAgIDwvdGVzdDQ+Cis8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGhlIHBzZXVkbyBjbGFzcyA6YW55Jyk7CisKK2RlYnVnKCJzaW1wbGUgOmFueSBz
ZWxlY3RvciBsaXN0IG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEiKSkuYmFja2dyb3VuZENv
bG9yJywgJ3JnYigxLCAyLCAzKScpOworCitkZWJ1Zygic2ltcGxlIDphbnkgc2VsZWN0b3IgbGlz
dCBtYXRjaGVkLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQyIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2Io
MSwgMiwgMyknKTsKKworZGVidWcoInNpbXBsZSA6YW55IHNlbGVjdG9yIHVubWF0Y2hlZC4iKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0MyIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7CisK
K2RlYnVnKCJtdWx0aXBsZSA6YW55IHNlbGVjdG9yIGxpc3QgbWF0Y2hlZC4iKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0NCIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDIsIDMsIDQpJyk7CisKK2RlYnVnKCJt
dWx0aXBsZSA6YW55IHNlbGVjdG9yIGxpc3QgbWF0Y2hlZC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NSIp
KS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDIsIDMsIDQpJyk7CisKK2RlYnVnKCJtdWx0aXBsZSA6
YW55IHNlbGVjdG9yIGxpc3QgdW5tYXRjaGVkLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ2IikpLmJhY2tn
cm91bmRDb2xvcicsICdyZ2IoMCwgMCwgMCknKTsKKworZGVidWcoIm11bHRpcGxlIDphbnkgc2Vs
ZWN0b3IgbGlzdCB1bm1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDciKSkuYmFja2dyb3VuZENv
bG9yJywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygibXVsdGlwbGUgOmFueSBzZWxlY3RvciBs
aXN0IHVubWF0Y2hlZC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0OCIpKS5iYWNrZ3JvdW5kQ29sb3InLCAn
cmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCJzaW1wbGUgOmFueSBzZWxlY3RvciBsaXN0IGluY2x1
ZGluZyA6bm90IG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDkiKSkuYmFja2dyb3VuZENvbG9y
JywgJ3JnYigzLCA0LCA1KScpOworCitkZWJ1Zygic2ltcGxlIDphbnkgc2VsZWN0b3IgbGlzdCBp
bmNsdWRpbmcgOm5vdCBtYXRjaGVkLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxMCIpKS5iYWNrZ3JvdW5k
Q29sb3InLCAncmdiKDMsIDQsIDUpJyk7CisKK2RlYnVnKCJzaW1wbGUgOmFueSBzZWxlY3RvciBs
aXN0IGluY2x1ZGluZyA6bm90IG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDExIikpLmJhY2tn
cm91bmRDb2xvcicsICdyZ2IoMywgNCwgNSknKTsKKworZGVidWcoInNpbXBsZSA6YW55IHNlbGVj
dG9yIGxpc3QgaW5jbHVkaW5nIDpub3QgdW5tYXRjaGVkLiIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQxMiIp
KS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCJzaW1wbGUgOmFu
eSBzZWxlY3RvciBsaXN0IGluY2x1ZGluZyA6bm90IHVubWF0Y2hlZC4iKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0MTMiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygiOmFu
eSBzZWxlY3RvciBpbmNsdWRpbmcgYXR0cmlidXRlcyBtYXRjaGVkLiIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQxNCIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDQsIDUsIDYpJyk7CisKK2RlYnVnKCI6YW55
IHNlbGVjdG9yIGluY2x1ZGluZyBhdHRyaWJ1dGVzIG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dDE1IikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoNCwgNSwgNiknKTsKKworZGVidWcoIjphbnkg
c2VsZWN0b3IgaW5jbHVkaW5nIGF0dHJpYnV0ZXMgdW5tYXRjaGVkLiIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQxNiIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>