<?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>118255</bug_id>
          
          <creation_ts>2013-07-01 10:21:42 -0700</creation_ts>
          <short_desc>[CSS Grid Layout] Allow defining named grid lines on the grid element</short_desc>
          <delta_ts>2013-08-07 01:56:10 -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>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103310</blocked>
    
    <blocked>118025</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>svillar</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905085</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-07-01 10:21:42 -0700</bug_when>
    <thetext>We should consider merging:

    Allow defining named grid lines on the grid element
    
    This change adds parsing, style resolution and getComputedStyle
    support for named grid lines at the grid element level (ie extends
    our &lt;track-list&gt; support). Per the specification, we allow multiple
    grid lines with the same name.
    
    To fully support resolving the grid lines to a position on our
    grid, we need to add the parsing at the grid item&apos;s level (which
    means extending our &lt;grid-line&gt; support). This will be done in a
    follow-up change.
    
    BUG=234192
    TEST=fast/css-grid-layout/named-grid-line-get-set.html
    
    Review URL: https://chromiumcodereview.appspot.com/14786002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905087</commentid>
    <comment_count>1</comment_count>
      <attachid>205819</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-07-01 10:27:51 -0700</bug_when>
    <thetext>Created attachment 205819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914797</commentid>
    <comment_count>2</comment_count>
      <attachid>205819</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-06 00:47:16 -0700</bug_when>
    <thetext>Comment on attachment 205819
Patch

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

&gt; Source/WebCore/css/CSSParser.cpp:4788
&gt; +            RefPtr&lt;CSSPrimitiveValue&gt; name = createPrimitiveStringValue(m_valueList-&gt;current());
&gt; +            values-&gt;append(name);

I wouldn&apos;t use a temporary here, it adds nothing but ref count churn.

&gt; Source/WebCore/rendering/style/RenderStyle.h:1301
&gt; +    void setNamedGridColumnLines(const NamedGridLinesMap&amp; namedGridColumnLines) { SET_VAR(rareNonInheritedData.access()-&gt;m_grid, m_namedGridColumnLines, namedGridColumnLines); }
&gt; +    void setNamedGridRowLines(const NamedGridLinesMap&amp; namedGridRowLines) { SET_VAR(rareNonInheritedData.access()-&gt;m_grid, m_namedGridRowLines, namedGridRowLines); }

This highlights a flaw with the SET_VAR macro; even if the new value is equal to the new one, we&apos;ll still always detach from the shared rareNonInheritedData (due to there being two levels of indirection, and SET_VAR handles only one.)

Not specific to this patch, we already have other instances of SET_VAR(foo.access(), ...) that we should do something about to avoid unnecessary cloning.

&gt; Source/WebCore/rendering/style/StyleGridData.h:47
&gt; -        return m_gridColumns == o.m_gridColumns &amp;&amp; m_gridRows == o.m_gridRows &amp;&amp; m_gridAutoFlow == o.m_gridAutoFlow &amp;&amp; m_gridAutoRows == o.m_gridAutoRows &amp;&amp; m_gridAutoColumns == o.m_gridAutoColumns;
&gt; +        return m_gridColumns == o.m_gridColumns &amp;&amp; m_gridRows == o.m_gridRows &amp;&amp; m_gridAutoFlow == o.m_gridAutoFlow &amp;&amp; m_gridAutoRows == o.m_gridAutoRows &amp;&amp; m_gridAutoColumns == o.m_gridAutoColumns &amp;&amp; m_namedGridColumnLines == o.m_namedGridColumnLines &amp;&amp; m_namedGridRowLines == o.m_namedGridRowLines;

Comparing two hash maps here doesn&apos;t look great for performance. Probably not a problem initially, but something we should keep in mind going forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914872</commentid>
    <comment_count>3</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-08-06 08:07:29 -0700</bug_when>
    <thetext>Committed r153752: &lt;http://trac.webkit.org/changeset/153752&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205819</attachid>
            <date>2013-07-01 10:27:51 -0700</date>
            <delta_ts>2013-08-06 00:47:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118255-20130701192546.patch</filename>
            <type>text/plain</type>
            <size>27290</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NiYTg4MDc5MTFiZDgy
