<?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>115455</bug_id>
          
          <creation_ts>2013-04-30 16:10:56 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Programmatic layout tests fail when subpixel layout is disabled</short_desc>
          <delta_ts>2013-06-14 21:25:22 -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>
          <dependson>115511</dependson>
          <blocked>115292</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>883338</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-04-30 16:10:56 -0700</bug_when>
    <thetext>The following programmatic layout tests failed when subpixel layout was disabled for the OSX port (see http://trac.webkit.org/changeset/149224)

fast/exclusions/shape-inside/shape-inside-polygon-layout.html
fast/exclusions/shape-inside/shape-inside-polygon-padding-003.html
fast/exclusions/shape-outside-floats/shape-outside-floats-diamond-margin-polygon.html
fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-right.html
fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-left.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883444</commentid>
    <comment_count>1</comment_count>
      <attachid>200218</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-01 10:18:08 -0700</bug_when>
    <thetext>Created attachment 200218
Patch

Note: shape-outside-floats-ellipse-margin-right.html shouldn&apos;t have been included in the list of failing programatic tests.  It has been updated to sync it up the other changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883471</commentid>
    <comment_count>2</comment_count>
      <attachid>200218</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-01 11:24:23 -0700</bug_when>
    <thetext>Comment on attachment 200218
Patch

Last week on Friday, WebKit disabled subpixel layout for Mac, and 13 of the exclusions tests failed.  This turned out to be a bit of blessing in disguise, it exposed some implementation and test problems.  

This is the first patch of likely 2 or 3.  It restores 4 tests that were failing, and one that wasn&apos;t:

fast/exclusions/shape-inside/shape-inside-polygon-layout.html 
fast/exclusions/shape-inside/shape-inside-polygon-padding-003.html
fast/exclusions/shape-outside-floats/shape-outside-floats-diamond-margin-polygon.html
fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-left.html

fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-002.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883522</commentid>
    <comment_count>3</comment_count>
      <attachid>200218</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-05-01 13:58:35 -0700</bug_when>
    <thetext>Comment on attachment 200218
Patch

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

&gt; LayoutTests/fast/exclusions/shape-inside/shape-inside-polygon-layout.html:61
&gt; +  shouldBe(&quot;shapeInsideRect(&apos;a&apos;).top&quot;, String(lineATop), quiet);
&gt; +  shouldBe(&quot;shapeInsideRect(&apos;b&apos;).top&quot;, String(lineATop + 15), quiet);
&gt; +  shouldBe(&quot;shapeInsideRect(&apos;c&apos;).top&quot;, String(lineATop + 30), quiet);
&gt; +  shouldBe(&quot;shapeInsideRect(&apos;d&apos;).top&quot;, String(lineATop + 45), quiet);

Why are they passing quietly?

&gt; LayoutTests/fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-right.html:78
&gt; -SubPixelLayout.initSubPixelLayout();
&gt; +var quiet = true; // PASS output depends on SubPixelLayout.isEnabled()

I see. You want to avoid different output if subpixels are enabled rather then not enabled. Do I understand that correctly? Why don&apos;t you use shouldBeCloseTo instead? I think you want to see pass messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883526</commentid>
    <comment_count>4</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-01 14:07:27 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 200218 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=200218&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/exclusions/shape-inside/shape-inside-polygon-layout.html:61
&gt; &gt; +  shouldBe(&quot;shapeInsideRect(&apos;a&apos;).top&quot;, String(lineATop), quiet);
&gt; &gt; +  shouldBe(&quot;shapeInsideRect(&apos;b&apos;).top&quot;, String(lineATop + 15), quiet);
&gt; &gt; +  shouldBe(&quot;shapeInsideRect(&apos;c&apos;).top&quot;, String(lineATop + 30), quiet);
&gt; &gt; +  shouldBe(&quot;shapeInsideRect(&apos;d&apos;).top&quot;, String(lineATop + 45), quiet);
&gt; 
&gt; Why are they passing quietly?
&gt; 
&gt; &gt; LayoutTests/fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-right.html:78
&gt; &gt; -SubPixelLayout.initSubPixelLayout();
&gt; &gt; +var quiet = true; // PASS output depends on SubPixelLayout.isEnabled()
&gt; 
&gt; I see. You want to avoid different output if subpixels are enabled rather then not enabled. Do I understand that correctly? Why don&apos;t you use shouldBeCloseTo instead? I think you want to see pass messages.

Yes, that&apos;s why I used the quiet parameter. I didn&apos;t use shouldBeCloseTo(), since it&apos;s for checking if a value is within a tolerance and its PASSED message reports the expected value.  Specifying a non-zero tolerance would work in these cases, but that would be a weaker test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883531</commentid>
    <comment_count>5</comment_count>
      <attachid>200218</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-05-01 14:18:06 -0700</bug_when>
    <thetext>Comment on attachment 200218
Patch

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

&gt;&gt;&gt; LayoutTests/fast/exclusions/shape-inside/shape-inside-polygon-layout.html:61
&gt;&gt;&gt; +  shouldBe(&quot;shapeInsideRect(&apos;d&apos;).top&quot;, String(lineATop + 45), quiet);
&gt;&gt; 
&gt;&gt; Why are they passing quietly?
&gt; 
&gt; Yes, that&apos;s why I used the quiet parameter. I didn&apos;t use shouldBeCloseTo(), since it&apos;s for checking if a value is within a tolerance and its PASSED message reports the expected value.  Specifying a non-zero tolerance would work in these cases, but that would be a weaker test.

As long as we don&apos;t possibly get a wrong positive, it is fine with me. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883548</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-01 14:58:54 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 200218:

media/video-layer-crash.html bug 114744 (authors: annacc@chromium.org, eric.carlson@apple.com, jamesr@chromium.org, and vrk@chromium.org)
fast/frames/crash-remove-iframe-during-object-beforeload.html bug 115322 (author: zalan@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883549</commentid>
    <comment_count>7</comment_count>
      <attachid>200218</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-01 15:00:17 -0700</bug_when>
    <thetext>Comment on attachment 200218
Patch

Clearing flags on attachment: 200218

Committed r149457: &lt;http://trac.webkit.org/changeset/149457&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883550</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-01 15:00:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900741</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-14 21:25:22 -0700</bug_when>
    <thetext>*** Bug 116947 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200218</attachid>
            <date>2013-05-01 10:18:08 -0700</date>
            <delta_ts>2013-05-01 15:00:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>24973</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNDgwODViLi5lYWI5NGEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTMtMDUt
MDEgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBQcm9ncmFtbWF0aWMgbGF5b3V0IHRlc3RzIGZhaWwgd2hlbiBzdWJwaXhlbCBsYXlv
dXQgaXMgZGlzYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNTQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZpcnN0IHJvdW5kIG9mIGNoYW5nZXMgdG8gcmVzdG9yZSBwbGF0Zm9ybS9tYWMgZXhj
bHVzaW9uIHRlc3RzIHRoYXQgc3RhcnRlZCBmYWlsaW5nIHdoZW4KKyAgICAgICAgc3VicGl4ZWwg
bGF5b3V0IHdhcyB0dXJuZWQgb2ZmLiBUaGlzIHNldCBvZiBjaGFuZ2VzIGp1c3QgcmVzdG9yZXMg
Zm91ciB0ZXN0cy4gSXQgYWxzbyByZXZpc2VzCisgICAgICAgIHRoZSBzdWJwaXhlbC11dGlscyBj
b2RlIHRvIGJyaW5nIGl0IGludG8gbGluZSB3aXRoIHRoZSBtb3N0IHJlY2VudCBMYXlvdXRVbml0
IGV0IGFsIGNoYW5nZXMKKyAgICAgICAgYW5kIHRvIHNpbXBsaWZ5IGl0cyB1c2UgYSBsaXR0bGUu
CisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xl
LmpzOgorICAgICAgICAoc2ltdWxhdGVTaGFwZSk6IFJldmlzZWQgZGVwZW5kZW5jaWVzIG9uIHN1
YnBpeGVsLXV0aWxzLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxl
LXBvbHlnb24uanM6CisgICAgICAgIChwb2x5Z29uWEludGVyY2VwdHMpOiBEaXR0by4KKyAgICAg
ICAgKiBmYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3N1YnBpeGVsLXV0aWxzLmpzOgorICAgICAg
ICAoU3ViUGl4ZWxMYXlvdXQuKTogU3Vic3RhbnRpYWxseSByZXZpc2VkLCBzZWUgZGVzY3JpcHRp
b24uCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
cG9seWdvbi1sYXlvdXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tbGF5b3V0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1wYWRkaW5n
LTAwMy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1wYWRkaW5nLTAwMy5odG1sOgorICAgICAgICAqIGZhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWZp
dC0wMDItZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtZGlhbW9uZC1tYXJnaW4tcG9seWdvbi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxv
YXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWRpYW1vbmQtbWFyZ2luLXBvbHlnb24uaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lk
ZS1mbG9hdHMtZWxsaXBzZS1tYXJnaW4tbGVmdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWVs
bGlwc2UtbWFyZ2luLWxlZnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
b3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtZWxsaXBzZS1tYXJnaW4tcmlnaHQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZs
b2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1lbGxpcHNlLW1hcmdpbi1yaWdodC5odG1sOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTA1LTAxICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFNob3cgYSBi
bG9jayBjdXJzb3IgaW4gb3ZlcnR5cGUgbW9kZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3Jlc291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvcm91bmRlZC1yZWN0YW5nbGUuanMKaW5kZXggNGIw
MjJlNy4uZWRhZDY2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jl
c291cmNlcy9yb3VuZGVkLXJlY3RhbmdsZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvcmVzb3VyY2VzL3JvdW5kZWQtcmVjdGFuZ2xlLmpzCkBAIC05NSwxMiArOTUsMTIgQEAg
ZnVuY3Rpb24gc2ltdWxhdGVTaGFwZShlbGVtZW50SWQsIHN0eWxlc2hlZXQsIGRpbWVuc2lvbnMs
IGxpbmVIZWlnaHQpIHsKIAogICAgICAgICB2YXIgcGFkZGluZ0xlZnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgcGFkZGluZ0xlZnQuc2V0QXR0cmlidXRlKCJjbGFz
cyIsICJmbG9hdCBsZWZ0Iik7Ci0gICAgICAgIHBhZGRpbmdMZWZ0LnN0eWxlLndpZHRoID0gU3Vi
UGl4ZWxMYXlvdXQucm91bmRMaW5lTGVmdChkaW1lbnNpb25zLnNoYXBlWCArIGluc2V0KSArICJw
eCI7CisgICAgICAgIHBhZGRpbmdMZWZ0LnN0eWxlLndpZHRoID0gU3ViUGl4ZWxMYXlvdXQuc25h
cFRvTGF5b3V0VW5pdChkaW1lbnNpb25zLnNoYXBlWCArIGluc2V0KSArICJweCI7CiAgICAgICAg
IGVsZW1lbnQuYXBwZW5kQ2hpbGQocGFkZGluZ0xlZnQpOwogCiAgICAgICAgIHZhciBwYWRkaW5n
UmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgcGFkZGluZ1Jp
Z2h0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAiZmxvYXQgcmlnaHQiKTsKLSAgICAgICAgcGFkZGlu
Z1JpZ2h0LnN0eWxlLndpZHRoID0gU3ViUGl4ZWxMYXlvdXQucm91bmRMaW5lUmlnaHQoKGRpbWVu
c2lvbnMud2lkdGggLSBkaW1lbnNpb25zLnNoYXBlV2lkdGggLSBkaW1lbnNpb25zLnNoYXBlWCkg
KyBpbnNldCkgKyAicHgiOworICAgICAgICBwYWRkaW5nUmlnaHQuc3R5bGUud2lkdGggPSBTdWJQ
aXhlbExheW91dC5zbmFwVG9MYXlvdXRVbml0KChkaW1lbnNpb25zLndpZHRoIC0gZGltZW5zaW9u
cy5zaGFwZVdpZHRoIC0gZGltZW5zaW9ucy5zaGFwZVgpICsgaW5zZXQpICsgInB4IjsKICAgICAg
ICAgZWxlbWVudC5hcHBlbmRDaGlsZChwYWRkaW5nUmlnaHQpOwogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24u
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29u
LmpzCmluZGV4IDdmNWMyNzUuLmUxYTExYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcwpAQCAtODksNyArODks
NyBAQCBmdW5jdGlvbiBwb2x5Z29uWEludGVyY2VwdHMocG9seWdvbiwgeSkgewogICAgIGlmICgh
Zm91bmRYSW50ZXJjZXB0KQogICAgICAgICByZXR1cm4gW107CiAKLSAgICByZXR1cm4gW1N1YlBp
eGVsTGF5b3V0LnJvdW5kTGluZUxlZnQoaW50ZXJjZXB0c01pblgpLCBTdWJQaXhlbExheW91dC5y
b3VuZExpbmVSaWdodChpbnRlcmNlcHRzTWF4WCldOworICAgIHJldHVybiBbU3ViUGl4ZWxMYXlv
dXQuc25hcFRvTGF5b3V0VW5pdChpbnRlcmNlcHRzTWluWCksIFN1YlBpeGVsTGF5b3V0LnNuYXBU
b2xheW91dFVuaXQoaW50ZXJjZXB0c01heFgpXTsKIH0KIAogZnVuY3Rpb24gcG9seWdvbkxpbmVJ
bnRlcmNlcHRzKHBvbHlnb24sIHksIGxpbmVIZWlnaHQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc3VicGl4ZWwtdXRpbHMuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3N1YnBpeGVsLXV0aWxzLmpzCmluZGV4IDQ5
NjUxNzcuLjUwYmYwOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9y
ZXNvdXJjZXMvc3VicGl4ZWwtdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3Jlc291cmNlcy9zdWJwaXhlbC11dGlscy5qcwpAQCAtMSwyOCArMSwyNiBAQAogdmFyIFN1
YlBpeGVsTGF5b3V0ID0gKGZ1bmN0aW9uKCkgewotICAgIHZhciBfc3ViUGl4ZWxMYXlvdXQgPSBu
dWxsOwotICAgIGZ1bmN0aW9uIGluaXRTdWJQaXhlbExheW91dCgpIHsKLSAgICAgICAgdmFyIGVs
ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgZWxlbS5zdHlsZS5z
ZXRQcm9wZXJ0eSgnd2lkdGgnLCAnNC41cHgnKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlbGVtKTsKLSAgICAgICAgdmFyIGJvdW5kcyA9IGVsZW0uZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7Ci0gICAgICAgIF9zdWJQaXhlbExheW91dCA9ICAoYm91bmRzLndpZHRoICE9IE1h
dGguZmxvb3IoYm91bmRzLndpZHRoKSk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZWxlbSk7CisgICAgdmFyIGVuYWJsZWQgPSB1bmRlZmluZWQ7CisKKyAgICBmdW5jdGlvbiBp
c0VuYWJsZWQoKQorICAgIHsKKyAgICAgICAgaWYgKGVuYWJsZWQgPT09IHVuZGVmaW5lZCkgewor
ICAgICAgICAgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAg
ICAgICAgICAgIGVsZW0uc3R5bGUuc2V0UHJvcGVydHkoJ3dpZHRoJywgJzQuNXB4Jyk7CisgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW0pOworICAgICAgICAgICAgdmFy
IGJvdW5kcyA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgICAgICBlbmFi
bGVkID0gKGJvdW5kcy53aWR0aCAhPSBNYXRoLmZsb29yKGJvdW5kcy53aWR0aCkpOworICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZW5hYmxlZDsKICAgICB9Ci0gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcign
RE9NQ29udGVudExvYWRlZCcsIGluaXRTdWJQaXhlbExheW91dCk7CisKICAgICByZXR1cm4gewot
ICAgICAgICBpbml0U3ViUGl4ZWxMYXlvdXQ6IGluaXRTdWJQaXhlbExheW91dCwKLSAgICAgICAg
cm91bmRMaW5lTGVmdDogZnVuY3Rpb24oZikgewotICAgICAgICAgICAgaWYgKCFfc3ViUGl4ZWxM
YXlvdXQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoZik7Ci0gICAgICAgICAg
ICByZXR1cm4gTWF0aC5mbG9vcigoTWF0aC5mbG9vcihmICogNjQpICsgMzIpIC8gNjQpOyAvLyBz
ZWUgRnJhY3Rpb25MYXlvdXRVbml0Ojpyb3VuZCgpCi0gICAgICAgIH0sCi0gICAgICAgIHJvdW5k
TGluZVJpZ2h0OiBmdW5jdGlvbihmKSB7Ci0gICAgICAgICAgICBpZiAoIV9zdWJQaXhlbExheW91
dCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihmKTsKLSAgICAgICAgICAgIHJl
dHVybiBNYXRoLmZsb29yKE1hdGguZmxvb3IoZiAqIDY0KSAvIDY0KTsgLy8gc2VlIEZyYWN0aW9u
TGF5b3V0VW5pdDo6Zmxvb3IoKQorICAgICAgICBpc0VuYWJsZWQ6IGlzRW5hYmxlZCwKKyAgICAg
ICAgc25hcFRvTGF5b3V0VW5pdDogZnVuY3Rpb24oZikgeworICAgICAgICAgICAgcmV0dXJuIGlz
RW5hYmxlZCgpID8gTWF0aC5mbG9vcihmICogNjQpIC8gNjQgOiBNYXRoLmZsb29yKGYpOyAvLyBh
cyBpbiBMYXlvdXRVbml0KGYpLnRvRmxvYXQoKQogICAgICAgICB9LAotICAgICAgICBpc1N1YlBp
eGVsTGF5b3V0RW5hYmxlZDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICByZXR1cm4gX3N1YlBp
eGVsTGF5b3V0OworICAgICAgICBjZWlsU25hcFRvTGF5b3V0VW5pdDogZnVuY3Rpb24oZikgewor
ICAgICAgICAgICAgcmV0dXJuIGlzRW5hYmxlZCgpID8gTWF0aC5jZWlsKGYgKiA2NCkgLyA2NCA6
IE1hdGguY2VpbChmKTsgLy8gc2VlIGNlaWxlZExheW91dFVuaXQoKSwgTGF5b3V0VW5pdC5oCiAg
ICAgICAgIH0KICAgICB9CiB9KCkpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXBvbHlnb24tbGF5b3V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tbGF5b3V0LWV4cGVjdGVkLnR4
dAppbmRleCBjNmU4YTQ4Li44MmRlMGM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLWxheW91dC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtcG9seWdvbi1sYXlvdXQtZXhwZWN0ZWQudHh0CkBAIC0yLDggKzIsNCBAQCBYCiBY
CiBYCiBYCi1QQVNTIHNoYXBlSW5zaWRlUmVjdCgnYScpLnRvcCBpcyA3Ci1QQVNTIHNoYXBlSW5z
aWRlUmVjdCgnYicpLnRvcCBpcyAyMgotUEFTUyBzaGFwZUluc2lkZVJlY3QoJ2MnKS50b3AgaXMg
MzcKLVBBU1Mgc2hhcGVJbnNpZGVSZWN0KCdkJykudG9wIGlzIDUyCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHln
b24tbGF5b3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1wb2x5Z29uLWxheW91dC5odG1sCmluZGV4IDk2N2EyMDYuLjk0NWViNzYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXBvbHlnb24tbGF5b3V0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1sYXlvdXQuaHRtbApAQCAt
Miw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
c3VicGl4ZWwtdXRpbHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNp
b25zRW5hYmxlZCh0cnVlKTsKQEAgLTQ3LDExICs0OCwxNiBAQAogICAgICAgcmV0dXJuIHtsZWZ0
OiByLmxlZnQgLSBzLmxlZnQsIHRvcDogci50b3AgLSBzLnRvcCwgd2lkdGg6IHIud2lkdGgsIGhl
aWdodDogci5oZWlnaHR9OwogICB9CiAKLSAgLyogVmVyaWZ5IHRoYXQgYWxsIGZvdXIgb25lLWNo
YXJhY3RlciBsaW5lcyBhcmUgdmVydGljYWxseSBhZGphY2VudCBhbmQgMTUgcGl4ZWxzIGhpZ2gu
ICovCi0gIHNob3VsZEJlKCJzaGFwZUluc2lkZVJlY3QoJ2EnKS50b3AiLCAiNyIpOwotICBzaG91
bGRCZSgic2hhcGVJbnNpZGVSZWN0KCdiJykudG9wIiwgIjIyIik7Ci0gIHNob3VsZEJlKCJzaGFw
ZUluc2lkZVJlY3QoJ2MnKS50b3AiLCAiMzciKTsKLSAgc2hvdWxkQmUoInNoYXBlSW5zaWRlUmVj
dCgnZCcpLnRvcCIsICI1MiIpOworICAvLyBUaGUgdG9wIG9mIHRoZSBwb2x5Z29uIGlzIGEgaG9y
em9udGFsIGVkZ2UgYXQgeT0xLjQyJSwgYW5kIGl0cyBwYXJlbnQncyBoZWlnaHQgaXMgNTAwcHgu
ICBUaGUgdG9wIG9mCisgIC8vIHRoZSBmaXJzdCBsaW5lLCBzcGFuICJhIiwgd2lsbCBhbGlnbiB3
aXRoIHRoZSB0b3Agb2YgdGhlIHBvbHlnb24uIFRoZSBFeGNsdXNpb25TaGFwZTo6Zmlyc3RJbmNs
dWRlZEludGVydmFsTG9naWNhbFRvcCgpCisgIC8vIG1ldGhvZHMgdXNlIGNlaWxlZExheW91dFVu
aXQoKSB0byBlbnN1cmUgdGhhdCB0aGVpciByZXR1cm4gdmFsdWUgaXMgd2l0aGluIHRoZSBzaGFw
ZS4KKyAgdmFyIGxpbmVBVG9wID0gU3ViUGl4ZWxMYXlvdXQuY2VpbFNuYXBUb0xheW91dFVuaXQo
LjAxNDIgKiA1MDApOworCisgIC8vIFZlcmlmeSB0aGF0IGFsbCBmb3VyIG9uZS1jaGFyYWN0ZXIg
bGluZXMgYXJlIHZlcnRpY2FsbHkgYWRqYWNlbnQgYW5kIDE1IHBpeGVscyBoaWdoLgorICB2YXIg
cXVpZXQgPSB0cnVlOyAvLyBQQVNTIG91dHB1dCBkZXBlbmRzIG9uIFN1YlBpeGVsTGF5b3V0Lmlz
RW5hYmxlZCgpCisgIHNob3VsZEJlKCJzaGFwZUluc2lkZVJlY3QoJ2EnKS50b3AiLCBTdHJpbmco
bGluZUFUb3ApLCBxdWlldCk7CisgIHNob3VsZEJlKCJzaGFwZUluc2lkZVJlY3QoJ2InKS50b3Ai
LCBTdHJpbmcobGluZUFUb3AgKyAxNSksIHF1aWV0KTsKKyAgc2hvdWxkQmUoInNoYXBlSW5zaWRl
UmVjdCgnYycpLnRvcCIsIFN0cmluZyhsaW5lQVRvcCArIDMwKSwgcXVpZXQpOworICBzaG91bGRC
ZSgic2hhcGVJbnNpZGVSZWN0KCdkJykudG9wIiwgU3RyaW5nKGxpbmVBVG9wICsgNDUpLCBxdWll
dCk7CiA8L3NjcmlwdD4KIDwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcG9seWdvbi1wYWRkaW5nLTAwMy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1wb2x5Z29uLXBhZGRpbmctMDAzLWV4cGVjdGVkLnR4dAppbmRleCA2MzQ5NmFl
Li4wYzhkM2YwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXBhZGRpbmctMDAzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1w
b2x5Z29uLXBhZGRpbmctMDAzLWV4cGVjdGVkLnR4dApAQCAtNCwxMiArNCwxMCBAQCBYWAogCiBY
WFgKIFBBU1Mgc2hhcGVJbnNpZGVSZWN0KCdhJykudG9wIGlzIDUwCi1QQVNTIHNoYXBlSW5zaWRl
UmVjdCgnYScpLmxlZnQgaXMgd2l0aGluIDEgb2YgMTkwLjIxNQogUEFTUyBzaGFwZUluc2lkZVJl
Y3QoJ2EnKS53aWR0aCBpcyAxNTAKIFBBU1Mgc2hhcGVJbnNpZGVSZWN0KCdiJykudG9wIGlzIDE1
MAogUEFTUyBzaGFwZUluc2lkZVJlY3QoJ2InKS5sZWZ0IGlzIHdpdGhpbiAxIG9mIDI1MAogUEFT
UyBzaGFwZUluc2lkZVJlY3QoJ2InKS53aWR0aCBpcyAxMDAKIFBBU1Mgc2hhcGVJbnNpZGVSZWN0
KCdjJykudG9wIGlzIDI1MAotUEFTUyBzaGFwZUluc2lkZVJlY3QoJ2MnKS5sZWZ0IGlzIHdpdGhp
biAxIG9mIDE5MC4yMTUKIFBBU1Mgc2hhcGVJbnNpZGVSZWN0KCdjJykud2lkdGggaXMgMTUwCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXBvbHlnb24tcGFkZGluZy0wMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXBvbHlnb24tcGFkZGluZy0wMDMuaHRt
bAppbmRleCA0ZTEzYmVmLi5jN2ExNmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXBhZGRpbmctMDAzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcG9seWdvbi1wYWRkaW5nLTAwMy5odG1sCkBAIC0yLDYgKzIsNyBAQAogPGh0bWw+CiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zdWJwaXhlbC11dGlscy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOwpAQCAt
NzAsOCArNzEsMTAgQEAKIAogICAqLwogCisgIHZhciBxdWlldCA9IHRydWU7IC8vIFBBU1Mgb3V0
cHV0IGRlcGVuZHMgb24gU3ViUGl4ZWxMYXlvdXQuaXNFbmFibGVkKCkKKwogICBzaG91bGRCZSgi
c2hhcGVJbnNpZGVSZWN0KCdhJykudG9wIiwgIjUwIik7Ci0gIHNob3VsZEJlQ2xvc2VUbygic2hh
cGVJbnNpZGVSZWN0KCdhJykubGVmdCIsIDE5MC4yMTUsIDEpOworICBzaG91bGRCZUNsb3NlVG8o
InNoYXBlSW5zaWRlUmVjdCgnYScpLmxlZnQiLCBTdWJQaXhlbExheW91dC5zbmFwVG9MYXlvdXRV
bml0KDE5MC4yMTUpLCAxLCBxdWlldCk7CiAgIHNob3VsZEJlKCJzaGFwZUluc2lkZVJlY3QoJ2En
KS53aWR0aCIsICIxNTAiKTsKIAogICBzaG91bGRCZSgic2hhcGVJbnNpZGVSZWN0KCdiJykudG9w
IiwgIjE1MCIpOwpAQCAtNzksNyArODIsNyBAQAogICBzaG91bGRCZSgic2hhcGVJbnNpZGVSZWN0
KCdiJykud2lkdGgiLCAiMTAwIik7CiAKICAgc2hvdWxkQmUoInNoYXBlSW5zaWRlUmVjdCgnYycp
LnRvcCIsICIyNTAiKTsgCi0gIHNob3VsZEJlQ2xvc2VUbygic2hhcGVJbnNpZGVSZWN0KCdjJyku
bGVmdCIsIDE5MC4yMTUsIDEpOworICBzaG91bGRCZUNsb3NlVG8oInNoYXBlSW5zaWRlUmVjdCgn
YycpLmxlZnQiLCBTdWJQaXhlbExheW91dC5zbmFwVG9MYXlvdXRVbml0KDE5MC4yMTUpLCAxLCBx
dWlldCk7CiAgIHNob3VsZEJlKCJzaGFwZUluc2lkZVJlY3QoJ2MnKS53aWR0aCIsICIxNTAiKTsg
CiA8L3NjcmlwdD4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWZpdC0wMDIt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWZpdC0wMDItZXhwZWN0ZWQuaHRtbAppbmRl
eCA5MTVmMGMwLi4wNDc5ZDFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1maXQtMDAyLWV4
cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZml0LTAwMi1leHBlY3RlZC5odG1sCkBA
IC00Nyw3ICs0Nyw3IEBAIGRpZmZlcmVuY2UgYmV0d2VlbiBjaXJjbGUncyBkaWFtZXRlciBhbmQg
dGhlIHNpemUgb2YgdGhlIHNxdWFyZTogKDIwMHB4IC0gc3FydCgyCiA8Ym9keSBvbmxvYWQ9Imlu
aXQoKSI+CiA8c2NyaXB0PgogICAgIGZ1bmN0aW9uIGluaXQoKSB7Ci0gICAgICAgIGlmICghU3Vi
UGl4ZWxMYXlvdXQuaXNTdWJQaXhlbExheW91dEVuYWJsZWQoKSkKKyAgICAgICAgaWYgKCFTdWJQ
aXhlbExheW91dC5pc0VuYWJsZWQoKSkKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzaGFwZS1pbnNpZGUiKS5zdHlsZS50b3AgPSAiMzBweCI7CiAgICAgfQogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1m
bG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtZGlhbW9uZC1tYXJnaW4tcG9seWdvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMv
c2hhcGUtb3V0c2lkZS1mbG9hdHMtZGlhbW9uZC1tYXJnaW4tcG9seWdvbi1leHBlY3RlZC50eHQK
aW5kZXggYjg2ZDhmOC4uZTM1YTQwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWRpYW1vbmQt
bWFyZ2luLXBvbHlnb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1kaWFtb25kLW1h
cmdpbi1wb2x5Z29uLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDEwIEBACitYCitYCitYCisKK1gK
K1gKK1gKIFBBU1MgZWxlbWVudFJlY3QoJ2wxJykudG9wIGlzIDAKIFBBU1MgZWxlbWVudFJlY3Qo
J2wxJykubGVmdCBpcyB3aXRoaW4gMSBvZiA5OAogUEFTUyBlbGVtZW50UmVjdCgnbDInKS50b3Ag
aXMgMjAKQEAgLTEwLDEwICsxNyw0IEBAIFBBU1MgZWxlbWVudFJlY3QoJ2w1JykudG9wIGlzIDEw
MAogUEFTUyBlbGVtZW50UmVjdCgnbDUnKS5sZWZ0IGlzIHdpdGhpbiAxIG9mIDExOAogUEFTUyBl
bGVtZW50UmVjdCgnbDYnKS50b3AgaXMgMTIwCiBQQVNTIGVsZW1lbnRSZWN0KCdsNicpLmxlZnQg
aXMgd2l0aGluIDEgb2YgOTgKLVgKLVgKLVgKIAotWAotWAotWApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUt
ZmxvYXRzLWRpYW1vbmQtbWFyZ2luLXBvbHlnb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1kaWFtb25k
LW1hcmdpbi1wb2x5Z29uLmh0bWwKaW5kZXggN2E3ZmE5Zi4uY2JjMDAwMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91
dHNpZGUtZmxvYXRzLWRpYW1vbmQtbWFyZ2luLXBvbHlnb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9h
dHMtZGlhbW9uZC1tYXJnaW4tcG9seWdvbi5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAjY29udGFp
bmVyIHsKICAgICBmb250OiAyMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKICAgICB3aWR0aDogMjAw
cHg7Ci0gICAgaGVpZ2h0OiAzMDBweDsKKyAgICBoZWlnaHQ6IDE1MHB4OwogICB9CiAKICNmbG9h
dC1sZWZ0IHsKQEAgLTI1LDE0ICsyNSwxNCBAQAogCiAjc3ZnLXNoYXBlIHsKICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7Ci0gICAgZGlzcGxheTpibG9jazsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAg
ICB0b3A6IDBweDsKKyAgICBsZWZ0OiAwcHg7CiAgICAgd2lkdGg6IDEwMHB4OwogICAgIGhlaWdo
dDogMTAwcHg7CiB9CiA8L3N0eWxlPgotCiA8Ym9keT4KLTxwPjwvcD4KIDxkaXYgaWQ9ImNvbnRh
aW5lciI+CiAgICAgPGRpdiBpZD0iZmxvYXQtbGVmdCI+CiAgICAgICAgIDxzdmcgaWQ9InN2Zy1z
aGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvIj4KQEAgLTQxLDYgKzQxLDcgQEAK
ICAgICA8L2Rpdj4KICAgICA8c3BhbiBpZD0ibDEiPlg8L3NwYW4+PC9icj48c3BhbiBpZD0ibDIi
Plg8L3NwYW4+PGJyLz48c3BhbiBpZD0ibDMiPlg8L3NwYW4+PGJyLz48YnIvPjxzcGFuIGlkPSJs
NCI+WDwvc3Bhbj48YnIvPjxzcGFuIGlkPSJsNSI+WDwvc3Bhbj48YnIvPjxzcGFuIGlkPSJsNiI+
WDwvc3Bhbj4KIDwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8L2JvZHk+CiA8c2Ny
aXB0PgogZnVuY3Rpb24gZWxlbWVudFJlY3QoZWxlbWVudElkKSAKQEAgLTU4LDkgKzU5LDExIEBA
IGZ1bmN0aW9uIGVsZW1lbnRSZWN0KGVsZW1lbnRJZCkKIAogZnVuY3Rpb24gbWFyZ2luTGVmdFhJ
bnRlcmNlcHQobGluZU51bWJlcikKIHsKLSAgICByZXR1cm4gU3ViUGl4ZWxMYXlvdXQucm91bmRM
aW5lTGVmdChsaW5lTnVtYmVyICogMjAgKyAyMCAqIE1hdGguc3FydCgyKSArIDUwKTsKKyAgICBy
ZXR1cm4gU3ViUGl4ZWxMYXlvdXQuc25hcFRvTGF5b3V0VW5pdChsaW5lTnVtYmVyICogMjAgKyAy
MCAqIE1hdGguc3FydCgyKSArIDUwKTsKIH0KIAordmFyIHF1aWV0ID0gdHJ1ZTsgLy8gUEFTUyBv
dXRwdXQgZGVwZW5kcyBvbiBTdWJQaXhlbExheW91dC5pc0VuYWJsZWQoKQorCiBzaG91bGRCZSgi
ZWxlbWVudFJlY3QoJ2wxJykudG9wIiwgIjAiKTsKIHNob3VsZEJlQ2xvc2VUbygiZWxlbWVudFJl
Y3QoJ2wxJykubGVmdCIsIG1hcmdpbkxlZnRYSW50ZXJjZXB0KDEpLCAxKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBl
LW91dHNpZGUtZmxvYXRzLWVsbGlwc2UtbWFyZ2luLWxlZnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUt
ZmxvYXRzLWVsbGlwc2UtbWFyZ2luLWxlZnQtZXhwZWN0ZWQudHh0CmluZGV4IDEyOThhZjcuLjVj
NzU4YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRz
aWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1lbGxpcHNlLW1hcmdpbi1sZWZ0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1m
bG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtZWxsaXBzZS1tYXJnaW4tbGVmdC1leHBlY3RlZC50
eHQKQEAgLTEsMTEgKzEsOSBAQAotUEFTUyBlbGVtZW50UmVjdCgnczEnKS50b3AgaXMgMAotUEFT
UyBlbGVtZW50UmVjdCgnczEnKS5sZWZ0IGlzIDM0NwotUEFTUyBlbGVtZW50UmVjdCgnczInKS50
b3AgaXMgMjAKLVBBU1MgZWxlbWVudFJlY3QoJ3MyJykubGVmdCBpcyAzOTAKLVBBU1MgZWxlbWVu
dFJlY3QoJ3MzJykudG9wIGlzIDQwCi1QQVNTIGVsZW1lbnRSZWN0KCdzMycpLmxlZnQgaXMgNDE3
CiBUaGUgbGVmdCBlZGdlcyBvZiB0aGUgdGhyZWUgYmxhY2sgc3F1YXJlcyBzaG91bGQgZm9sbG93
IHRoZSBvdXRlciBlbGxpcHNlIGJvdW5kYXJ5IGFuZCBlYWNoIHNxdWFyZSBzaG91bGQgYXBwZWFy
IG9uIGEgc3Vic2VxdWVudCBsaW5lLgogCiBYCiBYCiBYCitQQVNTIGVsZW1lbnRSZWN0KCdzMScp
LnRvcCBpcyAwCitQQVNTIGVsZW1lbnRSZWN0KCdzMicpLnRvcCBpcyAyMAorUEFTUyBlbGVtZW50
UmVjdCgnczMnKS50b3AgaXMgNDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWVsbGlwc2Ut
bWFyZ2luLWxlZnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRz
aWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1lbGxpcHNlLW1hcmdpbi1sZWZ0Lmh0bWwK
aW5kZXggN2ZjYjdhNi4uYzcyZTA0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWVsbGlwc2Ut
bWFyZ2luLWxlZnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
b3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtZWxsaXBzZS1tYXJnaW4tbGVmdC5o
dG1sCkBAIC01Miw2ICs1Miw3IEBACiAgICAgICAgIDxzcGFuIGlkPSJzMSI+WDwvc3Bhbj48L2Jy
PjxzcGFuIGlkPSJzMiI+WDwvc3Bhbj48YnIvPjxzcGFuIGlkPSJzMyI+WDwvc3Bhbj4KICAgICA8
L2Rpdj4KIDwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8L2JvZHk+CiA8c2NyaXB0
PgogZnVuY3Rpb24gZWxlbWVudFJlY3QoZWxlbWVudElkKSAKQEAgLTY2LDIyICs2NywyMiBAQCBm
dW5jdGlvbiBlbGVtZW50UmVjdChlbGVtZW50SWQpCiAKIGZ1bmN0aW9uIG1hcmdpbkVsbGlwc2VM
ZWZ0WEludGVyY2VwdCh5LCBjeCwgcngsIHJ5KQogewotICAgIHJldHVybiBTdHJpbmcoIFN1YlBp
eGVsTGF5b3V0LnJvdW5kTGluZUxlZnQoY3ggKyByeCAqIE1hdGguc3FydCgxIC0gTWF0aC5wb3co
KHJ5IC0geSkgLyByeSwgMikpKSApOworICAgIHJldHVybiBTdHJpbmcoIFN1YlBpeGVsTGF5b3V0
LnNuYXBUb0xheW91dFVuaXQoY3ggKyByeCAqIE1hdGguc3FydCgxIC0gTWF0aC5wb3coKHJ5IC0g
eSkgLyByeSwgMikpKSApOwogfQogCiAvLyBJbiB0aGUgIi5sZWZ0IiB0ZXN0cyBiZWxvdywgaXQn
cyB0aGUgbG93ZXIgZWRnZSBvZiB0aGUgMjBweCBBaGVtIGdseXBoIHRoYXQgdGhhdCBkZWZpbmVz
IHRoZSBlbGVtZW50IHJlY3QncyBsZWZ0IGVkZ2UuIAogLy8gVGhhdCdzIHdoeSB0aGUgWSBjb29y
ZGluYXRlIGluIGVhY2ggb2YgdGhvc2UgdGVzdHMgaXMgMjAgZ3JlYXRlciB0aGFuIHRoZSAiLnRv
cCIgdGVzdC4KIAotU3ViUGl4ZWxMYXlvdXQuaW5pdFN1YlBpeGVsTGF5b3V0KCk7Cit2YXIgcXVp
ZXQgPSB0cnVlOyAvLyBQQVNTIG91dHB1dCBkZXBlbmRzIG9uIFN1YlBpeGVsTGF5b3V0LmlzRW5h
YmxlZCgpCiAKIHNob3VsZEJlKCJlbGVtZW50UmVjdCgnczEnKS50b3AiLCAiMCIpOwotc2hvdWxk
QmUoImVsZW1lbnRSZWN0KCdzMScpLmxlZnQiLCBtYXJnaW5FbGxpcHNlTGVmdFhJbnRlcmNlcHQo
MjAsIDIyNSwgMjI1LCAxMjUpKTsKK3Nob3VsZEJlKCJlbGVtZW50UmVjdCgnczEnKS5sZWZ0Iiwg
bWFyZ2luRWxsaXBzZUxlZnRYSW50ZXJjZXB0KDIwLCAyMjUsIDIyNSwgMTI1KSwgcXVpZXQpOwog
CiBzaG91bGRCZSgiZWxlbWVudFJlY3QoJ3MyJykudG9wIiwgIjIwIik7Ci1zaG91bGRCZSgiZWxl
bWVudFJlY3QoJ3MyJykubGVmdCIsIG1hcmdpbkVsbGlwc2VMZWZ0WEludGVyY2VwdCg0MCwgMjI1
LCAyMjUsIDEyNSkpOworc2hvdWxkQmUoImVsZW1lbnRSZWN0KCdzMicpLmxlZnQiLCBtYXJnaW5F
bGxpcHNlTGVmdFhJbnRlcmNlcHQoNDAsIDIyNSwgMjI1LCAxMjUpLCBxdWlldCk7CiAKIHNob3Vs
ZEJlKCJlbGVtZW50UmVjdCgnczMnKS50b3AiLCAiNDAiKTsKLXNob3VsZEJlKCJlbGVtZW50UmVj
dCgnczMnKS5sZWZ0IiwgbWFyZ2luRWxsaXBzZUxlZnRYSW50ZXJjZXB0KDYwLCAyMjUsIDIyNSwg
MTI1KSk7CitzaG91bGRCZSgiZWxlbWVudFJlY3QoJ3MzJykubGVmdCIsIG1hcmdpbkVsbGlwc2VM
ZWZ0WEludGVyY2VwdCg2MCwgMjI1LCAyMjUsIDEyNSksIHF1aWV0KTsKIAogPC9zY3JpcHQ+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtZWxsaXBzZS1tYXJnaW4tcmlnaHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxv
YXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLWVsbGlwc2UtbWFyZ2luLXJpZ2h0LWV4cGVjdGVkLnR4
dAppbmRleCA0ZDZhZmRkLi4yZTg2ODkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtZWxsaXBz
ZS1tYXJnaW4tcmlnaHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1lbGxpcHNlLW1h
cmdpbi1yaWdodC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsOSBAQAotUEFTUyBlbGVtZW50UmVj
dCgnczEnKS50b3AgaXMgMAotUEFTUyBlbGVtZW50UmVjdCgnczEnKS5yaWdodCBpcyAxNTIKLVBB
U1MgZWxlbWVudFJlY3QoJ3MyJykudG9wIGlzIDIwCi1QQVNTIGVsZW1lbnRSZWN0KCdzMicpLnJp
Z2h0IGlzIDExMAotUEFTUyBlbGVtZW50UmVjdCgnczMnKS50b3AgaXMgNDAKLVBBU1MgZWxlbWVu
dFJlY3QoJ3MzJykucmlnaHQgaXMgODIKIFRoZSByaWdodCBlZGdlcyBvZiB0aGUgdGhyZWUgYmxh
Y2sgc3F1YXJlcyBzaG91bGQgZm9sbG93IHRoZSBvdXRlciBlbGxpcHNlIGJvdW5kYXJ5IGFuZCBl
YWNoIHNxdWFyZSBzaG91bGQgYXBwZWFyIG9uIGEgc3Vic2VxdWVudCBsaW5lLgogCiBYCiBYCiBY
CitQQVNTIGVsZW1lbnRSZWN0KCdzMScpLnRvcCBpcyAwCitQQVNTIGVsZW1lbnRSZWN0KCdzMicp
LnRvcCBpcyAyMAorUEFTUyBlbGVtZW50UmVjdCgnczMnKS50b3AgaXMgNDAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBl
LW91dHNpZGUtZmxvYXRzLWVsbGlwc2UtbWFyZ2luLXJpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMt
ZWxsaXBzZS1tYXJnaW4tcmlnaHQuaHRtbAppbmRleCBiYjU2ZTBhLi41NGNmNWFhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hh
cGUtb3V0c2lkZS1mbG9hdHMtZWxsaXBzZS1tYXJnaW4tcmlnaHQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1m
bG9hdHMtZWxsaXBzZS1tYXJnaW4tcmlnaHQuaHRtbApAQCAtNTMsNiArNTMsNyBAQAogICAgICAg
ICA8c3BhbiBpZD0iczEiPlg8L3NwYW4+PC9icj48c3BhbiBpZD0iczIiPlg8L3NwYW4+PGJyLz48
c3BhbiBpZD0iczMiPlg8L3NwYW4+CiAgICAgPC9kaXY+CiA8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgogPC9ib2R5PgogPHNjcmlwdD4KIGZ1bmN0aW9uIGVsZW1lbnRSZWN0KGVsZW1l
bnRJZCkgCkBAIC02OCwyMiArNjksMjIgQEAgZnVuY3Rpb24gZWxlbWVudFJlY3QoZWxlbWVudElk
KQogZnVuY3Rpb24gbWFyZ2luRWxsaXBzZVJpZ2h0WEludGVyY2VwdCh5LCBjeCwgcngsIHJ5KQog
ewogICAgIHZhciBjb250YWluZXJXaWR0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250
YWluZXIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKLSAgICByZXR1cm4gU3RyaW5n
KCBTdWJQaXhlbExheW91dC5yb3VuZExpbmVSaWdodChjb250YWluZXJXaWR0aCAtIChjeCArIHJ4
ICogTWF0aC5zcXJ0KDEgLSBNYXRoLnBvdygocnkgLSB5KSAvIHJ5LCAyKSkpKSApOworICAgIHJl
dHVybiBTdHJpbmcoIFN1YlBpeGVsTGF5b3V0LnNuYXBUb0xheW91dFVuaXQoY29udGFpbmVyV2lk
dGggLSAoY3ggKyByeCAqIE1hdGguc3FydCgxIC0gTWF0aC5wb3coKHJ5IC0geSkgLyByeSwgMikp
KSkgKTsKIH0KIAogLy8gSW4gdGhlICIucmlnaHQiIHRlc3RzIGJlbG93LCBpdCdzIHRoZSBsb3dl
ciBlZGdlIG9mIHRoZSAyMHB4IEFoZW0gZ2x5cGggdGhhdCB0aGF0IGRlZmluZXMgdGhlIGVsZW1l
bnQgcmVjdCdzIGxlZnQgZWRnZS4gCiAvLyBUaGF0J3Mgd2h5IHRoZSBZIGNvb3JkaW5hdGUgaW4g
ZWFjaCBvZiB0aG9zZSB0ZXN0cyBpcyAyMCBncmVhdGVyIHRoYW4gdGhlICIudG9wIiB0ZXN0Lgog
Ci1TdWJQaXhlbExheW91dC5pbml0U3ViUGl4ZWxMYXlvdXQoKTsKK3ZhciBxdWlldCA9IHRydWU7
IC8vIFBBU1Mgb3V0cHV0IGRlcGVuZHMgb24gU3ViUGl4ZWxMYXlvdXQuaXNFbmFibGVkKCkKIAog
c2hvdWxkQmUoImVsZW1lbnRSZWN0KCdzMScpLnRvcCIsICIwIik7Ci1zaG91bGRCZSgiZWxlbWVu
dFJlY3QoJ3MxJykucmlnaHQiLCBtYXJnaW5FbGxpcHNlUmlnaHRYSW50ZXJjZXB0KDIwLCAyMjUs
IDIyNSwgMTI1KSk7CitzaG91bGRCZSgiZWxlbWVudFJlY3QoJ3MxJykucmlnaHQiLCBtYXJnaW5F
bGxpcHNlUmlnaHRYSW50ZXJjZXB0KDIwLCAyMjUsIDIyNSwgMTI1KSwgcXVpZXQpOwogCiBzaG91
bGRCZSgiZWxlbWVudFJlY3QoJ3MyJykudG9wIiwgIjIwIik7Ci1zaG91bGRCZSgiZWxlbWVudFJl
Y3QoJ3MyJykucmlnaHQiLCBtYXJnaW5FbGxpcHNlUmlnaHRYSW50ZXJjZXB0KDQwLCAyMjUsIDIy
NSwgMTI1KSk7CitzaG91bGRCZSgiZWxlbWVudFJlY3QoJ3MyJykucmlnaHQiLCBtYXJnaW5FbGxp
cHNlUmlnaHRYSW50ZXJjZXB0KDQwLCAyMjUsIDIyNSwgMTI1KSwgcXVpZXQpOwogCiBzaG91bGRC
ZSgiZWxlbWVudFJlY3QoJ3MzJykudG9wIiwgIjQwIik7Ci1zaG91bGRCZSgiZWxlbWVudFJlY3Qo
J3MzJykucmlnaHQiLCBtYXJnaW5FbGxpcHNlUmlnaHRYSW50ZXJjZXB0KDYwLCAyMjUsIDIyNSwg
MTI1KSk7CitzaG91bGRCZSgiZWxlbWVudFJlY3QoJ3MzJykucmlnaHQiLCBtYXJnaW5FbGxpcHNl
UmlnaHRYSW50ZXJjZXB0KDYwLCAyMjUsIDIyNSwgMTI1KSwgcXVpZXQpOwogCiA8L3NjcmlwdD4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
YTFhMGI5MC4uMDBlMTQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTE1MTcsMTIgKzE1MTcsNyBAQCB3ZWJraXQub3JnL2IvMTE1MjkyIGZhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNpcmNsZS1wYWRkaW5nLmh0bQogd2Vi
a2l0Lm9yZy9iLzExNTI5MiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1jaXJjbGUuaHRtbAogd2Via2l0Lm9yZy9iLzExNTI5MiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1lbGxpcHNlLXBhZGRpbmcuaHRtbAogd2Via2l0Lm9yZy9iLzEx
NTI5MiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1lbGxpcHNlLmh0
bWwKLXdlYmtpdC5vcmcvYi8xMTUyOTIgZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtcG9seWdvbi1sYXlvdXQuaHRtbAogd2Via2l0Lm9yZy9iLzExNTI5MiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1wb2x5Z29uLXBhZGRpbmctMDAyLmh0
bWwKLXdlYmtpdC5vcmcvYi8xMTUyOTIgZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtcG9seWdvbi1wYWRkaW5nLTAwMy5odG1sCi13ZWJraXQub3JnL2IvMTE1MjkyIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xl
LWZpdC0wMDIuaHRtbAotd2Via2l0Lm9yZy9iLzExNTI5MiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
b3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtZGlhbW9uZC1tYXJnaW4tcG9seWdv
bi5odG1sCi13ZWJraXQub3JnL2IvMTE1MjkyIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRl
LWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1lbGxpcHNlLW1hcmdpbi1sZWZ0Lmh0bWwKIHdl
YmtpdC5vcmcvYi8xMTUyOTIgZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3No
YXBlLW91dHNpZGUtZmxvYXRzLW5vbi16ZXJvLXkuaHRtbAogd2Via2l0Lm9yZy9iLzExNTI5MiBm
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMt
c2ltcGxlLWNpcmNsZS5odG1sCiB3ZWJraXQub3JnL2IvMTE1MjkyIGZhc3QvZXhjbHVzaW9ucy9z
aGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1zaW1wbGUtZWxsaXBzZS5o
dG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggOGU4YThkNS4uZmU3OGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDEzLTA1LTAxICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorICAg
ICAgICBbQ1NTIEV4Y2x1c2lvbnNdIFByb2dyYW1tYXRpYyBsYXlvdXQgdGVzdHMgZmFpbCB3aGVu
IHN1YnBpeGVsIGxheW91dCBpcyBkaXNhYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1NDU1CisKKyAgICAgICAgRmlyc3Qgcm91bmQgb2YgY2hh
bmdlcyB0byByZXN0b3JlIHBsYXRmb3JtL21hYyBleGNsdXNpb24gdGVzdHMgdGhhdCBzdGFydGVk
IGZhaWxpbmcgd2hlbgorICAgICAgICBzdWJwaXhlbCBsYXlvdXQgd2FzIHR1cm5lZCBvZmYuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvRXhjbHVzaW9uUG9seWdvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRBcmMpOiBF
bnN1cmUgdGhhdCB0aGUgM3JkIG9mIDUgYWRkZWQgdmVydGljZXMgaXMgaW4gdGhlIGNlbnRlciBv
ZiB0aGUgYXJjLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uUG9seWdvbjo6Zmlyc3RJbmNs
dWRlZEludGVydmFsTG9naWNhbFRvcCk6IFVzZSBjZWlsZWRMYXlvdXRVbml0KCkgZm9yIGRvd253
YXJkcy1zbmFwcGluZyBmaXJzdCBmaXQgbG9jYXRpb24uCisgICAgICAgICogcmVuZGVyaW5nL0V4
Y2x1c2lvblJlY3RhbmdsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25SZWN0YW5n
bGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3ApOiBEaXR0by4KKwogMjAxMy0wNS0w
MSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgdHJpdmlhbCBidWlsZGZpeCBhZnRlciByMTQ5NDMyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwCmluZGV4IGY5NjFkMjUuLjE5Zjk3OGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAKQEAgLTEx
OCwxMiArMTE4LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRBcmMoVmVjdG9yPEZsb2F0
UG9pbnQ+JiB2ZXJ0aWNlcywgY29uc3QgRmxvYXRQb2ludCYgYXJjCiAgICAgaWYgKGVuZEFuZ2xl
IDwgMCkKICAgICAgICAgZW5kQW5nbGUgKz0gdHdvUEk7CiAgICAgZmxvYXQgYW5nbGUgPSAoc3Rh
cnRBbmdsZSA+IGVuZEFuZ2xlKSA/IChzdGFydEFuZ2xlIC0gZW5kQW5nbGUpIDogKHN0YXJ0QW5n
bGUgKyB0d29QSSAtIGVuZEFuZ2xlKTsKLSAgICBjb25zdCBmbG9hdCBhcmNTZWdtZW50Q291bnQg
PSA1OyAvLyBBbiBvZGQgbnVtYmVyIHNvIHRoYXQgb25lIGFyYyB2ZXJ0ZXggd2lsbCBiZSBlYWN0
bHkgYXJjUmFkaXVzIGZyb20gYXJjQ2VudGVyLgotICAgIGZsb2F0IGFuZ2xlNSA9ICAoKHBhZGRp
bmcpID8gLWFuZ2xlIDogdHdvUEkgLSBhbmdsZSkgLyBhcmNTZWdtZW50Q291bnQ7CisgICAgY29u
c3QgZmxvYXQgYXJjU2VnbWVudENvdW50ID0gNjsgLy8gQW4gZXZlbiBudW1iZXIgc28gdGhhdCBv
bmUgYXJjIHZlcnRleCB3aWxsIGJlIGVhY3RseSBhcmNSYWRpdXMgZnJvbSBhcmNDZW50ZXIuCisg
ICAgZmxvYXQgYXJjU2VnbWVudEFuZ2xlID0gICgocGFkZGluZykgPyAtYW5nbGUgOiB0d29QSSAt
IGFuZ2xlKSAvIGFyY1NlZ21lbnRDb3VudDsKIAogICAgIHZlcnRpY2VzLmFwcGVuZChzdGFydEFy
Y1ZlcnRleCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGFyY1NlZ21lbnRDb3VudDsg
KytpKSB7Ci0gICAgICAgIGZsb2F0IGFuZ2xlID0gc3RhcnRBbmdsZSArIGFuZ2xlNSAqIGk7Cisg
ICAgICAgIGZsb2F0IGFuZ2xlID0gc3RhcnRBbmdsZSArIGFyY1NlZ21lbnRBbmdsZSAqIGk7CiAg
ICAgICAgIHZlcnRpY2VzLmFwcGVuZChhcmNDZW50ZXIgKyBGbG9hdFBvaW50KGNvcyhhbmdsZSkg
KiBhcmNSYWRpdXMsIHNpbihhbmdsZSkgKiBhcmNSYWRpdXMpKTsKICAgICB9CiAgICAgdmVydGlj
ZXMuYXBwZW5kKGVuZEFyY1ZlcnRleCk7CkBAIC01MDUsNyArNTA1LDcgQEAgYm9vbCBFeGNsdXNp
b25Qb2x5Z29uOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWlu
TG9naWNhbEludGUKICAgICB9CiAKICAgICBpZiAoZmlyc3RGaXRGb3VuZCkKLSAgICAgICAgcmVz
dWx0ID0gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChmaXJzdEZpdFJlY3QueSgpKTsKKyAgICAg
ICAgcmVzdWx0ID0gY2VpbGVkTGF5b3V0VW5pdChmaXJzdEZpdFJlY3QueSgpKTsKICAgICByZXR1
cm4gZmlyc3RGaXRGb3VuZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uUmVjdGFuZ2xlLmNwcAppbmRleCA2NTAyODNhLi5kNmI1MjAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcApAQCAtMjEzLDcgKzIx
Myw3IEBAIGJvb2wgRXhjbHVzaW9uUmVjdGFuZ2xlOjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dp
Y2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEluCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgICAgICBpZiAobWluSW50ZXJ2YWxIZWlnaHQgPCBib3VuZHMuaGVpZ2h0
KCkgLSAoMiAqIGNvcm5lckludGVyY2VwdC55KCkpKSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBM
YXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGJvdW5kcy55KCkgKyBjb3JuZXJJbnRlcmNlcHQueSgp
KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNlaWxlZExheW91dFVuaXQoYm91bmRzLnkoKSArIGNv
cm5lckludGVyY2VwdC55KCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
ICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>