N2IxZTFiMDYwYTI3YzVlNzJmZjNjNWUwNC4uMzdjM2YwOGYzMjI1ZDY4Y2YwOTNjZjcwNTk3ZWQx
ZTZkZDczZjBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTA3LTAxICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEFsbG93IGRlZmluaW5nIG5hbWVkIGdyaWQgbGluZXMgb24gdGhlIGdyaWQgZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4
MjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJv
bSBCbGluayByMTQ5Nzk4IGJ5IDxqY2hhZmZyYWl4QGNocm9taXVtLm9yZz4KKworICAgICAgICBU
aGlzIGNoYW5nZSBhZGRzIHBhcnNpbmcsIHN0eWxlIHJlc29sdXRpb24gYW5kIGdldENvbXB1dGVk
U3R5bGUKKyAgICAgICAgc3VwcG9ydCBmb3IgbmFtZWQgZ3JpZCBsaW5lcyBhdCB0aGUgZ3JpZCBl
bGVtZW50IGxldmVsCisgICAgICAgIChpLmUuIGV4dGVuZHMgb3VyIDx0cmFjay1saXN0PiBzdXBw
b3J0KS4gUGVyIHRoZSBzcGVjaWZpY2F0aW9uLCB3ZQorICAgICAgICBhbGxvdyBtdWx0aXBsZSBn
cmlkIGxpbmVzIHdpdGggdGhlIHNhbWUgbmFtZS4KKworICAgICAgICBUbyBmdWxseSBzdXBwb3J0
IHJlc29sdmluZyB0aGUgZ3JpZCBsaW5lcyB0byBhIHBvc2l0aW9uIG9uIG91cgorICAgICAgICBn
cmlkLCB3ZSBuZWVkIHRvIGFkZCB0aGUgcGFyc2luZyBhdCB0aGUgZ3JpZCBpdGVtJ3MgbGV2ZWwg
KHdoaWNoCisgICAgICAgIG1lYW5zIGV4dGVuZGluZyBvdXIgPGdyaWQtbGluZT4gc3VwcG9ydCku
IFRoaXMgd2lsbCBiZSBkb25lIGluIGEKKyAgICAgICAgZm9sbG93LXVwIGNoYW5nZS4KKworICAg
ICAgICBUZXN0OiBmYXN0L2Nzcy1ncmlkLWxheW91dC9uYW1lZC1ncmlkLWxpbmUtZ2V0LXNldC5o
dG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZSk6CisgICAgICAgICogY3NzL0NT
U1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNr
TGlzdCk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlR3JpZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVy
OjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWREYXRhKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHcmlk
RGF0YTo6b3BlcmF0b3I9PSk6CisKIDIwMTMtMDYtMjkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY2FsbGluZyBpbnRvIE9iamVjdGl2ZS1D
IGV2ZXJ5IHRpbWUgd2UgZ2V0IHRoZSBzY3JvbGxiYXIgd2lkdGgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMjFhMTk5MGFm
OTYwZGMwODU2NWM0MTYyODk2MmQ4MDg2ZTE1NTc3My4uMmQ2NTcxMTUxMDA5MGMzNTAxNjFhZjZh
MjM1MWI2NmFkZjdmM2JjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTEwODMsMTUgKzEwODMsMzkgQEAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrU2l6ZShjb25zdCBHcmlkVHJhY2tT
aXplJiB0cmFja1NpemUKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8Q1NT
VmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChjb25zdCBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4m
IHRyYWNrU2l6ZXMsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyVmlldyAqcmVuZGVy
VmlldykKK3N0YXRpYyB2b2lkIGFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleChjb25z
dCBOYW1lZEdyaWRMaW5lc01hcCYgbmFtZWRHcmlkTGluZXMsIHNpemVfdCBpLCBDU1NWYWx1ZUxp
c3QmIGxpc3QpCit7CisgICAgLy8gTm90ZSB0aGF0IHRoaXMgd29uJ3QgcmV0dXJuIHRoZSByZXN1
bHRzIGluIHRoZSBvcmRlciBzcGVjaWZpZWQgaW4gdGhlIHN0eWxlIHNoZWV0LAorICAgIC8vIHdo
aWNoIGlzIHByb2JhYmx5IGZpbmUgYXMgd2Ugc3RpbGwgKmRvKiByZXR1cm4gYWxsIHRoZSBleHBl
Y3RlZCB2YWx1ZXMuCisgICAgTmFtZWRHcmlkTGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
bmFtZWRHcmlkTGluZXMuYmVnaW4oKTsKKyAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gbmFtZWRHcmlkTGluZXMuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsg
KytpdCkgeworICAgICAgICBjb25zdCBWZWN0b3I8c2l6ZV90PiYgbGluZXNJbmRleGVzID0gaXQt
PnZhbHVlOworICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGxpbmVzSW5kZXhlcy5zaXpl
KCk7ICsraikgeworICAgICAgICAgICAgaWYgKGxpbmVzSW5kZXhlc1tqXSAhPSBpKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBsaXN0LmFwcGVuZChjc3NWYWx1ZVBv
b2woKS5jcmVhdGVWYWx1ZShpdC0+a2V5LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyBQYXNz
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFja0xpc3QoY29uc3QgVmVjdG9yPEdyaWRU
cmFja1NpemU+JiB0cmFja1NpemVzLCBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgbmFtZWRHcmlk
TGluZXMsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyVmlldyogcmVuZGVyVmlldykK
IHsKICAgICAvLyBIYW5kbGUgdGhlICdub25lJyBjYXNlIGhlcmUuCi0gICAgaWYgKCF0cmFja1Np
emVzLnNpemUoKSkKKyAgICBpZiAoIXRyYWNrU2l6ZXMuc2l6ZSgpKSB7CisgICAgICAgIEFTU0VS
VChuYW1lZEdyaWRMaW5lcy5pc0VtcHR5KCkpOwogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7CisgICAgfQogCiAgICAgUmVm
UHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0
ZWQoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYWNrU2l6ZXMuc2l6ZSgpOyArK2kp
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFja1NpemVzLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgIGFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleChuYW1lZEdyaWRMaW5lcywg
aSwgKmxpc3QpOwogICAgICAgICBsaXN0LT5hcHBlbmQodmFsdWVGb3JHcmlkVHJhY2tTaXplKHRy
YWNrU2l6ZXNbaV0sIHN0eWxlLCByZW5kZXJWaWV3KSk7CisgICAgfQorICAgIC8vIFRob3NlIGFy
ZSB0aGUgdHJhaWxpbmcgPHN0cmluZz4qIGFsbG93ZWQgaW4gdGhlIHN5bnRheC4KKyAgICBhZGRW
YWx1ZXNGb3JOYW1lZEdyaWRMaW5lc0F0SW5kZXgobmFtZWRHcmlkTGluZXMsIHRyYWNrU2l6ZXMu
c2l6ZSgpLCAqbGlzdCk7CiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogfQogCkBAIC0xOTc0
LDkgKzE5OTgsOSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9y
Ojpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydAogICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0R3JpZEF1dG9Sb3dzOgogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yR3Jp
ZFRyYWNrU2l6ZShzdHlsZS0+Z3JpZEF1dG9Sb3dzKCksIHN0eWxlLmdldCgpLCBtX25vZGUtPmRv
Y3VtZW50KCktPnJlbmRlclZpZXcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRH
cmlkQ29sdW1uczoKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdyaWRUcmFja0xpc3Qoc3R5
bGUtPmdyaWRDb2x1bW5zKCksIHN0eWxlLmdldCgpLCBtX25vZGUtPmRvY3VtZW50KCktPnJlbmRl
clZpZXcoKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KHN0eWxl
LT5ncmlkQ29sdW1ucygpLCBzdHlsZS0+bmFtZWRHcmlkQ29sdW1uTGluZXMoKSwgc3R5bGUuZ2V0
KCksIG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgotICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRy
YWNrTGlzdChzdHlsZS0+Z3JpZFJvd3MoKSwgc3R5bGUuZ2V0KCksIG1fbm9kZS0+ZG9jdW1lbnQo
KS0+cmVuZGVyVmlldygpKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdyaWRUcmFja0xp
c3Qoc3R5bGUtPmdyaWRSb3dzKCksIHN0eWxlLT5uYW1lZEdyaWRSb3dMaW5lcygpLCBzdHlsZS5n
ZXQoKSwgbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkpOwogCiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRHcmlkU3RhcnQ6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JH
cmlkUG9zaXRpb24oc3R5bGUtPmdyaWRJdGVtU3RhcnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCmluZGV4IDQzOGI0MWU5NzBlZTJiM2VhZTljYzc2YzFjNTZjNjFiZjk4MDE3YjEuLmJlNDZi
MWJjYTU3NDc1ZTJiZDkyYzkyZDZiNjZmYmZkYzRlNmFjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCkBAIC00NzgzLDYgKzQ3ODMsMTYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRy
YWNrTGlzdChDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAKICAgICBSZWZQ
dHI8Q1NTVmFsdWVMaXN0PiB2YWx1ZXMgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJh
dGVkKCk7CiAgICAgd2hpbGUgKG1fdmFsdWVMaXN0LT5jdXJyZW50KCkpIHsKKyAgICAgICAgd2hp
bGUgKG1fdmFsdWVMaXN0LT5jdXJyZW50KCkgJiYgbV92YWx1ZUxpc3QtPmN1cnJlbnQoKS0+dW5p
dCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykgeworICAgICAgICAgICAgUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBuYW1lID0gY3JlYXRlUHJpbWl0aXZlU3RyaW5nVmFsdWUobV92
YWx1ZUxpc3QtPmN1cnJlbnQoKSk7CisgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZChuYW1lKTsK
KyAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICAv
LyBUaGlzIGFsbG93cyB0cmFpbGluZyA8c3RyaW5nPiogcGVyIHRoZSBzcGVjaWZpY2F0aW9uLgor
ICAgICAgICBpZiAoIW1fdmFsdWVMaXN0LT5jdXJyZW50KCkpCisgICAgICAgICAgICBicmVhazsK
KwogICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHByaW1pdGl2ZVZhbHVlID0gcGFy
c2VHcmlkVHJhY2tTaXplKCk7CiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXgg
YmZhNTYxOTVjNmI1M2ZjNGJjZjljNzAxNTA3NjZiMDgwYzQ4OGFjYi4uODlmNWJlNWQ1ZTg3ZTQ1
YmVmNjk3OGQwYjdkODgxMTIyNzg1NmU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcApAQCAtMjExMyw3ICsyMTEzLDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrU2l6
ZShDU1NWYWx1ZSogdmFsdWUsIEdyaWRUcmFja1NpemUmIHRyYWNrU2l6ZSwgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrTGlzdChDU1NWYWx1
ZSogdmFsdWUsIFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTaXplcywgY29uc3QgU3R5bGVS
ZXNvbHZlcjo6U3RhdGUmIHN0YXRlKQorc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrTGlzdChD
U1NWYWx1ZSogdmFsdWUsIFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTaXplcywgTmFtZWRH
cmlkTGluZXNNYXAmIG5hbWVkR3JpZExpbmVzLCBjb25zdCBTdHlsZVJlc29sdmVyOjpTdGF0ZSYg
c3RhdGUpCiB7CiAgICAgLy8gSGFuZGxlICdub25lJy4KICAgICBpZiAodmFsdWUtPmlzUHJpbWl0
aXZlVmFsdWUoKSkgewpAQCAtMjEyNCwxNCArMjEyNCwyOSBAQCBzdGF0aWMgYm9vbCBjcmVhdGVH
cmlkVHJhY2tMaXN0KENTU1ZhbHVlKiB2YWx1ZSwgVmVjdG9yPEdyaWRUcmFja1NpemU+JiB0cmFj
a1NpegogICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorICAgIHNpemVfdCBjdXJyZW50TmFtZWRHcmlkTGluZSA9IDA7CiAgICAgZm9yIChDU1NW
YWx1ZUxpc3RJdGVyYXRvciBpID0gdmFsdWU7IGkuaGFzTW9yZSgpOyBpLmFkdmFuY2UoKSkgewog
ICAgICAgICBDU1NWYWx1ZSogY3VyclZhbHVlID0gaS52YWx1ZSgpOworICAgICAgICBpZiAoY3Vy
clZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKKyAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oY3Vy
clZhbHVlKTsKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNTdHJpbmcoKSkgewor
ICAgICAgICAgICAgICAgIE5hbWVkR3JpZExpbmVzTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gbmFt
ZWRHcmlkTGluZXMuYWRkKHByaW1pdGl2ZVZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLCBWZWN0b3I8
c2l6ZV90PigpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFwcGVu
ZChjdXJyZW50TmFtZWRHcmlkTGluZSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICArK2N1cnJlbnROYW1lZEdyaWRMaW5lOwog
ICAgICAgICBHcmlkVHJhY2tTaXplIHRyYWNrU2l6ZTsKICAgICAgICAgaWYgKCFjcmVhdGVHcmlk
VHJhY2tTaXplKGN1cnJWYWx1ZSwgdHJhY2tTaXplLCBzdGF0ZSkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAgICAgdHJhY2tTaXplcy5hcHBlbmQodHJhY2tTaXplKTsKICAgICB9
CisKKyAgICBpZiAodHJhY2tTaXplcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yODM4LDE2ICsyODUzLDIwIEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFs
dWUpCiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uczogewogICAg
ICAgICBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4gdHJhY2tTaXplczsKLSAgICAgICAgaWYgKCFjcmVh
dGVHcmlkVHJhY2tMaXN0KHZhbHVlLCB0cmFja1NpemVzLCBzdGF0ZSkpCisgICAgICAgIE5hbWVk
R3JpZExpbmVzTWFwIG5hbWVkR3JpZExpbmVzOworICAgICAgICBpZiAoIWNyZWF0ZUdyaWRUcmFj
a0xpc3QodmFsdWUsIHRyYWNrU2l6ZXMsIG5hbWVkR3JpZExpbmVzLCBzdGF0ZSkpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldEdyaWRDb2x1bW5zKHRyYWNr
U2l6ZXMpOworICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXROYW1lZEdyaWRDb2x1bW5MaW5lcyhu
YW1lZEdyaWRMaW5lcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEdyaWRSb3dzOiB7CiAgICAgICAgIFZlY3RvcjxHcmlkVHJhY2tTaXplPiB0cmFj
a1NpemVzOwotICAgICAgICBpZiAoIWNyZWF0ZUdyaWRUcmFja0xpc3QodmFsdWUsIHRyYWNrU2l6
ZXMsIHN0YXRlKSkKKyAgICAgICAgTmFtZWRHcmlkTGluZXNNYXAgbmFtZWRHcmlkTGluZXM7Cisg
ICAgICAgIGlmICghY3JlYXRlR3JpZFRyYWNrTGlzdCh2YWx1ZSwgdHJhY2tTaXplcywgbmFtZWRH
cmlkTGluZXMsIHN0YXRlKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgc3RhdGUuc3R5
bGUoKS0+c2V0R3JpZFJvd3ModHJhY2tTaXplcyk7CisgICAgICAgIHN0YXRlLnN0eWxlKCktPnNl
dE5hbWVkR3JpZFJvd0xpbmVzKG5hbWVkR3JpZExpbmVzKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCA4YTUyZDg0MGI2NzI0NGI2ZDkzM2ZmOGM3NTYwOTliNzVkZjZjNGEyLi4zMmFmMDJkYTI2OGI4
MWMzMDk0Mjc5NzM4MWFmMTIxYjNlNGY2NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzczLDYgKzc3Myw4IEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgZ3JpZENvbHVtbnMoKSBjb25zdCB7IHJldHVy
biByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX2dyaWRDb2x1bW5zOyB9CiAgICAgY29u
c3QgVmVjdG9yPEdyaWRUcmFja1NpemU+JiBncmlkUm93cygpIGNvbnN0IHsgcmV0dXJuIHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX2dyaWQtPm1fZ3JpZFJvd3M7IH0KKyAgICBjb25zdCBOYW1lZEdy
aWRMaW5lc01hcCYgbmFtZWRHcmlkQ29sdW1uTGluZXMoKSBjb25zdCB7IHJldHVybiByYXJlTm9u
SW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX25hbWVkR3JpZENvbHVtbkxpbmVzOyB9CisgICAgY29u
c3QgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkR3JpZFJvd0xpbmVzKCkgY29uc3QgeyByZXR1cm4g
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9uYW1lZEdyaWRSb3dMaW5lczsgfQogICAg
IEdyaWRBdXRvRmxvdyBncmlkQXV0b0Zsb3coKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9ncmlkLT5tX2dyaWRBdXRvRmxvdzsgfQogICAgIGNvbnN0IEdyaWRUcmFja1Np
emUmIGdyaWRBdXRvQ29sdW1ucygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX2dyaWQtPm1fZ3JpZEF1dG9Db2x1bW5zOyB9CiAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYg
Z3JpZEF1dG9Sb3dzKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3Jp
ZC0+bV9ncmlkQXV0b1Jvd3M7IH0KQEAgLTEyOTUsNiArMTI5Nyw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEdyaWRBdXRvUm93cyhjb25zdCBHcmlkVHJhY2tTaXplJiBsZW5ndGgpIHsgU0VUX1ZB
UihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRBdXRvUm93cywg
bGVuZ3RoKTsgfQogICAgIHZvaWQgc2V0R3JpZENvbHVtbnMoY29uc3QgVmVjdG9yPEdyaWRUcmFj
a1NpemU+JiBsZW5ndGhzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fZ3JpZCwgbV9ncmlkQ29sdW1ucywgbGVuZ3Rocyk7IH0KICAgICB2b2lkIHNldEdyaWRSb3dz
KGNvbnN0IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZFJvd3MsIGxlbmd0aHMpOyB9Cisg
ICAgdm9pZCBzZXROYW1lZEdyaWRDb2x1bW5MaW5lcyhjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYg
bmFtZWRHcmlkQ29sdW1uTGluZXMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nl
c3MoKS0+bV9ncmlkLCBtX25hbWVkR3JpZENvbHVtbkxpbmVzLCBuYW1lZEdyaWRDb2x1bW5MaW5l
cyk7IH0KKyAgICB2b2lkIHNldE5hbWVkR3JpZFJvd0xpbmVzKGNvbnN0IE5hbWVkR3JpZExpbmVz
TWFwJiBuYW1lZEdyaWRSb3dMaW5lcykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFj
Y2VzcygpLT5tX2dyaWQsIG1fbmFtZWRHcmlkUm93TGluZXMsIG5hbWVkR3JpZFJvd0xpbmVzKTsg
fQogICAgIHZvaWQgc2V0R3JpZEF1dG9GbG93KEdyaWRBdXRvRmxvdyBmbG93KSB7IFNFVF9WQVIo
cmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZCwgbV9ncmlkQXV0b0Zsb3csIGZs
b3cpOyB9CiAgICAgdm9pZCBzZXRHcmlkSXRlbVN0YXJ0KGNvbnN0IEdyaWRQb3NpdGlvbiYgc3Rh
cnRQb3NpdGlvbikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dy
aWRJdGVtLCBtX2dyaWRTdGFydCwgc3RhcnRQb3NpdGlvbik7IH0KICAgICB2b2lkIHNldEdyaWRJ
dGVtRW5kKGNvbnN0IEdyaWRQb3NpdGlvbiYgZW5kUG9zaXRpb24pIHsgU0VUX1ZBUihyYXJlTm9u
SW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkSXRlbSwgbV9ncmlkRW5kLCBlbmRQb3NpdGlv
bik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdy
aWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRh
LmNwcAppbmRleCA5Y2ZmZWFiY2YxZjg3NWY2NWI3YWI3MjkyZGIyNTZiM2E1MTk1OTFmLi45NDli
ZTAyNjBlYTUyNDhlY2FmZWNmMDA3NzcxNDk2NjMxNTMzMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3BwCkBAIC00Myw2ICs0Myw4IEBA
IFN0eWxlR3JpZERhdGE6OlN0eWxlR3JpZERhdGEoY29uc3QgU3R5bGVHcmlkRGF0YSYgbykKICAg
ICA6IFJlZkNvdW50ZWQ8U3R5bGVHcmlkRGF0YT4oKQogICAgICwgbV9ncmlkQ29sdW1ucyhvLm1f
Z3JpZENvbHVtbnMpCiAgICAgLCBtX2dyaWRSb3dzKG8ubV9ncmlkUm93cykKKyAgICAsIG1fbmFt
ZWRHcmlkQ29sdW1uTGluZXMoby5tX25hbWVkR3JpZENvbHVtbkxpbmVzKQorICAgICwgbV9uYW1l
ZEdyaWRSb3dMaW5lcyhvLm1fbmFtZWRHcmlkUm93TGluZXMpCiAgICAgLCBtX2dyaWRBdXRvRmxv
dyhvLm1fZ3JpZEF1dG9GbG93KQogICAgICwgbV9ncmlkQXV0b1Jvd3Moby5tX2dyaWRBdXRvUm93
cykKICAgICAsIG1fZ3JpZEF1dG9Db2x1bW5zKG8ubV9ncmlkQXV0b0NvbHVtbnMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaAppbmRleCBmNjg0OTgy
MGM0ODVmMjBjZTBlYTZlMGVjYjJjYzdkNTMyZTI0ZGU1Li40NWI5ZWViYjEzYWUwYzc2YjY3NmYz
NWMwZmIwYTU4ZGM4NmUyNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVHcmlkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUdyaWREYXRhLmgKQEAgLTMxLDkgKzMxLDEyIEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8c2l6ZV90PiA+IE5hbWVkR3Jp
ZExpbmVzTWFwOworCiBjbGFzcyBTdHlsZUdyaWREYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8U3R5
bGVHcmlkRGF0YT4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlR3JpZERh
dGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZUdyaWREYXRhKTsgfQpAQCAt
NDEsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVH
cmlkRGF0YSYgbykgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2dyaWRDb2x1bW5zID09
IG8ubV9ncmlkQ29sdW1ucyAmJiBtX2dyaWRSb3dzID09IG8ubV9ncmlkUm93cyAmJiBtX2dyaWRB
dXRvRmxvdyA9PSBvLm1fZ3JpZEF1dG9GbG93ICYmIG1fZ3JpZEF1dG9Sb3dzID09IG8ubV9ncmlk
QXV0b1Jvd3MgJiYgbV9ncmlkQXV0b0NvbHVtbnMgPT0gby5tX2dyaWRBdXRvQ29sdW1uczsKKyAg
ICAgICAgcmV0dXJuIG1fZ3JpZENvbHVtbnMgPT0gby5tX2dyaWRDb2x1bW5zICYmIG1fZ3JpZFJv
d3MgPT0gby5tX2dyaWRSb3dzICYmIG1fZ3JpZEF1dG9GbG93ID09IG8ubV9ncmlkQXV0b0Zsb3cg
JiYgbV9ncmlkQXV0b1Jvd3MgPT0gby5tX2dyaWRBdXRvUm93cyAmJiBtX2dyaWRBdXRvQ29sdW1u
cyA9PSBvLm1fZ3JpZEF1dG9Db2x1bW5zICYmIG1fbmFtZWRHcmlkQ29sdW1uTGluZXMgPT0gby5t
X25hbWVkR3JpZENvbHVtbkxpbmVzICYmIG1fbmFtZWRHcmlkUm93TGluZXMgPT0gby5tX25hbWVk
R3JpZFJvd0xpbmVzOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTdHlsZUdy
aWREYXRhJiBvKSBjb25zdApAQCAtNTMsNiArNTYsOSBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPEdy
aWRUcmFja1NpemU+IG1fZ3JpZENvbHVtbnM7CiAgICAgVmVjdG9yPEdyaWRUcmFja1NpemU+IG1f
Z3JpZFJvd3M7CiAKKyAgICBOYW1lZEdyaWRMaW5lc01hcCBtX25hbWVkR3JpZENvbHVtbkxpbmVz
OworICAgIE5hbWVkR3JpZExpbmVzTWFwIG1fbmFtZWRHcmlkUm93TGluZXM7CisKICAgICBHcmlk
QXV0b0Zsb3cgbV9ncmlkQXV0b0Zsb3c7CiAKICAgICBHcmlkVHJhY2tTaXplIG1fZ3JpZEF1dG9S
b3dzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDg5MGMzMzZkYzhlYTE3OTFmNWJlNDRmYTI3YzEwZmFhYzNkMmQ3ZmMuLjAw
MWNhNTlhN2NjZmQ1MjcxYzZmNTE3Mzk1YTVjZTI3NjFlMmQxYmMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMy0wNy0wMSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNv
bT4KKworICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBBbGxvdyBkZWZpbmluZyBuYW1lZCBncmlk
IGxpbmVzIG9uIHRoZSBncmlkIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExODI1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZyb20gQmxpbmsgcjE0OTc5OCBieSA8amNoYWZmcmFpeEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9uYW1lZC1ncmlkLWxp
bmUtZ2V0LXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQt
bGF5b3V0L25hbWVkLWdyaWQtbGluZS1nZXQtc2V0Lmh0bWw6IEFkZGVkLgorCiAyMDEzLTA2LTMw
ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkIEdUSyBnYXJkZW5pbmcuIFJlYmFzZWxpbmluZyB3aGF0ZXZlciBjYW4gYmUgcmViYXNlbGlu
ZWQgYW5kIGFkZGluZyBmYWlsdXJlIGV4cGVjdGF0aW9ucyBmb3Igb3RoZXIgY3VycmVudCBmYWls
dXJlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVk
LWdyaWQtbGluZS1nZXQtc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdy
aWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZS1nZXQtc2V0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45M2VlYTljZjI4ZjgwNmJhZWI4ZmEzYTJiNTcwODNiNzI1NDY3YTQwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvbmFtZWQtZ3JpZC1saW5lLWdl
dC1zZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTIgQEAKK1Rlc3QgdGhhdCBzZXR0aW5nIGFu
ZCBnZXR0aW5nIGdyaWQtY29sdW1ucyBhbmQgZ3JpZC1yb3dzIHdvcmtzIGFzIGV4cGVjdGVkCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0IGdldHRpbmcgLXdlYmtpdC1ncmlk
LWNvbHVtbnMgYW5kIC13ZWJraXQtZ3JpZC1yb3dzIHNldCB0aHJvdWdoIENTUworUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWNvbHVtbnMnKSBpcyAiZmlyc3QgMTBweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlk
RWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgImZp
cnN0IDE1cHgiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICI1MyUgbGFzdCIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1yb3dzJykgaXMgIjI3JSBsYXN0IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAiZmly
c3QgYXV0byIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgImF1dG8gbGFzdCIKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3Jp
ZC1jb2x1bW5zJykgaXMgImZpcnN0IG1pbm1heCgxMCUsIDE1cHgpIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJv
d3MnKSBpcyAibWlubWF4KDIwcHgsIDUwJSkgbGFzdCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShn
cmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykg
aXMgIm5hdiBmaXJzdCAxMHB4IGxhc3QiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1l
bnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICJuYXYgZmly
c3QgMTVweCBsYXN0IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAibmF2IGZpcnN0IDEwJSBu
YXYgMTUlIGxhc3QiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICJmaXJzdCBuYXYyIDI1JSBuYXYy
IDc1JSBsYXN0IgorCitUZXN0IGdldHRpbmcgYW5kIHNldHRpbmcgLXdlYmtpdC1ncmlkLWNvbHVt
bnMgYW5kIC13ZWJraXQtZ3JpZC1yb3dzIHRocm91Z2ggSlMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5z
JykgaXMgImZpcnN0IDE4cHgiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICI2NnB4IGxhc3QiCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtY29sdW1ucycpIGlzICJmaXJzdCA1NSUiCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycp
IGlzICI0MCUgbGFzdCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgImZpcnN0IGF1dG8iCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtcm93cycpIGlzICJhdXRvIGxhc3QiCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
Z3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycp
IGlzICJmaXJzdCAtd2Via2l0LW1pbi1jb250ZW50IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdy
aWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAi
LXdlYmtpdC1taW4tY29udGVudCBsYXN0IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAiZmly
c3QgLXdlYmtpdC1tYXgtY29udGVudCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgIi13ZWJraXQt
bWF4LWNvbnRlbnQgbGFzdCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgImZpcnN0IG1pbm1h
eCg1NSUsIDQ1cHgpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAibWlubWF4KDMwcHgsIDQwJSkg
bGFzdCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgImZpcnN0IG1pbm1heCgyMjBweCwgLXdl
YmtpdC1tYXgtY29udGVudCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICJtaW5tYXgoLXdlYmtp
dC1tYXgtY29udGVudCwgNTBweCkgbGFzdCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkRWxl
bWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgImZp
cnN0IG1pbm1heCgyMjBweCwgLXdlYmtpdC1tYXgtY29udGVudCkiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIGlzICJtaW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgNTBweCkgbGFzdCIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1jb2x1bW5zJykgaXMgImZpcnN0IG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Vi
a2l0LW1heC1jb250ZW50KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgIm1pbm1heCgtd2Via2l0
LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSBsYXN0IgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNv
bHVtbnMnKSBpcyAibmF2IGZpcnN0IG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Via2l0
LW1heC1jb250ZW50KSBsYXN0IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVtZW50LCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAibmF2IGZpcnN0IG1p
bm1heCgtd2Via2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSBsYXN0IgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAibmF2IGZpcnN0IG1pbm1heCgtd2Via2l0LW1pbi1jb250
ZW50LCAtd2Via2l0LW1heC1jb250ZW50KSBuYXYgYXV0byBsYXN0IgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJv
d3MnKSBpcyAiZmlyc3QgbmF2MiBtaW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgLXdlYmtpdC1t
aW4tY29udGVudCkgbmF2MiBtaW5tYXgoMTBweCwgMTVweCkgbGFzdCIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1j
b2x1bW5zJykgaXMgImZvbyBiYXIgYXV0byBmb28gYXV0byBiYXIiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIGlzICJmb28gYmFyIGF1dG8gZm9vIGF1dG8gYmFyIgorCitUZXN0IGdldHRpbmcgYW5kIHNl
dHRpbmcgaW52YWxpZCAtd2Via2l0LWdyaWQtY29sdW1ucyBhbmQgLXdlYmtpdC1ncmlkLXJvd3Mg
dGhyb3VnaCBKUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAibm9uZSIKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3Jp
ZC1yb3dzJykgaXMgIm5vbmUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvbmFtZWQtZ3JpZC1saW5lLWdldC1zZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdy
aWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZS1nZXQtc2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzE0NjUz
Mzc5Y2EyNjJkYjZlMTQ2ZGNkNzlkMzAyNDQ5NjZiMWEzZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZS1nZXQtc2V0Lmh0
bWwKQEAgLTAsMCArMSwxNTMgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxs
aW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzdHlsZT4K
Ky5ncmlkV2l0aEZpeGVkIHsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogImZpcnN0IiAxMHB4
OworICAgIC13ZWJraXQtZ3JpZC1yb3dzOiAiZmlyc3QiIDE1cHg7Cit9CisuZ3JpZFdpdGhQZXJj
ZW50IHsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczogNTMlICJsYXN0IjsKKyAgICAtd2Via2l0
LWdyaWQtcm93czogMjclICJsYXN0IjsKK30KKy5ncmlkV2l0aEF1dG8geworICAgIC13ZWJraXQt
Z3JpZC1jb2x1bW5zOiAiZmlyc3QiIGF1dG87CisgICAgLXdlYmtpdC1ncmlkLXJvd3M6IGF1dG8g
Imxhc3QiOworfQorLmdyaWRXaXRoTWluTWF4IHsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uczog
ImZpcnN0IiBtaW5tYXgoMTAlLCAxNXB4KTsKKyAgICAtd2Via2l0LWdyaWQtcm93czogbWlubWF4
KDIwcHgsIDUwJSkgImxhc3QiOworfQorLmdyaWRXaXRoRml4ZWRNdWx0aXBsZSB7CisgICAgLXdl
YmtpdC1ncmlkLWNvbHVtbnM6ICJmaXJzdCIgIm5hdiIgMTBweCAibGFzdCI7CisgICAgLXdlYmtp
dC1ncmlkLXJvd3M6ICJmaXJzdCIgIm5hdiIgMTVweCAibGFzdCI7Cit9CisuZ3JpZFdpdGhQZXJj
ZW50YWdlU2FtZVN0cmluZ011bHRpcGxlVGltZXMgeworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5z
OiAiZmlyc3QiICJuYXYiIDEwJSAibmF2IiAxNSUgImxhc3QiOworICAgIC13ZWJraXQtZ3JpZC1y
b3dzOiAiZmlyc3QiICJuYXYyIiAyNSUgIm5hdjIiIDc1JSAibGFzdCI7Cit9Cis8L3N0eWxlPgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZFdpdGhGaXhlZCIgaWQ9ImdyaWRX
aXRoRml4ZWRFbGVtZW50Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZFdpdGhQZXJjZW50
IiBpZD0iZ3JpZFdpdGhQZXJjZW50RWxlbWVudCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkIGdy
aWRXaXRoQXV0byIgaWQ9ImdyaWRXaXRoQXV0b0VsZW1lbnQiPjwvZGl2PgorPGRpdiBjbGFzcz0i
Z3JpZCBncmlkV2l0aE1pbk1heCIgaWQ9ImdyaWRXaXRoTWluTWF4Ij48L2Rpdj4KKzxkaXYgY2xh
c3M9ImdyaWQgZ3JpZFdpdGhGaXhlZE11bHRpcGxlIiBpZD0iZ3JpZFdpdGhGaXhlZE11bHRpcGxl
Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZFdpdGhQZXJjZW50YWdlU2FtZVN0cmluZ011
bHRpcGxlVGltZXMiIGlkPSJncmlkV2l0aFBlcmNlbnRhZ2VTYW1lU3RyaW5nTXVsdGlwbGVUaW1l
cyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgc2V0dGluZyBh
bmQgZ2V0dGluZyBncmlkLWNvbHVtbnMgYW5kIGdyaWQtcm93cyB3b3JrcyBhcyBleHBlY3RlZCcp
OworCisgICAgZnVuY3Rpb24gdGVzdFZhbHVlKGdyaWRFbGVtZW50LCBuYW1lZEdyaWRDb2x1bW5z
LCBuYW1lZEdyaWRSb3dzKQorICAgIHsKKyAgICAgICAgdGhpcy5ncmlkRWxlbWVudCA9IGdyaWRF
bGVtZW50OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldENvbXB1dGVkU3R5bGUo
Z3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycp
IiwgbmFtZWRHcmlkQ29sdW1ucyk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0
Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1yb3dzJykiLCBuYW1lZEdyaWRSb3dzKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0
Q1NTVmFsdWUoZ3JpZEVsZW1lbnRJZCwgbmFtZWRHcmlkQ29sdW1ucywgbmFtZWRHcmlkUm93cykK
KyAgICB7CisgICAgICAgIHRlc3RWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChncmlkRWxl
bWVudElkKSwgbmFtZWRHcmlkQ29sdW1ucywgbmFtZWRHcmlkUm93cyk7CisgICAgfQorCisgICAg
ZGVidWcoIlRlc3QgZ2V0dGluZyAtd2Via2l0LWdyaWQtY29sdW1ucyBhbmQgLXdlYmtpdC1ncmlk
LXJvd3Mgc2V0IHRocm91Z2ggQ1NTIik7CisgICAgdGVzdENTU1ZhbHVlKCJncmlkV2l0aEZpeGVk
RWxlbWVudCIsICJmaXJzdCAxMHB4IiwgImZpcnN0IDE1cHgiKTsKKyAgICB0ZXN0Q1NTVmFsdWUo
ImdyaWRXaXRoUGVyY2VudEVsZW1lbnQiLCAiNTMlIGxhc3QiLCAiMjclIGxhc3QiKTsKKyAgICB0
ZXN0Q1NTVmFsdWUoImdyaWRXaXRoQXV0b0VsZW1lbnQiLCAiZmlyc3QgYXV0byIsICJhdXRvIGxh
c3QiKTsKKyAgICB0ZXN0Q1NTVmFsdWUoImdyaWRXaXRoTWluTWF4IiwgImZpcnN0IG1pbm1heCgx
MCUsIDE1cHgpIiwgIm1pbm1heCgyMHB4LCA1MCUpIGxhc3QiKTsKKyAgICB0ZXN0Q1NTVmFsdWUo
ImdyaWRXaXRoRml4ZWRNdWx0aXBsZSIsICJuYXYgZmlyc3QgMTBweCBsYXN0IiwgIm5hdiBmaXJz
dCAxNXB4IGxhc3QiKTsKKyAgICB0ZXN0Q1NTVmFsdWUoImdyaWRXaXRoUGVyY2VudGFnZVNhbWVT
dHJpbmdNdWx0aXBsZVRpbWVzIiwgIm5hdiBmaXJzdCAxMCUgbmF2IDE1JSBsYXN0IiwgImZpcnN0
IG5hdjIgMjUlIG5hdjIgNzUlIGxhc3QiKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
VGVzdCBnZXR0aW5nIGFuZCBzZXR0aW5nIC13ZWJraXQtZ3JpZC1jb2x1bW5zIGFuZCAtd2Via2l0
LWdyaWQtcm93cyB0aHJvdWdoIEpTIik7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQp
OworICAgIGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAiJ2ZpcnN0JyAxOHB4IjsK
KyAgICBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIjY2cHggJ2xhc3QnIjsKKyAgICB0
ZXN0VmFsdWUoZWxlbWVudCwgImZpcnN0IDE4cHgiLCAiNjZweCBsYXN0Iik7CisKKyAgICBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5z
ID0gIidmaXJzdCcgNTUlIjsKKyAgICBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIjQw
JSAnbGFzdCciOworICAgIHRlc3RWYWx1ZShlbGVtZW50LCAiZmlyc3QgNTUlIiwgIjQwJSBsYXN0
Iik7CisKKyAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICBlbGVtZW50LnN0eWxlLndl
YmtpdEdyaWRDb2x1bW5zID0gIidmaXJzdCcgYXV0byI7CisgICAgZWxlbWVudC5zdHlsZS53ZWJr
aXRHcmlkUm93cyA9ICJhdXRvICdsYXN0JyI7CisgICAgdGVzdFZhbHVlKGVsZW1lbnQsICJmaXJz
dCBhdXRvIiwgImF1dG8gbGFzdCIpOworCisgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cisg
ICAgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1ucyA9ICInZmlyc3QnIC13ZWJraXQtbWlu
LWNvbnRlbnQiOworICAgIGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvd3MgPSAiLXdlYmtpdC1t
aW4tY29udGVudCAnbGFzdCciOworICAgIHRlc3RWYWx1ZShlbGVtZW50LCAiZmlyc3QgLXdlYmtp
dC1taW4tY29udGVudCIsICItd2Via2l0LW1pbi1jb250ZW50IGxhc3QiKTsKKworICAgIGVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGVsZW1lbnQpOworICAgIGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMg
PSAiJ2ZpcnN0JyAtd2Via2l0LW1heC1jb250ZW50IjsKKyAgICBlbGVtZW50LnN0eWxlLndlYmtp
dEdyaWRSb3dzID0gIi13ZWJraXQtbWF4LWNvbnRlbnQgJ2xhc3QnIjsKKyAgICB0ZXN0VmFsdWUo
ZWxlbWVudCwgImZpcnN0IC13ZWJraXQtbWF4LWNvbnRlbnQiLCAiLXdlYmtpdC1tYXgtY29udGVu
dCBsYXN0Iik7CisKKyAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICBlbGVtZW50LnN0
eWxlLndlYmtpdEdyaWRDb2x1bW5zID0gIidmaXJzdCcgbWlubWF4KDU1JSwgNDVweCkiOworICAg
IGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvd3MgPSAibWlubWF4KDMwcHgsIDQwJSkgJ2xhc3Qn
IjsKKyAgICB0ZXN0VmFsdWUoZWxlbWVudCwgImZpcnN0IG1pbm1heCg1NSUsIDQ1cHgpIiwgIm1p
bm1heCgzMHB4LCA0MCUpIGxhc3QiKTsKKworICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
ICAgIGVsZW1lbnQuc3R5bGUuZm9udCA9ICIxMHB4IEFoZW0iOworICAgIGVsZW1lbnQuc3R5bGUu
d2Via2l0R3JpZENvbHVtbnMgPSAiJ2ZpcnN0JyBtaW5tYXgoMjJlbSwgLXdlYmtpdC1tYXgtY29u
dGVudCkiOworICAgIGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvd3MgPSAibWlubWF4KC13ZWJr
aXQtbWF4LWNvbnRlbnQsIDVlbSkgJ2xhc3QnIjsKKyAgICB0ZXN0VmFsdWUoZWxlbWVudCwgImZp
cnN0IG1pbm1heCgyMjBweCwgLXdlYmtpdC1tYXgtY29udGVudCkiLCAibWlubWF4KC13ZWJraXQt
bWF4LWNvbnRlbnQsIDUwcHgpIGxhc3QiKTsKKworICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQp
OworICAgIGVsZW1lbnQuc3R5bGUuZm9udCA9ICIxMHB4IEFoZW0iOworICAgIGVsZW1lbnQuc3R5
bGUud2Via2l0R3JpZENvbHVtbnMgPSAiJ2ZpcnN0JyBtaW5tYXgoMjJlbSwgLXdlYmtpdC1tYXgt
Y29udGVudCkiOworICAgIGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvd3MgPSAibWlubWF4KC13
ZWJraXQtbWF4LWNvbnRlbnQsIDVlbSkgJ2xhc3QnIjsKKyAgICB0ZXN0VmFsdWUoZWxlbWVudCwg
ImZpcnN0IG1pbm1heCgyMjBweCwgLXdlYmtpdC1tYXgtY29udGVudCkiLCAibWlubWF4KC13ZWJr
aXQtbWF4LWNvbnRlbnQsIDUwcHgpIGxhc3QiKTsKKworICAgIGVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1l
bnQpOworICAgIGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAiJ2ZpcnN0JyBtaW5t
YXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtpdC1tYXgtY29udGVudCkiOworICAgIGVsZW1l
bnQuc3R5bGUud2Via2l0R3JpZFJvd3MgPSAibWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13
ZWJraXQtbWluLWNvbnRlbnQpICdsYXN0JyI7CisgICAgdGVzdFZhbHVlKGVsZW1lbnQsICJmaXJz
dCBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtpdC1tYXgtY29udGVudCkiLCAibWlu
bWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpIGxhc3QiKTsKKwor
ICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIGVsZW1lbnQuc3R5bGUud2Via2l0R3Jp
ZENvbHVtbnMgPSAiJ2ZpcnN0JyAnbmF2JyBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdl
YmtpdC1tYXgtY29udGVudCkgJ2xhc3QnIjsKKyAgICBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRS
b3dzID0gIidmaXJzdCcgJ25hdicgbWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQt
bWluLWNvbnRlbnQpICdsYXN0JyI7CisgICAgdGVzdFZhbHVlKGVsZW1lbnQsICJuYXYgZmlyc3Qg
bWlubWF4KC13ZWJraXQtbWluLWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpIGxhc3QiLCAi
bmF2IGZpcnN0IG1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50
KSBsYXN0Iik7CisKKyAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICBlbGVtZW50LnN0
eWxlLndlYmtpdEdyaWRDb2x1bW5zID0gIidmaXJzdCcgJ25hdicgbWlubWF4KC13ZWJraXQtbWlu
LWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpICduYXYnIGF1dG8gJ2xhc3QnIjsKKyAgICBl
bGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIidmaXJzdCcgJ25hdjInIG1pbm1heCgtd2Vi
a2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSAnbmF2MicgbWlubWF4KDEwcHgs
IDE1cHgpICdsYXN0JyI7CisgICAgdGVzdFZhbHVlKGVsZW1lbnQsICJuYXYgZmlyc3QgbWlubWF4
KC13ZWJraXQtbWluLWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpIG5hdiBhdXRvIGxhc3Qi
LCAiZmlyc3QgbmF2MiBtaW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgLXdlYmtpdC1taW4tY29u
dGVudCkgbmF2MiBtaW5tYXgoMTBweCwgMTVweCkgbGFzdCIpOworCisgICAgZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZWxlbWVudCk7CisgICAgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1ucyA9ICInZm9v
JyAnYmFyJyBhdXRvICdmb28nIGF1dG8gJ2JhciciOworICAgIGVsZW1lbnQuc3R5bGUud2Via2l0
R3JpZFJvd3MgPSAiJ2ZvbycgJ2JhcicgYXV0byAnZm9vJyBhdXRvICdiYXInIjsKKyAgICB0ZXN0
VmFsdWUoZWxlbWVudCwgImZvbyBiYXIgYXV0byBmb28gYXV0byBiYXIiLCAiZm9vIGJhciBhdXRv
IGZvbyBhdXRvIGJhciIpOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGdldHRp
bmcgYW5kIHNldHRpbmcgaW52YWxpZCAtd2Via2l0LWdyaWQtY29sdW1ucyBhbmQgLXdlYmtpdC1n
cmlkLXJvd3MgdGhyb3VnaCBKUyIpOworICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAg
IGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAiJ2ZvbyciOworICAgIGVsZW1lbnQu
c3R5bGUud2Via2l0R3JpZFJvd3MgPSAiJ2JhciI7CisgICAgdGVzdFZhbHVlKGVsZW1lbnQsICJu
b25lIiwgIm5vbmUiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="227426"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>