<?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>70793</bug_id>
          
          <creation_ts>2011-10-24 19:23:35 -0700</creation_ts>
          <short_desc>Need to handle absolutely positioned elements inside flexboxes</short_desc>
          <delta_ts>2012-01-10 15:53:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          <blocked>62048</blocked>
    
    <blocked>70792</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>hyatt</cc>
    
    <cc>jackalmage</cc>
    
    <cc>tabatkins</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>489841</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-10-24 19:23:35 -0700</bug_when>
    <thetext>We also need to review this part of the spec to make sure it makes sense: http://dev.w3.org/csswg/css3-flexbox/#abspos-flexbox-items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527995</commentid>
    <comment_count>1</comment_count>
      <attachid>120763</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-12-29 12:10:47 -0800</bug_when>
    <thetext>Created attachment 120763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528004</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-12-29 12:50:35 -0800</bug_when>
    <thetext>I didn&apos;t add test cases for row-reverse/column-reverse to this patch because I wasn&apos;t sure what it was supposed to do.  It&apos;ll still be out of flow, but it&apos;s not clear to me where they should be positioned.  For example:

&lt;div style=&quot;display: -webkit-flexbox; -webkit-flex-flow: row-reverse; position: relative&quot;&gt;
&lt;div style=&quot;position: absolute;&quot;&gt;absolute&lt;/div&gt;
&lt;div style=&quot;width: 1000px&quot;&gt;main text&lt;/div&gt;
&lt;/div&gt;

+---------------------------------------+
|(1)main text                        (2)+(3)
+---------------------------------------+

It&apos;s not clear to me if absolute should be at 1, 2 (right aligned) or 3.  I guess (2) makes the most sense, but it will require some extra logic to handle properly (i.e., should be a separate patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528008</commentid>
    <comment_count>3</comment_count>
    <who name="Tab Atkins">tabatkins</who>
    <bug_when>2011-12-29 13:28:26 -0800</bug_when>
    <thetext>The static position is the upper-right corner of the &quot;main text&quot; div (flush with the inner cross-start edge of the flexbox, and flush with the main-start edge of the following neighbor).  Abspos elements put their top-left corner at their static position, so (3) is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528028</commentid>
    <comment_count>4</comment_count>
      <attachid>120769</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-12-29 15:07:22 -0800</bug_when>
    <thetext>Created attachment 120769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528038</commentid>
    <comment_count>5</comment_count>
      <attachid>120769</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-29 15:56:02 -0800</bug_when>
    <thetext>Comment on attachment 120769
Patch

Attachment 120769 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10924136

New failing tests:
http/tests/inspector/resource-tree/resource-tree-document-url.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530743</commentid>
    <comment_count>6</comment_count>
      <attachid>120769</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-01-05 16:04:00 -0800</bug_when>
    <thetext>Comment on attachment 120769
Patch

The spec page hasn&apos;t been updated to the consensus from TPAC.  The conclusion was to have position:absolute flex items insert a placeholder.  All this means is that for flex-pack: justify, the spacing is a bit weird.

I&apos;ll update the patch to do this instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531080</commentid>
    <comment_count>7</comment_count>
    <who name="Tab Atkins">tabatkins</who>
    <bug_when>2012-01-06 08:36:03 -0800</bug_when>
    <thetext>I&apos;m about to go look through the minutes, but I don&apos;t recall that actually being the decision.  You may want to hold off on making the change immediately while I verify.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531207</commentid>
    <comment_count>8</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-06 11:36:22 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I&apos;m about to go look through the minutes, but I don&apos;t recall that actually being the decision.  You may want to hold off on making the change immediately while I verify.

That definitely was the conclusion. I think it&apos;s silly though. dbaron argued that leaving behind a placeholder makes it consistent with absolute positioning in the rest of the platform (e.g. an absolutely positioned div inside an inline).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531339</commentid>
    <comment_count>9</comment_count>
    <who name="Tab Atkins Jr.">jackalmage</who>
    <bug_when>2012-01-06 13:35:44 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; I&apos;m about to go look through the minutes, but I don&apos;t recall that actually being the decision.  You may want to hold off on making the change immediately while I verify.
&gt; 
&gt; That definitely was the conclusion. I think it&apos;s silly though. dbaron argued that leaving behind a placeholder makes it consistent with absolute positioning in the rest of the platform (e.g. an absolutely positioned div inside an inline).

Ah, indeed.  Looks like I remembered wrong.  Welp, time to go change the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531686</commentid>
    <comment_count>10</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-01-07 12:59:17 -0800</bug_when>
    <thetext>The text has been updated http://dev.w3.org/csswg/css3-flexbox/#abspos-flexbox-items.

We should make sure to add a test for &quot;they&apos;ll...join neighboring inline elements in their anonymous flexbox item wrapper boxes.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531689</commentid>
    <comment_count>11</comment_count>
    <who name="Tab Atkins Jr.">jackalmage</who>
    <bug_when>2012-01-07 13:48:44 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; The text has been updated http://dev.w3.org/csswg/css3-flexbox/#abspos-flexbox-items.
&gt; 
&gt; We should make sure to add a test for &quot;they&apos;ll...join neighboring inline elements in their anonymous flexbox item wrapper boxes.&quot;

You probably want three tests, for the following situations:

&lt;flexbox&gt;
  &lt;div /&gt;
  &lt;abspos /&gt;
  text
&lt;/flexbox&gt;

&lt;flexbox&gt;
  text
  &lt;abspos /&gt;
  &lt;div /&gt;
&lt;/flexbox&gt;

&lt;flexbox&gt;
  &lt;div /&gt;
  text
  &lt;abspos /&gt;
  text
  &lt;div /&gt;
&lt;/flexbox&gt;

Using &apos;flex-pack:justify&apos; for all three of them to make it easier to tell what&apos;s happening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532616</commentid>
    <comment_count>12</comment_count>
      <attachid>121750</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-01-09 16:15:35 -0800</bug_when>
    <thetext>Created attachment 121750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533344</commentid>
    <comment_count>13</comment_count>
      <attachid>121750</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-01-10 13:28:15 -0800</bug_when>
    <thetext>Comment on attachment 121750
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533438</commentid>
    <comment_count>14</comment_count>
      <attachid>121750</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-10 15:53:13 -0800</bug_when>
    <thetext>Comment on attachment 121750
Patch

Clearing flags on attachment: 121750

Committed r104645: &lt;http://trac.webkit.org/changeset/104645&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533439</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-10 15:53:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120763</attachid>
            <date>2011-12-29 12:10:47 -0800</date>
            <delta_ts>2011-12-29 15:07:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70793-20111229121111.patch</filename>
            <type>text/plain</type>
            <size>23445</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MyMzJiYTNkNTU5YmU4
MzRjN2ZkZDY1MDI3ZmZmYjhiNGVhNzcyZi4uYjI5YzI3ZGRhMjc2MmIzNzYzNTczZTMzOTY2MDFk
MjFmZTU4OWRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTEyLTI5ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTmVlZCB0byBoYW5kbGUgYWJz
b2x1dGVseSBwb3NpdGlvbmVkIGVsZW1lbnRzIGluc2lkZSBmbGV4Ym94ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzkzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGNzczMvZmxleGJveC9p
bnNlcnQtdGV4dC1jcmFzaC5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ZsZXhib3gvcG9zaXRp
b24tYWJzb2x1dGUtY2hpbGQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRl
UHJlZmVycmVkTWFpbkF4aXNFeHRlbnQpOiBTa2lwIHBvc2l0aW9uZWQgY2hpbGRyZW4uCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cnVuRnJlZVNwYWNlQWxsb2NhdGlvbkFs
Z29yaXRobSk6IFBvc2l0aW9uZWQgY2hpbGRyZW4gdGFrZSB1cCBubyBmbGV4aW5nIHNwYWNlLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVQYWNraW5nU3BhY2VC
ZXR3ZWVuQ2hpbGRyZW4pOiBTa2lwIHBvc2l0aW9uZWQgY2hpbGRyZW4gZm9yIHBhY2s6IGp1c3Rp
ZnkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cHJlcGFyZUNoaWxkRm9y
UG9zaXRpb25lZExheW91dCk6IE1hcmsgYSBjaGlsZCBhcyBwb3NpdGlvbmVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEFuZFBsYWNlQ2hpbGRyZW4pOiBIYW5k
bGUgcG9zaXRpb25lZCBjaGlsZHJlbiBhbmQgdXBkYXRlIG91ciBwYWNrOiBqdXN0aWZ5IGFtb3Vu
dC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRDb2x1bW5SZXZl
cnNlKTogUGFzcyBpbiBwYWNrOiBqdXN0aWZ5IHNwYWNpbmcuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZsZXhpYmxlQm94Lmg6CisKIDIwMTEtMTItMjggIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGRvbWFpbi5w
bmcgdG8gV2ViQ29yZS5neXBpIC8gV2ViS2l0LnFyYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDhmNmE4Njg0ZWE2NjdjMWZhN2NkOWNk
NDJmYjVhMTIzM2I1ODZjNzMuLjU0NGYxYmIwZDNhOGY4OTEzMzRjNTgxNzVhNTZiZmFlYzliYzYz
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94LmgiCiAKICNp
bmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclZpZXcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDg4LDYgKzQ4
OSw5IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVQcmVmZXJyZWRNYWluQXhpc0V4
dGVudChib29sIHJlbGF5b3V0Q2hpbGRyZW4sIFRyCiAKICAgICBMYXlvdXRVbml0IGZsZXhib3hB
dmFpbGFibGVDb250ZW50RXh0ZW50ID0gbWFpbkF4aXNDb250ZW50RXh0ZW50KCk7CiAgICAgZm9y
IChSZW5kZXJCb3gqIGNoaWxkID0gaXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0gaXRl
cmF0b3IubmV4dCgpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNQb3NpdGlvbmVkKCkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBpZiAobWFpbkF4aXNMZW5ndGhGb3JDaGlsZChj
aGlsZCkuaXNBdXRvKCkpIHsKICAgICAgICAgICAgIGNoaWxkLT5jbGVhck92ZXJyaWRlU2l6ZSgp
OwogICAgICAgICAgICAgaWYgKCFyZWxheW91dENoaWxkcmVuKQpAQCAtNTIzLDYgKzUyNywxMSBA
QCBib29sIFJlbmRlckZsZXhpYmxlQm94OjpydW5GcmVlU3BhY2VBbGxvY2F0aW9uQWxnb3JpdGht
KEZsZXhPcmRlckl0ZXJhdG9yJiBpdGVyYQogCiAgICAgTGF5b3V0VW5pdCBmbGV4Ym94QXZhaWxh
YmxlQ29udGVudEV4dGVudCA9IG1haW5BeGlzQ29udGVudEV4dGVudCgpOwogICAgIGZvciAoUmVu
ZGVyQm94KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IGl0ZXJhdG9y
Lm5leHQoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmlzUG9zaXRpb25lZCgpKSB7CisgICAgICAg
ICAgICBjaGlsZFNpemVzLmFwcGVuZCgwKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisKICAgICAgICAgTGF5b3V0VW5pdCBjaGlsZFByZWZlcnJlZFNpemU7CiAgICAgICAgIGlm
IChpbmZsZXhpYmxlSXRlbXMuY29udGFpbnMoY2hpbGQpKQogICAgICAgICAgICAgY2hpbGRQcmVm
ZXJyZWRTaXplID0gaW5mbGV4aWJsZUl0ZW1zLmdldChjaGlsZCk7CkBAIC01NzUsMTMgKzU4NCw2
IEBAIHN0YXRpYyBMYXlvdXRVbml0IGluaXRpYWxQYWNraW5nT2Zmc2V0KExheW91dFVuaXQgYXZh
aWxhYmxlRnJlZVNwYWNlLCBmbG9hdCB0b3RhCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBM
YXlvdXRVbml0IHBhY2tpbmdTcGFjZUJldHdlZW5DaGlsZHJlbihMYXlvdXRVbml0IGF2YWlsYWJs
ZUZyZWVTcGFjZSwgZmxvYXQgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5LCBFRmxleFBhY2sgZmxl
eFBhY2ssIHNpemVfdCBudW1iZXJPZkNoaWxkcmVuKQotewotICAgIGlmIChoYXNQYWNraW5nU3Bh
Y2UoYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkpICYmIGZsZXhQ
YWNrID09IFBhY2tKdXN0aWZ5ICYmIG51bWJlck9mQ2hpbGRyZW4gPiAxKQotICAgICAgICByZXR1
cm4gYXZhaWxhYmxlRnJlZVNwYWNlIC8gKG51bWJlck9mQ2hpbGRyZW4gLSAxKTsKLSAgICByZXR1
cm4gMDsKLX0KLQogdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6c2V0TG9naWNhbE92ZXJyaWRlU2l6
ZShSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IGNoaWxkUHJlZmVycmVkU2l6ZSkKIHsKICAg
ICAvLyBGSVhNRTogUmVuYW1lIHNldE92ZXJyaWRlV2lkdGgvc2V0T3ZlcnJpZGVIZWlnaHQgdG8g
c2V0T3ZlcnJpZGVMb2dpY2FsV2lkdGgvc2V0T3ZlcnJpZGVMb2dpY2FsSGVpZ2h0LgpAQCAtNTkx
LDggKzU5Myw0MCBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpzZXRMb2dpY2FsT3ZlcnJpZGVT
aXplKFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgY2hpbAogICAgICAgICBjaGlsZC0+c2V0
T3ZlcnJpZGVXaWR0aChjaGlsZFByZWZlcnJlZFNpemUpOwogfQogCitMYXlvdXRVbml0IFJlbmRl
ckZsZXhpYmxlQm94Ojpjb21wdXRlUGFja2luZ1NwYWNlQmV0d2VlbkNoaWxkcmVuKEZsZXhPcmRl
ckl0ZXJhdG9yJiBpdGVyYXRvciwgTGF5b3V0VW5pdCBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0
IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSkKK3sKKyAgICBpZiAoc3R5bGUoKS0+ZmxleFBhY2so
KSAhPSBQYWNrSnVzdGlmeSB8fCAhaGFzUGFja2luZ1NwYWNlKGF2YWlsYWJsZUZyZWVTcGFjZSwg
dG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBzaXpl
X3QgcGFja2luZ0NoaWxkcmVuID0gMDsKKyAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBpdGVy
YXRvci5maXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBpdGVyYXRvci5uZXh0KCkpCisgICAgICAgIGlm
ICghY2hpbGQtPmlzUG9zaXRpb25lZCgpKQorICAgICAgICAgICAgKytwYWNraW5nQ2hpbGRyZW47
CisgICAgaWYgKHBhY2tpbmdDaGlsZHJlbiA8IDIpCisgICAgICAgIHJldHVybiAwOworCisgICAg
cmV0dXJuIGF2YWlsYWJsZUZyZWVTcGFjZSAvIChwYWNraW5nQ2hpbGRyZW4gLSAxKTsKK30KKwor
dm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6cHJlcGFyZUNoaWxkRm9yUG9zaXRpb25lZExheW91dChS
ZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IG1haW5BeGlzT2Zmc2V0LCBMYXlvdXRVbml0IGNy
b3NzQXhpc09mZnNldCkKK3sKKyAgICBBU1NFUlQoY2hpbGQtPmlzUG9zaXRpb25lZCgpKTsKKyAg
ICBjaGlsZC0+Y29udGFpbmluZ0Jsb2NrKCktPmluc2VydFBvc2l0aW9uZWRPYmplY3QoY2hpbGQp
OworICAgIFJlbmRlckxheWVyKiBjaGlsZExheWVyID0gY2hpbGQtPmxheWVyKCk7CisgICAgY2hp
bGRMYXllci0+c2V0U3RhdGljSW5saW5lUG9zaXRpb24oaXNDb2x1bW5GbG93KCkgPyBjcm9zc0F4
aXNPZmZzZXQgOiBtYWluQXhpc09mZnNldCk7IC8vIEZJWE1FOiBOb3QgcmlnaHQgZm9yIHJlZ2lv
bnMuCisKKyAgICBMYXlvdXRVbml0IHN0YXRpY0Jsb2NrUG9zaXRpb24gPSBpc0NvbHVtbkZsb3co
KSA/IG1haW5BeGlzT2Zmc2V0IDogY3Jvc3NBeGlzT2Zmc2V0OworICAgIGlmIChjaGlsZExheWVy
LT5zdGF0aWNCbG9ja1Bvc2l0aW9uKCkgIT0gc3RhdGljQmxvY2tQb3NpdGlvbikgeworICAgICAg
ICBjaGlsZExheWVyLT5zZXRTdGF0aWNCbG9ja1Bvc2l0aW9uKHN0YXRpY0Jsb2NrUG9zaXRpb24p
OworICAgICAgICBpZiAoY2hpbGQtPnN0eWxlKCktPmhhc1N0YXRpY0Jsb2NrUG9zaXRpb24oc3R5
bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkpCisgICAgICAgICAgICBjaGlsZC0+c2V0
Q2hpbGROZWVkc0xheW91dCh0cnVlLCBmYWxzZSk7CisgICAgfQorfQorCiB2b2lkIFJlbmRlckZs
ZXhpYmxlQm94OjpsYXlvdXRBbmRQbGFjZUNoaWxkcmVuKEZsZXhPcmRlckl0ZXJhdG9yJiBpdGVy
YXRvciwgY29uc3QgV1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMsIExheW91dFVu
aXQgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkpCiB7
CisgICAgTGF5b3V0VW5pdCBwYWNraW5nU3BhY2VCZXR3ZWVuQ2hpbGRyZW4gPSBjb21wdXRlUGFj
a2luZ1NwYWNlQmV0d2VlbkNoaWxkcmVuKGl0ZXJhdG9yLCBhdmFpbGFibGVGcmVlU3BhY2UsIHRv
dGFsUG9zaXRpdmVGbGV4aWJpbGl0eSk7CisKICAgICBMYXlvdXRVbml0IG1haW5BeGlzT2Zmc2V0
ID0gZmxvd0F3YXJlQm9yZGVyU3RhcnQoKSArIGZsb3dBd2FyZVBhZGRpbmdTdGFydCgpOwogICAg
IG1haW5BeGlzT2Zmc2V0ICs9IGluaXRpYWxQYWNraW5nT2Zmc2V0KGF2YWlsYWJsZUZyZWVTcGFj
ZSwgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5LCBzdHlsZSgpLT5mbGV4UGFjaygpKTsKIApAQCAt
NjAyLDYgKzYzNiwxMCBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRBbmRQbGFjZUNo
aWxkcmVuKEZsZXhPcmRlckl0ZXJhdG9yJiBpdGVyYXRvciwgY29ucwogICAgIGJvb2wgc2hvdWxk
RmxpcE1haW5BeGlzID0gIWlzQ29sdW1uRmxvdygpICYmICFpc0xlZnRUb1JpZ2h0RmxvdygpOwog
ICAgIHNpemVfdCBpID0gMDsKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBpdGVyYXRvci5m
aXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBpdGVyYXRvci5uZXh0KCksICsraSkgeworICAgICAgICBp
ZiAoY2hpbGQtPmlzUG9zaXRpb25lZCgpKSB7CisgICAgICAgICAgICBwcmVwYXJlQ2hpbGRGb3JQ
b3NpdGlvbmVkTGF5b3V0KGNoaWxkLCBtYWluQXhpc09mZnNldCwgY3Jvc3NBeGlzT2Zmc2V0KTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgIExheW91dFVuaXQgY2hp
bGRQcmVmZXJyZWRTaXplID0gY2hpbGRTaXplc1tpXSArIG1haW5BeGlzQm9yZGVyQW5kUGFkZGlu
Z0V4dGVudEZvckNoaWxkKGNoaWxkKTsKICAgICAgICAgc2V0TG9naWNhbE92ZXJyaWRlU2l6ZShj
aGlsZCwgY2hpbGRQcmVmZXJyZWRTaXplKTsKICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNM
YXlvdXQodHJ1ZSk7CkBAIC02MzAsNyArNjY4LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6
bGF5b3V0QW5kUGxhY2VDaGlsZHJlbihGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0b3IsIGNvbnMK
ICAgICAgICAgc2V0Rmxvd0F3YXJlTG9jYXRpb25Gb3JDaGlsZChjaGlsZCwgY2hpbGRMb2NhdGlv
bik7CiAgICAgICAgIG1haW5BeGlzT2Zmc2V0ICs9IGNoaWxkTWFpbkV4dGVudCArIGZsb3dBd2Fy
ZU1hcmdpbkVuZEZvckNoaWxkKGNoaWxkKTsKIAotICAgICAgICBtYWluQXhpc09mZnNldCArPSBw
YWNraW5nU3BhY2VCZXR3ZWVuQ2hpbGRyZW4oYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3RhbFBvc2l0
aXZlRmxleGliaWxpdHksIHN0eWxlKCktPmZsZXhQYWNrKCksIGNoaWxkU2l6ZXMuc2l6ZSgpKTsK
KyAgICAgICAgbWFpbkF4aXNPZmZzZXQgKz0gcGFja2luZ1NwYWNlQmV0d2VlbkNoaWxkcmVuOwog
CiAgICAgICAgIGlmIChpc0NvbHVtbkZsb3coKSkKICAgICAgICAgICAgIHNldExvZ2ljYWxIZWln
aHQobWFpbkF4aXNPZmZzZXQpOwpAQCAtNjQwLDEzICs2NzgsMTMgQEAgdm9pZCBSZW5kZXJGbGV4
aWJsZUJveDo6bGF5b3V0QW5kUGxhY2VDaGlsZHJlbihGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0
b3IsIGNvbnMKICAgICAgICAgLy8gV2UgaGF2ZSB0byBkbyBhbiBleHRyYSBwYXNzIGZvciBjb2x1
bW4tcmV2ZXJzZSB0byByZXBvc2l0aW9uIHRoZSBmbGV4IGl0ZW1zIHNpbmNlIHRoZSBzdGFydCBk
ZXBlbmRzCiAgICAgICAgIC8vIG9uIHRoZSBoZWlnaHQgb2YgdGhlIGZsZXhib3gsIHdoaWNoIHdl
IG9ubHkga25vdyBhZnRlciB3ZSd2ZSBwb3NpdGlvbmVkIGFsbCB0aGUgZmxleCBpdGVtcy4KICAg
ICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgbGF5b3V0Q29sdW1uUmV2ZXJz
ZShpdGVyYXRvciwgY2hpbGRTaXplcywgYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3RhbFBvc2l0aXZl
RmxleGliaWxpdHkpOworICAgICAgICBsYXlvdXRDb2x1bW5SZXZlcnNlKGl0ZXJhdG9yLCBjaGls
ZFNpemVzLCBhdmFpbGFibGVGcmVlU3BhY2UsIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgcGFj
a2luZ1NwYWNlQmV0d2VlbkNoaWxkcmVuKTsKICAgICB9CiAKICAgICBhbGlnbkNoaWxkcmVuKGl0
ZXJhdG9yLCBtYXhBc2NlbnQpOwogfQogCi12b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRD
b2x1bW5SZXZlcnNlKEZsZXhPcmRlckl0ZXJhdG9yJiBpdGVyYXRvciwgY29uc3QgV1RGOjpWZWN0
b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMsIExheW91dFVuaXQgYXZhaWxhYmxlRnJlZVNwYWNl
LCBmbG9hdCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkpCit2b2lkIFJlbmRlckZsZXhpYmxlQm94
OjpsYXlvdXRDb2x1bW5SZXZlcnNlKEZsZXhPcmRlckl0ZXJhdG9yJiBpdGVyYXRvciwgY29uc3Qg
V1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMsIExheW91dFVuaXQgYXZhaWxhYmxl
RnJlZVNwYWNlLCBmbG9hdCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIExheW91dFVuaXQgcGFj
a2luZ1NwYWNlQmV0d2VlbkNoaWxkcmVuKQogewogICAgIC8vIFRoaXMgaXMgc2ltaWxhciB0byB0
aGUgbG9naWMgaW4gbGF5b3V0QW5kUGxhY2VDaGlsZHJlbiwgZXhjZXB0IHdlIHBsYWNlIHRoZSBj
aGlsZHJlbgogICAgIC8vIHN0YXJ0aW5nIGZyb20gdGhlIGVuZCBvZiB0aGUgZmxleGJveC4gV2Ug
YWxzbyBkb24ndCBuZWVkIHRvIGxheW91dCBhbnl0aGluZyBzaW5jZSB3ZSdyZQpAQCAtNjY1LDcg
KzcwMyw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dENvbHVtblJldmVyc2UoRmxl
eE9yZGVySXRlcmF0b3ImIGl0ZXJhdG9yLCBjb25zdCBXCiAgICAgICAgICAgICBjaGlsZC0+cmVw
YWludER1cmluZ0xheW91dElmTW92ZWQob2xkUmVjdCk7CiAKICAgICAgICAgbWFpbkF4aXNPZmZz
ZXQgLT0gZmxvd0F3YXJlTWFyZ2luU3RhcnRGb3JDaGlsZChjaGlsZCk7Ci0gICAgICAgIG1haW5B
eGlzT2Zmc2V0IC09IHBhY2tpbmdTcGFjZUJldHdlZW5DaGlsZHJlbihhdmFpbGFibGVGcmVlU3Bh
Y2UsIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgc3R5bGUoKS0+ZmxleFBhY2soKSwgY2hpbGRT
aXplcy5zaXplKCkpOworICAgICAgICBtYWluQXhpc09mZnNldCAtPSBwYWNraW5nU3BhY2VCZXR3
ZWVuQ2hpbGRyZW47CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5oCmluZGV4IGZlMGRmYTIxZWMzMWYyZGVhN2QxNWM5NTA2YjdmYzUxOTQ4
M2FiNTQuLmIyNmYxMTM1ZmZlNTdmODJhODI0NzE0N2Q3ZDFkODkzYWRmZDRjYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC05Niw4ICs5Niwx
MCBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZE1haW5BeGlzRXh0ZW50KGJv
b2wgcmVsYXlvdXRDaGlsZHJlbiwgVHJlZU9yZGVySXRlcmF0b3ImLCBMYXlvdXRVbml0JiwgZmxv
YXQmIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsTmVnYXRpdmVGbGV4aWJp
bGl0eSk7CiAgICAgYm9vbCBydW5GcmVlU3BhY2VBbGxvY2F0aW9uQWxnb3JpdGhtKEZsZXhPcmRl
ckl0ZXJhdG9yJiwgTGF5b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCYgdG90YWxQ
b3NpdGl2ZUZsZXhpYmlsaXR5LCBmbG9hdCYgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBJbmZs
ZXhpYmxlRmxleEl0ZW1TaXplJiwgV1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMp
OwogICAgIHZvaWQgc2V0TG9naWNhbE92ZXJyaWRlU2l6ZShSZW5kZXJCb3gqIGNoaWxkLCBMYXlv
dXRVbml0IGNoaWxkUHJlZmVycmVkU2l6ZSk7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlUGFja2lu
Z1NwYWNlQmV0d2VlbkNoaWxkcmVuKEZsZXhPcmRlckl0ZXJhdG9yJiwgTGF5b3V0VW5pdCBhdmFp
bGFibGVGcmVlU3BhY2UsIGZsb2F0IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSk7CisgICAgdm9p
ZCBwcmVwYXJlQ2hpbGRGb3JQb3NpdGlvbmVkTGF5b3V0KFJlbmRlckJveCogY2hpbGQsIExheW91
dFVuaXQgbWFpbkF4aXNPZmZzZXQsIExheW91dFVuaXQgY3Jvc3NBeGlzT2Zmc2V0KTsKICAgICB2
b2lkIGxheW91dEFuZFBsYWNlQ2hpbGRyZW4oRmxleE9yZGVySXRlcmF0b3ImLCBjb25zdCBXVEY6
OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRTaXplcywgTGF5b3V0VW5pdCBhdmFpbGFibGVGcmVl
U3BhY2UsIGZsb2F0IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSk7Ci0gICAgdm9pZCBsYXlvdXRD
b2x1bW5SZXZlcnNlKEZsZXhPcmRlckl0ZXJhdG9yJiwgY29uc3QgV1RGOjpWZWN0b3I8TGF5b3V0
VW5pdD4mIGNoaWxkU2l6ZXMsIExheW91dFVuaXQgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCB0
b3RhbFBvc2l0aXZlRmxleGliaWxpdHkpOworICAgIHZvaWQgbGF5b3V0Q29sdW1uUmV2ZXJzZShG
bGV4T3JkZXJJdGVyYXRvciYsIGNvbnN0IFdURjo6VmVjdG9yPExheW91dFVuaXQ+JiBjaGlsZFNp
emVzLCBMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQgdG90YWxQb3NpdGl2ZUZs
ZXhpYmlsaXR5LCBMYXlvdXRVbml0IHBhY2tpbmdTcGFjZUJldHdlZW5DaGlsZHJlbik7CiAgICAg
dm9pZCBhbGlnbkNoaWxkcmVuKEZsZXhPcmRlckl0ZXJhdG9yJiwgTGF5b3V0VW5pdCBtYXhBc2Nl
bnQpOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDFjMWJjMjI5YmNjNzUwYWE5MDQ1ZTlkZTc1ODQ0M2Y1ZTZkOWJh
OGQuLjRiYzE0OWEyYTcyZDU2NWIwMTBhYTJmYWExNjhmYWM5ZGEzMDQzYTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMS0xMi0yOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIE5lZWQgdG8gaGFuZGxlIGFic29sdXRlbHkgcG9zaXRpb25lZCBlbGVtZW50cyBp
bnNpZGUgZmxleGJveGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MDc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogY3NzMy9mbGV4Ym94L2luc2VydC10ZXh0LWNyYXNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogY3NzMy9mbGV4Ym94L2luc2VydC10ZXh0LWNyYXNoLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGNzczMvZmxleGJveC9wb3NpdGlvbi1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmxleGJveC9wb3NpdGlvbi1hYnNvbHV0ZS1j
aGlsZC5odG1sOiBBZGRlZC4KKwogMjAxMS0xMi0yOCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZs
b3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludHJvZHVjZSBhIFBy
b2ZpbGVyIGxhdW5jaGVyIHZpZXcgc2ltaWxhciB0byB0aGF0IGluIHRoZSBBdWRpdHMgcGFuZWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9pbnNlcnQtdGV4dC1jcmFzaC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvaW5zZXJ0LXRleHQtY3Jhc2gt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NGRkZjdmMTdlZmFiNThlNDJmYWJlMzg1MjU3OTY0
YWUyYzVkNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvaW5z
ZXJ0LXRleHQtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCBwYXNz
ZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvaW5zZXJ0LXRleHQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9p
bnNlcnQtdGV4dC1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4MTBlOGViMjhhMDM3OTE2NDZiOTMy
NjUxMjQ1ZDRhOGM2ZTk4YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvaW5zZXJ0LXRleHQtY3Jhc2guaHRtbApAQCAtMCwwICsxLDIwIEBACis8c3R5bGU+Cisj
ZWwyIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXhib3g7CisgICAgYm9yZGVyOiAxcHggc29s
aWQgcmVkOworfQorI2VsMyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGJvcmRlcjog
MXB4IHNvbGlkIGdyZWVuOworfQorPC9zdHlsZT4KKzxib2R5IGNvbnRlbnRlZGl0YWJsZT10cnVl
PgorPGRpdiBpZD0iZWwyIj48ZGl2IGlkPSJlbDMiPkFBIDwvZGl2PjwvZGl2PgorPC9ib2R5Pgor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3NlbGVjdGFs
bCcpCitkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0dGV4dCcsICcnKQorZG9jdW1lbnQuYm9k
eS5pbm5lclRleHQgPSAiVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4iOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcG9zaXRpb24t
YWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3Bv
c2l0aW9uLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGU5OGVhYTg1
MjdkMzg0MWY0MGExM2VjMWYxOTJmODdkOWYyYjJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9mbGV4Ym94L3Bvc2l0aW9uLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDgwIEBACitob3Jpem9udGFsLXRiIGx0ciByb3cKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK2hvcml6b250YWwtdGIgcnRsIHJvdworUEFTUworUEFTUworUEFTUworUEFTUworaG9y
aXpvbnRhbC10YiBsdHIgY29sdW1uCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitob3Jpem9udGFs
LXRiIHJ0bCBjb2x1bW4KK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK2hvcml6b250YWwtYnQgbHRy
IHJvdworUEFTUworUEFTUworUEFTUworUEFTUworaG9yaXpvbnRhbC1idCBydGwgcm93CitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitob3Jpem9udGFsLWJ0IGx0ciBjb2x1bW4KK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK2hvcml6b250YWwtYnQgcnRsIGNvbHVtbgorUEFTUworUEFTUworUEFTUwor
UEFTUwordmVydGljYWwtcmwgbHRyIHJvdworUEFTUworUEFTUworUEFTUworUEFTUwordmVydGlj
YWwtcmwgcnRsIHJvdworUEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtcmwgbHRyIGNv
bHVtbgorUEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtcmwgcnRsIGNvbHVtbgorUEFT
UworUEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIgbHRyIHJvdworUEFTUworUEFTUworUEFT
UworUEFTUwordmVydGljYWwtbHIgcnRsIHJvdworUEFTUworUEFTUworUEFTUworUEFTUwordmVy
dGljYWwtbHIgbHRyIGNvbHVtbgorUEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIg
cnRsIGNvbHVtbgorUEFTUworUEFTUworUEFTUworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L3Bvc2l0aW9uLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0
cy9jc3MzL2ZsZXhib3gvcG9zaXRpb24tYWJzb2x1dGUtY2hpbGQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MTBiNzNhYzhmMGE2MzExMGY5ZmUyYzQ1Y2UxZTg3MmEyOTEwMGU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3Bvc2l0aW9uLWFic29sdXRlLWNoaWxkLmh0bWwK
QEAgLTAsMCArMSwyOTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c3R5bGU+Citib2R5
IHsKKyAgICBtYXJnaW46IDA7Cit9CisKKy50aXRsZSB7CisgICAgbWFyZ2luLXRvcDogMWVtOwor
fQorCisuZmxleGJveCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4Ym94OworICAgIGJhY2tn
cm91bmQtY29sb3I6ICNhYWE7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorLmZsZXhib3gg
ZGl2IHsKKyAgICBib3JkZXI6IDA7Cit9CisKKy5ob3Jpem9udGFsLXRiIHsKKyAgICAtd2Via2l0
LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsKK30KKy5ob3Jpem9udGFsLWJ0IHsKKyAgICAt
d2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsKK30KKy52ZXJ0aWNhbC1ybCB7Cisg
ICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorLnZlcnRpY2FsLWxyIHsK
KyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Cit9CisKKy5yb3cgeworICAg
IC13ZWJraXQtZmxleC1mbG93OiByb3c7Cit9Cisucm93LXJldmVyc2UgeworICAgIC13ZWJraXQt
ZmxleC1mbG93OiByb3ctcmV2ZXJzZTsKK30KKy5jb2x1bW4geworICAgIC13ZWJraXQtZmxleC1m
bG93OiBjb2x1bW47Cit9CisuY29sdW1uLXJldmVyc2UgeworICAgIC13ZWJraXQtZmxleC1mbG93
OiBjb2x1bW4tcmV2ZXJzZTsKK30KKworLmZsZXhib3ggOm50aC1jaGlsZCgxKSB7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKy5mbGV4Ym94IDpudGgtY2hpbGQoMikgeworICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworfQorLmZsZXhib3ggOm50aC1jaGlsZCgzKSB7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCisucnRsIHsKKyAgICBkaXJlY3Rpb246IHJ0bDsK
K30KKy5sdHIgeworICAgIGRpcmVjdGlvbjogbHRyOworfQorCis8L3N0eWxlPgorPHNjcmlwdD4K
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZsZXhi
b3guanMiPjwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJjaGVja0ZsZXhCb3hlbigpIj4KKworPHNj
cmlwdD4KK2Z1bmN0aW9uIGdldEZsZXhEaXJlY3Rpb24oZmxleEZsb3csIHdyaXRpbmdNb2RlKQor
eworICAgIGlmICh3cml0aW5nTW9kZS5pbmRleE9mKCdob3Jpem9udGFsJykgIT0gLTEpCisgICAg
ICAgIHJldHVybiAoZmxleEZsb3cuaW5kZXhPZigncm93JykgIT0gLTEpID8gJ3dpZHRoJyA6ICdo
ZWlnaHQnOworICAgIHJldHVybiAoZmxleEZsb3cuaW5kZXhPZigncm93JykgIT0gLTEpID8gJ2hl
aWdodCcgOiAnd2lkdGgnOworfQorCit2YXIgd3JpdGluZ01vZGVzID0gWydob3Jpem9udGFsLXRi
JywgJ2hvcml6b250YWwtYnQnLCAndmVydGljYWwtcmwnLCAndmVydGljYWwtbHInXTsKKy8vIEZJ
WE1FOiBBZGQgdGVzdHMgZm9yIHJvdy1yZXZlcnNlIGFuZCBjb2x1bW4tcmV2ZXJzZS4KK3ZhciBm
bGV4Rmxvd3MgPSBbJ3JvdycsICdjb2x1bW4nXTsKK3ZhciBkaXJlY3Rpb25zID0gWydsdHInLCAn
cnRsJ107CisKK3ZhciBleHBlY3RhdGlvbnMgPSB7CisgICAgJ2hvcml6b250YWwtdGInOiB7Cisg
ICAgICAgIHJvdzogeworICAgICAgICAgICAgbHRyOiBbCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbMCwgMCwgMjQwXSwgc2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAgICAgICAgICAgICAg
ICB7IG9mZnNldHM6IFswLCAxNTAsIDE1MF0sIHNpemVzOiBbMTUwLCAwLCA0NTBdIH0sCisgICAg
ICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjAwLCA2MDBdLCBzaXplczogWzIwMCwgNDAwLCAw
XSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDU2MCwgNTYwXSB9CisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgcnRsOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBb
NjAwLCAzNjAsIDBdLCBzaXplczogWzAsIDI0MCwgMzYwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzQ1MCwgNDUwLCAwXSwgc2l6ZXM6IFsxNTAsIDAsIDQ1MF0gfSwKKyAgICAgICAg
ICAgICAgICB7IG9mZnNldHM6IFs0MDAsIDAsIDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAor
ICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzU2MCwgMjAsIDBdIH0KKyAgICAgICAgICAgIF0K
KyAgICAgICAgfSwKKyAgICAgICAgY29sdW1uOiB7CisgICAgICAgICAgICBsdHI6IFsKKyAgICAg
ICAgICAgICAgICB7IG9mZnNldHM6IFswLCAwLCA0OF0sIHNpemVzOiBbMCwgNDgsIDcyXSB9LAor
ICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDMwLCAzMF0sIHNpemVzOiBbMzAsIDAsIDkw
XSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDQwLCAxMjBdLCBzaXplczogWzQw
LCA4MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA4MCwgODBdIH0KKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICBydGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNl
dHM6IFswLCAwLCA0OF0sIHNpemVzOiBbMCwgNDgsIDcyXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzAsIDMwLCAzMF0sIHNpemVzOiBbMzAsIDAsIDkwXSB9LAorICAgICAgICAgICAg
ICAgIHsgb2Zmc2V0czogWzAsIDQwLCAxMjBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAg
ICAgICAgICAgICB7IG9mZnNldHM6IFswLCA4MCwgODBdIH0KKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfQorICAgIH0sCisgICAgJ2hvcml6b250YWwtYnQnOiB7CisgICAgICAgIC8vIFRoaXMgbWF0
Y2hlcyB0aGUgaG9yaXpvbnRhbC10YiB2YWx1ZXMgYWJvdmUuCisgICAgICAgIHJvdzogeworICAg
ICAgICAgICAgbHRyOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMCwgMjQwXSwg
c2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAx
NTAsIDE1MF0sIHNpemVzOiBbMTUwLCAwLCA0NTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbMCwgMjAwLCA2MDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAorICAgICAgICAgICAg
ICAgIHsgb2Zmc2V0czogWzAsIDU2MCwgNTYwXSB9CisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgcnRsOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNjAwLCAzNjAsIDBdLCBzaXpl
czogWzAsIDI0MCwgMzYwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzQ1MCwgNDUw
LCAwXSwgc2l6ZXM6IFsxNTAsIDAsIDQ1MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6
IFs0MDAsIDAsIDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzU2MCwgMjAsIDBdIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAg
ICAgLy8gaG9yaXpvbnRhbC1idCBmbGlwcyB0aGUgbWFpbiBheGlzIGRpcmVjdGlvbiBzbyB0aGUg
b2Zmc2V0cyBhcmUgZGlmZmVyZW50IGZyb20gaG9yaXpvbnRhbC10Yi4KKyAgICAgICAgY29sdW1u
OiB7CisgICAgICAgICAgICBsdHI6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFsxMjAs
IDcyLCAwXSwgc2l6ZXM6IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRz
OiBbOTAsIDkwLCAwXSwgc2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBv
ZmZzZXRzOiBbODAsIDAsIDBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAgICAgICAgICAg
ICB7IG9mZnNldHM6IFs4MCwgMjAsIDBdIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBy
dGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFsxMjAsIDcyLCAwXSwgc2l6ZXM6IFsw
LCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbOTAsIDkwLCAwXSwgc2l6
ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbODAsIDAsIDBd
LCBzaXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwg
MjAsIDBdIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIH0sCisgICAgJ3ZlcnRpY2Fs
LXJsJzogeworICAgICAgICByb3c6IHsKKyAgICAgICAgICAgIC8vIFRoZSBzYW1lIGFzIGhvcml6
b250YWwtdGIgKyBjb2x1bW4uCisgICAgICAgICAgICBsdHI6IFsKKyAgICAgICAgICAgICAgICB7
IG9mZnNldHM6IFswLCAwLCA0OF0sIHNpemVzOiBbMCwgNDgsIDcyXSB9LAorICAgICAgICAgICAg
ICAgIHsgb2Zmc2V0czogWzAsIDMwLCAzMF0sIHNpemVzOiBbMzAsIDAsIDkwXSB9LAorICAgICAg
ICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDQwLCAxMjBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwK
KyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA4MCwgODBdIH0KKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICBydGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFsxMjAsIDcy
LCAwXSwgc2l6ZXM6IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBb
OTAsIDkwLCAwXSwgc2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbODAsIDAsIDBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7
IG9mZnNldHM6IFs4MCwgMjAsIDBdIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAg
ICAgY29sdW1uOiB7CisgICAgICAgICAgICAvLyBUaGUgc2FtZSBhcyBob3Jpem9udGFsLXRiICsg
cm93LgorICAgICAgICAgICAgbHRyOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNjAw
LCAzNjAsIDBdLCBzaXplczogWzAsIDI0MCwgMzYwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zm
c2V0czogWzQ1MCwgNDUwLCAwXSwgc2l6ZXM6IFsxNTAsIDAsIDQ1MF0gfSwKKyAgICAgICAgICAg
ICAgICB7IG9mZnNldHM6IFs0MDAsIDAsIDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAorICAg
ICAgICAgICAgICAgIHsgb2Zmc2V0czogWzU2MCwgMjAsIDBdIH0KKyAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICBydGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs2MDAsIDM2MCwg
MF0sIHNpemVzOiBbMCwgMjQwLCAzNjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBb
NDUwLCA0NTAsIDBdLCBzaXplczogWzE1MCwgMCwgNDUwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzQwMCwgMCwgMF0sIHNpemVzOiBbMjAwLCA0MDAsIDBdIH0sCisgICAgICAgICAg
ICAgICAgeyBvZmZzZXRzOiBbNTYwLCAyMCwgMF0gfQorICAgICAgICAgICAgXQorICAgICAgICB9
CisgICAgfSwKKyAgICAndmVydGljYWwtbHInOiB7CisgICAgICAgIHJvdzogeworICAgICAgICAg
ICAgLy8gVGhlIHNhbWUgYXMgaG9yaXpvbnRhbC10YiArIGNvbHVtbi4KKyAgICAgICAgICAgIGx0
cjogWworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDAsIDQ4XSwgc2l6ZXM6IFswLCA0
OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMzAsIDMwXSwgc2l6ZXM6
IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNDAsIDEyMF0s
IHNpemVzOiBbNDAsIDgwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDgw
LCA4MF0gfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIHJ0bDogWworICAgICAgICAgICAg
ICAgIHsgb2Zmc2V0czogWzEyMCwgNzIsIDBdLCBzaXplczogWzAsIDQ4LCA3Ml0gfSwKKyAgICAg
ICAgICAgICAgICB7IG9mZnNldHM6IFs5MCwgOTAsIDBdLCBzaXplczogWzMwLCAwLCA5MF0gfSwK
KyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgMCwgMF0sIHNpemVzOiBbNDAsIDgwLCAw
XSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzgwLCAyMCwgMF0gfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICBjb2x1bW46IHsKKyAgICAgICAgICAgIC8vIFRoZSBz
YW1lIGFzIGhvcml6b250YWwtYnQgKyByb3cuCisgICAgICAgICAgICBsdHI6IFsKKyAgICAgICAg
ICAgICAgICB7IG9mZnNldHM6IFswLCAwLCAyNDBdLCBzaXplczogWzAsIDI0MCwgMzYwXSB9LAor
ICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDE1MCwgMTUwXSwgc2l6ZXM6IFsxNTAsIDAs
IDQ1MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAyMDAsIDYwMF0sIHNpemVz
OiBbMjAwLCA0MDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNTYwLCA1
NjBdIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBydGw6IFsKKyAgICAgICAgICAgICAg
ICB7IG9mZnNldHM6IFswLCAwLCAyNDBdLCBzaXplczogWzAsIDI0MCwgMzYwXSB9LAorICAgICAg
ICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDE1MCwgMTUwXSwgc2l6ZXM6IFsxNTAsIDAsIDQ1MF0g
fSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAyMDAsIDYwMF0sIHNpemVzOiBbMjAw
LCA0MDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNTYwLCA1NjBdIH0K
KyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIH0KK307CisKK2Z1bmN0aW9uIHNldEZsZXhi
b3hTaXplKGZsZXhib3gsIGZsZXhEaXJlY3Rpb24pCit7CisgICAgaWYgKCd3aWR0aCcgPT0gZmxl
eERpcmVjdGlvbikgeworICAgICAgICBmbGV4Ym94LnN0eWxlLndpZHRoID0gJzYwMHB4JzsKKyAg
ICB9IGVsc2UgeworICAgICAgICBmbGV4Ym94LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKKyAgICAg
ICAgZmxleGJveC5zdHlsZS5oZWlnaHQgPSAnMTIwcHgnOworICAgIH0KK30KKworZnVuY3Rpb24g
YWRkRmxleFBhY2tKdXN0aWZ5VGVzdCh3cml0aW5nTW9kZSwgZmxleEZsb3csIGRpcmVjdGlvbiwg
ZmxleERpcmVjdGlvbikKK3sKKyAgICB2YXIgZmxleGJveENsYXNzTmFtZSA9IHdyaXRpbmdNb2Rl
ICsgJyAnICsgZGlyZWN0aW9uICsgJyAnICsgZmxleEZsb3c7CisgICAgdmFyIGV4cGVjdGVkID0g
ZXhwZWN0YXRpb25zW3dyaXRpbmdNb2RlXVtmbGV4Rmxvd11bZGlyZWN0aW9uXVszXTsKKyAgICBl
eHBlY3RlZC5zaXplcyA9IFs0MCwgMjAsIDQwXTsKKworICAgIHZhciBmbGV4Ym94ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZmxleGJveC5jbGFzc05hbWUgPSAnZmxleGJv
eCAnICsgZmxleGJveENsYXNzTmFtZTsKKyAgICBzZXRGbGV4Ym94U2l6ZShmbGV4Ym94LCBmbGV4
RGlyZWN0aW9uKTsKKyAgICBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhQYWNrID0gJ2p1c3RpZnkn
OworICAgIGZvciAodmFyIGNoaWxkSW5kZXggPSAxOyBjaGlsZEluZGV4IDw9IDM7ICsrY2hpbGRJ
bmRleCkgeworICAgICAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICAgICAgY2hpbGQuc3R5bGVbZmxleERpcmVjdGlvbl0gPSAnNDBweCc7CisgICAgICAg
IGlmICgyID09IGNoaWxkSW5kZXgpIHsKKyAgICAgICAgICAgIGNoaWxkLnN0eWxlLnBvc2l0aW9u
ID0gJ2Fic29sdXRlJzsKKyAgICAgICAgICAgIGNoaWxkLnN0eWxlW2ZsZXhEaXJlY3Rpb25dID0g
JzIwcHgnOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCd3aWR0aCcgPT0gZmxleERpcmVjdGlv
bikKKyAgICAgICAgICAgIGNoaWxkLnN0eWxlLmhlaWdodCA9ICcyMHB4JzsKKworICAgICAgICBj
aGlsZC5zZXRBdHRyaWJ1dGUoJ2RhdGEtb2Zmc2V0LScgKyAoZmxleERpcmVjdGlvbiA9PSAnd2lk
dGgnID8gJ3gnIDogJ3knKSwgZXhwZWN0ZWQub2Zmc2V0c1tjaGlsZEluZGV4IC0gMV0pOworICAg
ICAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ2RhdGEtZXhwZWN0ZWQtJyArIGZsZXhEaXJlY3Rpb24s
IGV4cGVjdGVkLnNpemVzW2NoaWxkSW5kZXggLSAxXSk7CisgICAgICAgIGZsZXhib3guYXBwZW5k
Q2hpbGQoY2hpbGQpOworICAgIH0KKworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmxl
eGJveCk7Cit9CisKK3dyaXRpbmdNb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHdyaXRpbmdNb2RlKSB7
CisgICAgZmxleEZsb3dzLmZvckVhY2goZnVuY3Rpb24oZmxleEZsb3cpIHsKKyAgICAgICAgZGly
ZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRpcmVjdGlvbikgeworICAgICAgICAgICAgdmFyIGZs
ZXhib3hDbGFzc05hbWUgPSB3cml0aW5nTW9kZSArICcgJyArIGRpcmVjdGlvbiArICcgJyArIGZs
ZXhGbG93OworICAgICAgICAgICAgdmFyIHRpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CisgICAgICAgICAgICB0aXRsZS5jbGFzc05hbWUgPSAndGl0bGUnOworICAgICAgICAg
ICAgdGl0bGUuaW5uZXJIVE1MID0gZmxleGJveENsYXNzTmFtZTsKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQodGl0bGUpOworCisgICAgICAgICAgICB2YXIgZmxleERpcmVj
dGlvbiA9IGdldEZsZXhEaXJlY3Rpb24oZmxleEZsb3csIHdyaXRpbmdNb2RlKTsKKworICAgICAg
ICAgICAgZm9yICh2YXIgYWJzb2x1dGVJbmRleCA9IDE7IGFic29sdXRlSW5kZXggPD0gMzsgKyth
YnNvbHV0ZUluZGV4KSB7CisgICAgICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gZXhwZWN0YXRp
b25zW3dyaXRpbmdNb2RlXVtmbGV4Rmxvd11bZGlyZWN0aW9uXVthYnNvbHV0ZUluZGV4IC0gMV07
CisKKyAgICAgICAgICAgICAgICB2YXIgZmxleGJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworICAgICAgICAgICAgICAgIGZsZXhib3guY2xhc3NOYW1lID0gJ2ZsZXhib3ggJyAr
IGZsZXhib3hDbGFzc05hbWU7CisgICAgICAgICAgICAgICAgc2V0RmxleGJveFNpemUoZmxleGJv
eCwgZmxleERpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgY2hpbGRJbmRleCA9
IDE7IGNoaWxkSW5kZXggPD0gMzsgKytjaGlsZEluZGV4KSB7CisgICAgICAgICAgICAgICAgICAg
IHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAg
ICAgICAgICBjaGlsZC5zdHlsZVtmbGV4RGlyZWN0aW9uXSA9ICctd2Via2l0LWZsZXgoJyArIGNo
aWxkSW5kZXggKyAnKSc7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZEluZGV4ID09IGFi
c29sdXRlSW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5zdHlsZS5wb3NpdGlv
biA9ICdhYnNvbHV0ZSc7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCd3aWR0aCcgPT0gZmxl
eERpcmVjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLnN0eWxlLmhlaWdodCA9
ICcyMHB4JzsKKworICAgICAgICAgICAgICAgICAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ2RhdGEt
b2Zmc2V0LScgKyAoZmxleERpcmVjdGlvbiA9PSAnd2lkdGgnID8gJ3gnIDogJ3knKSwgZXhwZWN0
ZWQub2Zmc2V0c1tjaGlsZEluZGV4IC0gMV0pOworICAgICAgICAgICAgICAgICAgICBjaGlsZC5z
ZXRBdHRyaWJ1dGUoJ2RhdGEtZXhwZWN0ZWQtJyArIGZsZXhEaXJlY3Rpb24sIGV4cGVjdGVkLnNp
emVzW2NoaWxkSW5kZXggLSAxXSk7CisgICAgICAgICAgICAgICAgICAgIGZsZXhib3guYXBwZW5k
Q2hpbGQoY2hpbGQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmxleGJveCk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBhZGRGbGV4UGFja0p1c3RpZnlUZXN0KHdyaXRpbmdNb2RlLCBmbGV4RmxvdywgZGlyZWN0aW9u
LCBmbGV4RGlyZWN0aW9uKTsKKyAgICAgICAgfSkKKyAgICB9KQorfSkKKworPC9zY3JpcHQ+CisK
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120769</attachid>
            <date>2011-12-29 15:07:22 -0800</date>
            <delta_ts>2012-01-09 16:15:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70793-20111229150745.patch</filename>
            <type>text/plain</type>
            <size>23518</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZhZjZhNzhmNDVmN2Uw
YTJlZmM0OWYyNzYyN2E2NzZkMGFmOThiZi4uZWZhZDdkMDliYjY5ODk1MzEzYTMyZThkZDg3YTg2
YzFiMjcyZjQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTEyLTI5ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTmVlZCB0byBoYW5kbGUgYWJz
b2x1dGVseSBwb3NpdGlvbmVkIGVsZW1lbnRzIGluc2lkZSBmbGV4Ym94ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzkzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGNzczMvZmxleGJveC9p
bnNlcnQtdGV4dC1jcmFzaC5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ZsZXhib3gvcG9zaXRp
b24tYWJzb2x1dGUtY2hpbGQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRl
UHJlZmVycmVkTWFpbkF4aXNFeHRlbnQpOiBTa2lwIHBvc2l0aW9uZWQgY2hpbGRyZW4uCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cnVuRnJlZVNwYWNlQWxsb2NhdGlvbkFs
Z29yaXRobSk6IFBvc2l0aW9uZWQgY2hpbGRyZW4gdGFrZSB1cCBubyBmbGV4aW5nIHNwYWNlLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVQYWNraW5nU3BhY2VC
ZXR3ZWVuQ2hpbGRyZW4pOiBTa2lwIHBvc2l0aW9uZWQgY2hpbGRyZW4gZm9yIHBhY2s6IGp1c3Rp
ZnkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cHJlcGFyZUNoaWxkRm9y
UG9zaXRpb25lZExheW91dCk6IE1hcmsgYSBjaGlsZCBhcyBwb3NpdGlvbmVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEFuZFBsYWNlQ2hpbGRyZW4pOiBIYW5k
bGUgcG9zaXRpb25lZCBjaGlsZHJlbiBhbmQgdXBkYXRlIG91ciBwYWNrOiBqdXN0aWZ5IGFtb3Vu
dC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRDb2x1bW5SZXZl
cnNlKTogUGFzcyBpbiBwYWNrOiBqdXN0aWZ5IHNwYWNpbmcuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZsZXhpYmxlQm94Lmg6CisKIDIwMTEtMTItMjkgIEFsZXhpcyBNZW5hcmQgIDxhbGV4
aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgRW5hYmxlIHRoZSBbU3VwcGxlbWVu
dGFsXSBJREwgb24gUXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcAppbmRleCA4ZjZhODY4NGVhNjY3YzFmYTdjZDljZDQyZmI1YTEyMzNiNTg2Yzcz
Li41OTcwMWYxYWVmNzk1N2Q1OTBiMWMyNjExNDg5ZWQwZjM4OTM1NjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJSZW5kZXJGbGV4aWJsZUJveC5oIgogCiAjaW5jbHVkZSAiTGF5b3V0UmVw
YWludGVyLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4OCw2ICs0ODksOSBAQCB2b2lkIFJlbmRl
ckZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVkTWFpbkF4aXNFeHRlbnQoYm9vbCByZWxheW91
dENoaWxkcmVuLCBUcgogCiAgICAgTGF5b3V0VW5pdCBmbGV4Ym94QXZhaWxhYmxlQ29udGVudEV4
dGVudCA9IG1haW5BeGlzQ29udGVudEV4dGVudCgpOwogICAgIGZvciAoUmVuZGVyQm94KiBjaGls
ZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQoKSkgewor
ICAgICAgICBpZiAoY2hpbGQtPmlzUG9zaXRpb25lZCgpKQorICAgICAgICAgICAgY29udGludWU7
CisKICAgICAgICAgaWYgKG1haW5BeGlzTGVuZ3RoRm9yQ2hpbGQoY2hpbGQpLmlzQXV0bygpKSB7
CiAgICAgICAgICAgICBjaGlsZC0+Y2xlYXJPdmVycmlkZVNpemUoKTsKICAgICAgICAgICAgIGlm
ICghcmVsYXlvdXRDaGlsZHJlbikKQEAgLTUyMyw2ICs1MjcsMTEgQEAgYm9vbCBSZW5kZXJGbGV4
aWJsZUJveDo6cnVuRnJlZVNwYWNlQWxsb2NhdGlvbkFsZ29yaXRobShGbGV4T3JkZXJJdGVyYXRv
ciYgaXRlcmEKIAogICAgIExheW91dFVuaXQgZmxleGJveEF2YWlsYWJsZUNvbnRlbnRFeHRlbnQg
PSBtYWluQXhpc0NvbnRlbnRFeHRlbnQoKTsKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBp
dGVyYXRvci5maXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBpdGVyYXRvci5uZXh0KCkpIHsKKyAgICAg
ICAgaWYgKGNoaWxkLT5pc1Bvc2l0aW9uZWQoKSkgeworICAgICAgICAgICAgY2hpbGRTaXplcy5h
cHBlbmQoMCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCiAgICAgICAgIExh
eW91dFVuaXQgY2hpbGRQcmVmZXJyZWRTaXplOwogICAgICAgICBpZiAoaW5mbGV4aWJsZUl0ZW1z
LmNvbnRhaW5zKGNoaWxkKSkKICAgICAgICAgICAgIGNoaWxkUHJlZmVycmVkU2l6ZSA9IGluZmxl
eGlibGVJdGVtcy5nZXQoY2hpbGQpOwpAQCAtNTc1LDEzICs1ODQsNiBAQCBzdGF0aWMgTGF5b3V0
VW5pdCBpbml0aWFsUGFja2luZ09mZnNldChMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVTcGFjZSwg
ZmxvYXQgdG90YQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgTGF5b3V0VW5pdCBwYWNraW5n
U3BhY2VCZXR3ZWVuQ2hpbGRyZW4oTGF5b3V0VW5pdCBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0
IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgRUZsZXhQYWNrIGZsZXhQYWNrLCBzaXplX3QgbnVt
YmVyT2ZDaGlsZHJlbikKLXsKLSAgICBpZiAoaGFzUGFja2luZ1NwYWNlKGF2YWlsYWJsZUZyZWVT
cGFjZSwgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5KSAmJiBmbGV4UGFjayA9PSBQYWNrSnVzdGlm
eSAmJiBudW1iZXJPZkNoaWxkcmVuID4gMSkKLSAgICAgICAgcmV0dXJuIGF2YWlsYWJsZUZyZWVT
cGFjZSAvIChudW1iZXJPZkNoaWxkcmVuIC0gMSk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQg
UmVuZGVyRmxleGlibGVCb3g6OnNldExvZ2ljYWxPdmVycmlkZVNpemUoUmVuZGVyQm94KiBjaGls
ZCwgTGF5b3V0VW5pdCBjaGlsZFByZWZlcnJlZFNpemUpCiB7CiAgICAgLy8gRklYTUU6IFJlbmFt
ZSBzZXRPdmVycmlkZVdpZHRoL3NldE92ZXJyaWRlSGVpZ2h0IHRvIHNldE92ZXJyaWRlTG9naWNh
bFdpZHRoL3NldE92ZXJyaWRlTG9naWNhbEhlaWdodC4KQEAgLTU5MSw4ICs1OTMsNDAgQEAgdm9p
ZCBSZW5kZXJGbGV4aWJsZUJveDo6c2V0TG9naWNhbE92ZXJyaWRlU2l6ZShSZW5kZXJCb3gqIGNo
aWxkLCBMYXlvdXRVbml0IGNoaWwKICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlV2lkdGgoY2hp
bGRQcmVmZXJyZWRTaXplKTsKIH0KIAorTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6Y29t
cHV0ZVBhY2tpbmdTcGFjZUJldHdlZW5DaGlsZHJlbihGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0
b3IsIExheW91dFVuaXQgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCB0b3RhbFBvc2l0aXZlRmxl
eGliaWxpdHkpCit7CisgICAgaWYgKHN0eWxlKCktPmZsZXhQYWNrKCkgIT0gUGFja0p1c3RpZnkg
fHwgIWhhc1BhY2tpbmdTcGFjZShhdmFpbGFibGVGcmVlU3BhY2UsIHRvdGFsUG9zaXRpdmVGbGV4
aWJpbGl0eSkpCisgICAgICAgIHJldHVybiAwOworCisgICAgc2l6ZV90IHBhY2tpbmdDaGlsZHJl
biA9IDA7CisgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gaXRlcmF0b3IuZmlyc3QoKTsgY2hp
bGQ7IGNoaWxkID0gaXRlcmF0b3IubmV4dCgpKQorICAgICAgICBpZiAoIWNoaWxkLT5pc1Bvc2l0
aW9uZWQoKSkKKyAgICAgICAgICAgICsrcGFja2luZ0NoaWxkcmVuOworICAgIGlmIChwYWNraW5n
Q2hpbGRyZW4gPCAyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBhdmFpbGFibGVG
cmVlU3BhY2UgLyAocGFja2luZ0NoaWxkcmVuIC0gMSk7Cit9CisKK3ZvaWQgUmVuZGVyRmxleGli
bGVCb3g6OnByZXBhcmVDaGlsZEZvclBvc2l0aW9uZWRMYXlvdXQoUmVuZGVyQm94KiBjaGlsZCwg
TGF5b3V0VW5pdCBtYWluQXhpc09mZnNldCwgTGF5b3V0VW5pdCBjcm9zc0F4aXNPZmZzZXQpCit7
CisgICAgQVNTRVJUKGNoaWxkLT5pc1Bvc2l0aW9uZWQoKSk7CisgICAgY2hpbGQtPmNvbnRhaW5p
bmdCbG9jaygpLT5pbnNlcnRQb3NpdGlvbmVkT2JqZWN0KGNoaWxkKTsKKyAgICBSZW5kZXJMYXll
ciogY2hpbGRMYXllciA9IGNoaWxkLT5sYXllcigpOworICAgIGNoaWxkTGF5ZXItPnNldFN0YXRp
Y0lubGluZVBvc2l0aW9uKGlzQ29sdW1uRmxvdygpID8gY3Jvc3NBeGlzT2Zmc2V0IDogbWFpbkF4
aXNPZmZzZXQpOyAvLyBGSVhNRTogTm90IHJpZ2h0IGZvciByZWdpb25zLgorCisgICAgTGF5b3V0
VW5pdCBzdGF0aWNCbG9ja1Bvc2l0aW9uID0gaXNDb2x1bW5GbG93KCkgPyBtYWluQXhpc09mZnNl
dCA6IGNyb3NzQXhpc09mZnNldDsKKyAgICBpZiAoY2hpbGRMYXllci0+c3RhdGljQmxvY2tQb3Np
dGlvbigpICE9IHN0YXRpY0Jsb2NrUG9zaXRpb24pIHsKKyAgICAgICAgY2hpbGRMYXllci0+c2V0
U3RhdGljQmxvY2tQb3NpdGlvbihzdGF0aWNCbG9ja1Bvc2l0aW9uKTsKKyAgICAgICAgaWYgKGNo
aWxkLT5zdHlsZSgpLT5oYXNTdGF0aWNCbG9ja1Bvc2l0aW9uKHN0eWxlKCktPmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkpKQorICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQo
dHJ1ZSwgZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0
QW5kUGxhY2VDaGlsZHJlbihGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0b3IsIGNvbnN0IFdURjo6
VmVjdG9yPExheW91dFVuaXQ+JiBjaGlsZFNpemVzLCBMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVT
cGFjZSwgZmxvYXQgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5KQogeworICAgIExheW91dFVuaXQg
cGFja2luZ1NwYWNlQmV0d2VlbkNoaWxkcmVuID0gY29tcHV0ZVBhY2tpbmdTcGFjZUJldHdlZW5D
aGlsZHJlbihpdGVyYXRvciwgYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3RhbFBvc2l0aXZlRmxleGli
aWxpdHkpOworCiAgICAgTGF5b3V0VW5pdCBtYWluQXhpc09mZnNldCA9IGZsb3dBd2FyZUJvcmRl
clN0YXJ0KCkgKyBmbG93QXdhcmVQYWRkaW5nU3RhcnQoKTsKICAgICBtYWluQXhpc09mZnNldCAr
PSBpbml0aWFsUGFja2luZ09mZnNldChhdmFpbGFibGVGcmVlU3BhY2UsIHRvdGFsUG9zaXRpdmVG
bGV4aWJpbGl0eSwgc3R5bGUoKS0+ZmxleFBhY2soKSk7CiAKQEAgLTYwMiw2ICs2MzYsMTAgQEAg
dm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QW5kUGxhY2VDaGlsZHJlbihGbGV4T3JkZXJJ
dGVyYXRvciYgaXRlcmF0b3IsIGNvbnMKICAgICBib29sIHNob3VsZEZsaXBNYWluQXhpcyA9ICFp
c0NvbHVtbkZsb3coKSAmJiAhaXNMZWZ0VG9SaWdodEZsb3coKTsKICAgICBzaXplX3QgaSA9IDA7
CiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gaXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQ7IGNo
aWxkID0gaXRlcmF0b3IubmV4dCgpLCArK2kpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5pc1Bvc2l0
aW9uZWQoKSkgeworICAgICAgICAgICAgcHJlcGFyZUNoaWxkRm9yUG9zaXRpb25lZExheW91dChj
aGlsZCwgbWFpbkF4aXNPZmZzZXQgLSBwYWNraW5nU3BhY2VCZXR3ZWVuQ2hpbGRyZW4gLyAyLCBj
cm9zc0F4aXNPZmZzZXQpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICAg
ICAgTGF5b3V0VW5pdCBjaGlsZFByZWZlcnJlZFNpemUgPSBjaGlsZFNpemVzW2ldICsgbWFpbkF4
aXNCb3JkZXJBbmRQYWRkaW5nRXh0ZW50Rm9yQ2hpbGQoY2hpbGQpOwogICAgICAgICBzZXRMb2dp
Y2FsT3ZlcnJpZGVTaXplKGNoaWxkLCBjaGlsZFByZWZlcnJlZFNpemUpOwogICAgICAgICBjaGls
ZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlKTsKQEAgLTYzMCw3ICs2NjgsNyBAQCB2b2lkIFJl
bmRlckZsZXhpYmxlQm94OjpsYXlvdXRBbmRQbGFjZUNoaWxkcmVuKEZsZXhPcmRlckl0ZXJhdG9y
JiBpdGVyYXRvciwgY29ucwogICAgICAgICBzZXRGbG93QXdhcmVMb2NhdGlvbkZvckNoaWxkKGNo
aWxkLCBjaGlsZExvY2F0aW9uKTsKICAgICAgICAgbWFpbkF4aXNPZmZzZXQgKz0gY2hpbGRNYWlu
RXh0ZW50ICsgZmxvd0F3YXJlTWFyZ2luRW5kRm9yQ2hpbGQoY2hpbGQpOwogCi0gICAgICAgIG1h
aW5BeGlzT2Zmc2V0ICs9IHBhY2tpbmdTcGFjZUJldHdlZW5DaGlsZHJlbihhdmFpbGFibGVGcmVl
U3BhY2UsIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgc3R5bGUoKS0+ZmxleFBhY2soKSwgY2hp
bGRTaXplcy5zaXplKCkpOworICAgICAgICBtYWluQXhpc09mZnNldCArPSBwYWNraW5nU3BhY2VC
ZXR3ZWVuQ2hpbGRyZW47CiAKICAgICAgICAgaWYgKGlzQ29sdW1uRmxvdygpKQogICAgICAgICAg
ICAgc2V0TG9naWNhbEhlaWdodChtYWluQXhpc09mZnNldCk7CkBAIC02NDAsMTMgKzY3OCwxMyBA
QCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRBbmRQbGFjZUNoaWxkcmVuKEZsZXhPcmRl
ckl0ZXJhdG9yJiBpdGVyYXRvciwgY29ucwogICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIGFuIGV4
dHJhIHBhc3MgZm9yIGNvbHVtbi1yZXZlcnNlIHRvIHJlcG9zaXRpb24gdGhlIGZsZXggaXRlbXMg
c2luY2UgdGhlIHN0YXJ0IGRlcGVuZHMKICAgICAgICAgLy8gb24gdGhlIGhlaWdodCBvZiB0aGUg
ZmxleGJveCwgd2hpY2ggd2Ugb25seSBrbm93IGFmdGVyIHdlJ3ZlIHBvc2l0aW9uZWQgYWxsIHRo
ZSBmbGV4IGl0ZW1zLgogICAgICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOwotICAgICAgICBs
YXlvdXRDb2x1bW5SZXZlcnNlKGl0ZXJhdG9yLCBjaGlsZFNpemVzLCBhdmFpbGFibGVGcmVlU3Bh
Y2UsIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSk7CisgICAgICAgIGxheW91dENvbHVtblJldmVy
c2UoaXRlcmF0b3IsIGNoaWxkU2l6ZXMsIGF2YWlsYWJsZUZyZWVTcGFjZSwgdG90YWxQb3NpdGl2
ZUZsZXhpYmlsaXR5LCBwYWNraW5nU3BhY2VCZXR3ZWVuQ2hpbGRyZW4pOwogICAgIH0KIAogICAg
IGFsaWduQ2hpbGRyZW4oaXRlcmF0b3IsIG1heEFzY2VudCk7CiB9CiAKLXZvaWQgUmVuZGVyRmxl
eGlibGVCb3g6OmxheW91dENvbHVtblJldmVyc2UoRmxleE9yZGVySXRlcmF0b3ImIGl0ZXJhdG9y
LCBjb25zdCBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRTaXplcywgTGF5b3V0VW5pdCBh
dmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSkKK3ZvaWQg
UmVuZGVyRmxleGlibGVCb3g6OmxheW91dENvbHVtblJldmVyc2UoRmxleE9yZGVySXRlcmF0b3Im
IGl0ZXJhdG9yLCBjb25zdCBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRTaXplcywgTGF5
b3V0VW5pdCBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0
eSwgTGF5b3V0VW5pdCBwYWNraW5nU3BhY2VCZXR3ZWVuQ2hpbGRyZW4pCiB7CiAgICAgLy8gVGhp
cyBpcyBzaW1pbGFyIHRvIHRoZSBsb2dpYyBpbiBsYXlvdXRBbmRQbGFjZUNoaWxkcmVuLCBleGNl
cHQgd2UgcGxhY2UgdGhlIGNoaWxkcmVuCiAgICAgLy8gc3RhcnRpbmcgZnJvbSB0aGUgZW5kIG9m
IHRoZSBmbGV4Ym94LiBXZSBhbHNvIGRvbid0IG5lZWQgdG8gbGF5b3V0IGFueXRoaW5nIHNpbmNl
IHdlJ3JlCkBAIC02NjUsNyArNzAzLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0
Q29sdW1uUmV2ZXJzZShGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0b3IsIGNvbnN0IFcKICAgICAg
ICAgICAgIGNoaWxkLT5yZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZChvbGRSZWN0KTsKIAogICAg
ICAgICBtYWluQXhpc09mZnNldCAtPSBmbG93QXdhcmVNYXJnaW5TdGFydEZvckNoaWxkKGNoaWxk
KTsKLSAgICAgICAgbWFpbkF4aXNPZmZzZXQgLT0gcGFja2luZ1NwYWNlQmV0d2VlbkNoaWxkcmVu
KGF2YWlsYWJsZUZyZWVTcGFjZSwgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5LCBzdHlsZSgpLT5m
bGV4UGFjaygpLCBjaGlsZFNpemVzLnNpemUoKSk7CisgICAgICAgIG1haW5BeGlzT2Zmc2V0IC09
IHBhY2tpbmdTcGFjZUJldHdlZW5DaGlsZHJlbjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKaW5kZXggZmUwZGZhMjFlYzMxZjJkZWE3
ZDE1Yzk1MDZiN2ZjNTE5NDgzYWI1NC4uYjI2ZjExMzVmZmU1N2Y4MmE4MjQ3MTQ3ZDdkMWQ4OTNh
ZGZkNGNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmgKQEAgLTk2LDggKzk2LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlUHJlZmVycmVk
TWFpbkF4aXNFeHRlbnQoYm9vbCByZWxheW91dENoaWxkcmVuLCBUcmVlT3JkZXJJdGVyYXRvciYs
IExheW91dFVuaXQmLCBmbG9hdCYgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5LCBmbG9hdCYgdG90
YWxOZWdhdGl2ZUZsZXhpYmlsaXR5KTsKICAgICBib29sIHJ1bkZyZWVTcGFjZUFsbG9jYXRpb25B
bGdvcml0aG0oRmxleE9yZGVySXRlcmF0b3ImLCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3Bh
Y2UsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIGZsb2F0JiB0b3RhbE5lZ2F0aXZl
RmxleGliaWxpdHksIEluZmxleGlibGVGbGV4SXRlbVNpemUmLCBXVEY6OlZlY3RvcjxMYXlvdXRV
bml0PiYgY2hpbGRTaXplcyk7CiAgICAgdm9pZCBzZXRMb2dpY2FsT3ZlcnJpZGVTaXplKFJlbmRl
ckJveCogY2hpbGQsIExheW91dFVuaXQgY2hpbGRQcmVmZXJyZWRTaXplKTsKKyAgICBMYXlvdXRV
bml0IGNvbXB1dGVQYWNraW5nU3BhY2VCZXR3ZWVuQ2hpbGRyZW4oRmxleE9yZGVySXRlcmF0b3Im
LCBMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQgdG90YWxQb3NpdGl2ZUZsZXhp
YmlsaXR5KTsKKyAgICB2b2lkIHByZXBhcmVDaGlsZEZvclBvc2l0aW9uZWRMYXlvdXQoUmVuZGVy
Qm94KiBjaGlsZCwgTGF5b3V0VW5pdCBtYWluQXhpc09mZnNldCwgTGF5b3V0VW5pdCBjcm9zc0F4
aXNPZmZzZXQpOwogICAgIHZvaWQgbGF5b3V0QW5kUGxhY2VDaGlsZHJlbihGbGV4T3JkZXJJdGVy
YXRvciYsIGNvbnN0IFdURjo6VmVjdG9yPExheW91dFVuaXQ+JiBjaGlsZFNpemVzLCBMYXlvdXRV
bml0IGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5KTsK
LSAgICB2b2lkIGxheW91dENvbHVtblJldmVyc2UoRmxleE9yZGVySXRlcmF0b3ImLCBjb25zdCBX
VEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRTaXplcywgTGF5b3V0VW5pdCBhdmFpbGFibGVG
cmVlU3BhY2UsIGZsb2F0IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSk7CisgICAgdm9pZCBsYXlv
dXRDb2x1bW5SZXZlcnNlKEZsZXhPcmRlckl0ZXJhdG9yJiwgY29uc3QgV1RGOjpWZWN0b3I8TGF5
b3V0VW5pdD4mIGNoaWxkU2l6ZXMsIExheW91dFVuaXQgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9h
dCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIExheW91dFVuaXQgcGFja2luZ1NwYWNlQmV0d2Vl
bkNoaWxkcmVuKTsKICAgICB2b2lkIGFsaWduQ2hpbGRyZW4oRmxleE9yZGVySXRlcmF0b3ImLCBM
YXlvdXRVbml0IG1heEFzY2VudCk7CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDRiZTk0M2E5NjllZWMyYmRjMjEy
YjY1MzVlMGMwNDFlNDFlZmZmZS4uOGFkNjgwMDVmNzA5ZWYwZDgyMDBkNDMzZTgzNDIzYWM1NWQ2
MzliMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTI5ICBUb255IENoYW5nICA8dG9u
eUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTmVlZCB0byBoYW5kbGUgYWJzb2x1dGVseSBwb3Np
dGlvbmVkIGVsZW1lbnRzIGluc2lkZSBmbGV4Ym94ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvaW5zZXJ0LXRleHQtY3Jhc2gt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvaW5zZXJ0LXRleHQt
Y3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9mbGV4Ym94L3Bvc2l0aW9uLWFic29s
dXRlLWNoaWxkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9mbGV4Ym94L3Bv
c2l0aW9uLWFic29sdXRlLWNoaWxkLmh0bWw6IEFkZGVkLgorCiAyMDExLTEyLTI5ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNDAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZmxleGJveC9pbnNlcnQtdGV4dC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZsZXhib3gvaW5zZXJ0LXRleHQtY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY1NGRkZjdmMTdlZmFiNThlNDJmYWJlMzg1MjU3OTY0YWUyYzVkNDEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvaW5zZXJ0LXRleHQtY3Jhc2gtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jh
c2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvaW5zZXJ0LXRleHQtY3Jh
c2guaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9pbnNlcnQtdGV4dC1jcmFzaC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc4MTBlOGViMjhhMDM3OTE2NDZiOTMyNjUxMjQ1ZDRhOGM2ZTk4YmIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvaW5zZXJ0LXRleHQtY3Jh
c2guaHRtbApAQCAtMCwwICsxLDIwIEBACis8c3R5bGU+CisjZWwyIHsKKyAgICBkaXNwbGF5OiAt
d2Via2l0LWZsZXhib3g7CisgICAgYm9yZGVyOiAxcHggc29saWQgcmVkOworfQorI2VsMyB7Cisg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworfQor
PC9zdHlsZT4KKzxib2R5IGNvbnRlbnRlZGl0YWJsZT10cnVlPgorPGRpdiBpZD0iZWwyIj48ZGl2
IGlkPSJlbDMiPkFBIDwvZGl2PjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3NlbGVjdGFsbCcpCitkb2N1bWVudC5leGVjQ29t
bWFuZCgnaW5zZXJ0dGV4dCcsICcnKQorZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSAiVGhpcyB0
ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4iOworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcG9zaXRpb24tYWJzb2x1dGUtY2hpbGQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3Bvc2l0aW9uLWFic29sdXRlLWNoaWxk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGU5OGVhYTg1MjdkMzg0MWY0MGExM2VjMWYxOTJm
ODdkOWYyYjJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3Bv
c2l0aW9uLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgwIEBACitob3Jp
em9udGFsLXRiIGx0ciByb3cKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK2hvcml6b250YWwtdGIg
cnRsIHJvdworUEFTUworUEFTUworUEFTUworUEFTUworaG9yaXpvbnRhbC10YiBsdHIgY29sdW1u
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitob3Jpem9udGFsLXRiIHJ0bCBjb2x1bW4KK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK2hvcml6b250YWwtYnQgbHRyIHJvdworUEFTUworUEFTUworUEFT
UworUEFTUworaG9yaXpvbnRhbC1idCBydGwgcm93CitQQVNTCitQQVNTCitQQVNTCitQQVNTCito
b3Jpem9udGFsLWJ0IGx0ciBjb2x1bW4KK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK2hvcml6b250
YWwtYnQgcnRsIGNvbHVtbgorUEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtcmwgbHRy
IHJvdworUEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtcmwgcnRsIHJvdworUEFTUwor
UEFTUworUEFTUworUEFTUwordmVydGljYWwtcmwgbHRyIGNvbHVtbgorUEFTUworUEFTUworUEFT
UworUEFTUwordmVydGljYWwtcmwgcnRsIGNvbHVtbgorUEFTUworUEFTUworUEFTUworUEFTUwor
dmVydGljYWwtbHIgbHRyIHJvdworUEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIg
cnRsIHJvdworUEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIgbHRyIGNvbHVtbgor
UEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIgcnRsIGNvbHVtbgorUEFTUworUEFT
UworUEFTUworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3Bvc2l0
aW9uLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcG9zaXRp
b24tYWJzb2x1dGUtY2hpbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWJhOTc1Zjg0NGIwOGJlNTQ5ODBm
NjdlODJkMWRjNzAzNjhmZjA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9m
bGV4Ym94L3Bvc2l0aW9uLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTAsMCArMSwyOTYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDA7Cit9
CisKKy50aXRsZSB7CisgICAgbWFyZ2luLXRvcDogMWVtOworfQorCisuZmxleGJveCB7CisgICAg
ZGlzcGxheTogLXdlYmtpdC1mbGV4Ym94OworICAgIGJhY2tncm91bmQtY29sb3I6ICNhYWE7Cisg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorLmZsZXhib3ggZGl2IHsKKyAgICBib3JkZXI6IDA7
Cit9CisKKy5ob3Jpem9udGFsLXRiIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpv
bnRhbC10YjsKK30KKy5ob3Jpem9udGFsLWJ0IHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTog
aG9yaXpvbnRhbC1idDsKK30KKy52ZXJ0aWNhbC1ybCB7CisgICAgLXdlYmtpdC13cml0aW5nLW1v
ZGU6IHZlcnRpY2FsLXJsOworfQorLnZlcnRpY2FsLWxyIHsKKyAgICAtd2Via2l0LXdyaXRpbmct
bW9kZTogdmVydGljYWwtbHI7Cit9CisKKy5yb3cgeworICAgIC13ZWJraXQtZmxleC1mbG93OiBy
b3c7Cit9Cisucm93LXJldmVyc2UgeworICAgIC13ZWJraXQtZmxleC1mbG93OiByb3ctcmV2ZXJz
ZTsKK30KKy5jb2x1bW4geworICAgIC13ZWJraXQtZmxleC1mbG93OiBjb2x1bW47Cit9CisuY29s
dW1uLXJldmVyc2UgeworICAgIC13ZWJraXQtZmxleC1mbG93OiBjb2x1bW4tcmV2ZXJzZTsKK30K
KworLmZsZXhib3ggOm50aC1jaGlsZCgxKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsK
K30KKy5mbGV4Ym94IDpudGgtY2hpbGQoMikgeworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OworfQorLmZsZXhib3ggOm50aC1jaGlsZCgzKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVk
OworfQorCisucnRsIHsKKyAgICBkaXJlY3Rpb246IHJ0bDsKK30KKy5sdHIgeworICAgIGRpcmVj
dGlvbjogbHRyOworfQorCis8L3N0eWxlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZsZXhib3guanMiPjwvc2NyaXB0PgorPGJv
ZHkgb25sb2FkPSJjaGVja0ZsZXhCb3hlbigpIj4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGdldEZs
ZXhEaXJlY3Rpb24oZmxleEZsb3csIHdyaXRpbmdNb2RlKQoreworICAgIGlmICh3cml0aW5nTW9k
ZS5pbmRleE9mKCdob3Jpem9udGFsJykgIT0gLTEpCisgICAgICAgIHJldHVybiAoZmxleEZsb3cu
aW5kZXhPZigncm93JykgIT0gLTEpID8gJ3dpZHRoJyA6ICdoZWlnaHQnOworICAgIHJldHVybiAo
ZmxleEZsb3cuaW5kZXhPZigncm93JykgIT0gLTEpID8gJ2hlaWdodCcgOiAnd2lkdGgnOworfQor
Cit2YXIgd3JpdGluZ01vZGVzID0gWydob3Jpem9udGFsLXRiJywgJ2hvcml6b250YWwtYnQnLCAn
dmVydGljYWwtcmwnLCAndmVydGljYWwtbHInXTsKKy8vIEZJWE1FOiBBZGQgdGVzdHMgZm9yIHJv
dy1yZXZlcnNlIGFuZCBjb2x1bW4tcmV2ZXJzZS4KK3ZhciBmbGV4Rmxvd3MgPSBbJ3JvdycsICdj
b2x1bW4nXTsKK3ZhciBkaXJlY3Rpb25zID0gWydsdHInLCAncnRsJ107CisKK3ZhciBleHBlY3Rh
dGlvbnMgPSB7CisgICAgJ2hvcml6b250YWwtdGInOiB7CisgICAgICAgIHJvdzogeworICAgICAg
ICAgICAgbHRyOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMCwgMjQwXSwgc2l6
ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAxNTAs
IDE1MF0sIHNpemVzOiBbMTUwLCAwLCA0NTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRz
OiBbMCwgMjAwLCA2MDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAorICAgICAgICAgICAgICAg
IHsgb2Zmc2V0czogWzAsIDMwMCwgNTYwXSB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
cnRsOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNjAwLCAzNjAsIDBdLCBzaXplczog
WzAsIDI0MCwgMzYwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzQ1MCwgNDUwLCAw
XSwgc2l6ZXM6IFsxNTAsIDAsIDQ1MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs0
MDAsIDAsIDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zm
c2V0czogWzU2MCwgMjgwLCAwXSB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAg
IGNvbHVtbjogeworICAgICAgICAgICAgbHRyOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRz
OiBbMCwgMCwgNDhdLCBzaXplczogWzAsIDQ4LCA3Ml0gfSwKKyAgICAgICAgICAgICAgICB7IG9m
ZnNldHM6IFswLCAzMCwgMzBdLCBzaXplczogWzMwLCAwLCA5MF0gfSwKKyAgICAgICAgICAgICAg
ICB7IG9mZnNldHM6IFswLCA0MCwgMTIwXSwgc2l6ZXM6IFs0MCwgODAsIDBdIH0sCisgICAgICAg
ICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNjAsIDgwXSB9CisgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgcnRsOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMCwgNDhdLCBzaXpl
czogWzAsIDQ4LCA3Ml0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAzMCwgMzBd
LCBzaXplczogWzMwLCAwLCA5MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA0
MCwgMTIwXSwgc2l6ZXM6IFs0MCwgODAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRz
OiBbMCwgNjAsIDgwXSB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICB9LAorICAgICdo
b3Jpem9udGFsLWJ0JzogeworICAgICAgICAvLyBUaGlzIG1hdGNoZXMgdGhlIGhvcml6b250YWwt
dGIgdmFsdWVzIGFib3ZlLgorICAgICAgICByb3c6IHsKKyAgICAgICAgICAgIGx0cjogWworICAg
ICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDAsIDI0MF0sIHNpemVzOiBbMCwgMjQwLCAzNjBd
IH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMTUwLCAxNTBdLCBzaXplczogWzE1
MCwgMCwgNDUwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDIwMCwgNjAwXSwg
c2l6ZXM6IFsyMDAsIDQwMCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAz
MDAsIDU2MF0gfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIHJ0bDogWworICAgICAgICAg
ICAgICAgIHsgb2Zmc2V0czogWzYwMCwgMzYwLCAwXSwgc2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwK
KyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs0NTAsIDQ1MCwgMF0sIHNpemVzOiBbMTUwLCAw
LCA0NTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNDAwLCAwLCAwXSwgc2l6ZXM6
IFsyMDAsIDQwMCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs1NjAsIDI4MCwg
MF0gfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICAvLyBob3Jpem9udGFsLWJ0
IGZsaXBzIHRoZSBtYWluIGF4aXMgZGlyZWN0aW9uIHNvIHRoZSBvZmZzZXRzIGFyZSBkaWZmZXJl
bnQgZnJvbSBob3Jpem9udGFsLXRiLgorICAgICAgICBjb2x1bW46IHsKKyAgICAgICAgICAgIGx0
cjogWworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzEyMCwgNzIsIDBdLCBzaXplczogWzAs
IDQ4LCA3Ml0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs5MCwgOTAsIDBdLCBzaXpl
czogWzMwLCAwLCA5MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgMCwgMF0s
IHNpemVzOiBbNDAsIDgwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzgwLCA0
MCwgMF0gfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIHJ0bDogWworICAgICAgICAgICAg
ICAgIHsgb2Zmc2V0czogWzEyMCwgNzIsIDBdLCBzaXplczogWzAsIDQ4LCA3Ml0gfSwKKyAgICAg
ICAgICAgICAgICB7IG9mZnNldHM6IFs5MCwgOTAsIDBdLCBzaXplczogWzMwLCAwLCA5MF0gfSwK
KyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgMCwgMF0sIHNpemVzOiBbNDAsIDgwLCAw
XSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzgwLCA0MCwgMF0gfQorICAgICAgICAg
ICAgXQorICAgICAgICB9CisgICAgfSwKKyAgICAndmVydGljYWwtcmwnOiB7CisgICAgICAgIHJv
dzogeworICAgICAgICAgICAgLy8gVGhlIHNhbWUgYXMgaG9yaXpvbnRhbC10YiArIGNvbHVtbi4K
KyAgICAgICAgICAgIGx0cjogWworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDAsIDQ4
XSwgc2l6ZXM6IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwg
MzAsIDMwXSwgc2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRz
OiBbMCwgNDAsIDEyMF0sIHNpemVzOiBbNDAsIDgwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzAsIDYwLCA4MF0gfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIHJ0bDog
WworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzEyMCwgNzIsIDBdLCBzaXplczogWzAsIDQ4
LCA3Ml0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs5MCwgOTAsIDBdLCBzaXplczog
WzMwLCAwLCA5MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgMCwgMF0sIHNp
emVzOiBbNDAsIDgwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzgwLCA0MCwg
MF0gfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICBjb2x1bW46IHsKKyAgICAg
ICAgICAgIC8vIFRoZSBzYW1lIGFzIGhvcml6b250YWwtdGIgKyByb3cuCisgICAgICAgICAgICBs
dHI6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs2MDAsIDM2MCwgMF0sIHNpemVzOiBb
MCwgMjQwLCAzNjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNDUwLCA0NTAsIDBd
LCBzaXplczogWzE1MCwgMCwgNDUwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzQw
MCwgMCwgMF0sIHNpemVzOiBbMjAwLCA0MDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbNTYwLCAyODAsIDBdIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBydGw6IFsK
KyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs2MDAsIDM2MCwgMF0sIHNpemVzOiBbMCwgMjQw
LCAzNjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNDUwLCA0NTAsIDBdLCBzaXpl
czogWzE1MCwgMCwgNDUwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzQwMCwgMCwg
MF0sIHNpemVzOiBbMjAwLCA0MDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBb
NTYwLCAyODAsIDBdIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIH0sCisgICAgJ3Zl
cnRpY2FsLWxyJzogeworICAgICAgICByb3c6IHsKKyAgICAgICAgICAgIC8vIFRoZSBzYW1lIGFz
IGhvcml6b250YWwtdGIgKyBjb2x1bW4uCisgICAgICAgICAgICBsdHI6IFsKKyAgICAgICAgICAg
ICAgICB7IG9mZnNldHM6IFswLCAwLCA0OF0sIHNpemVzOiBbMCwgNDgsIDcyXSB9LAorICAgICAg
ICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDMwLCAzMF0sIHNpemVzOiBbMzAsIDAsIDkwXSB9LAor
ICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDQwLCAxMjBdLCBzaXplczogWzQwLCA4MCwg
MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA2MCwgODBdIH0KKyAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICBydGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFsx
MjAsIDcyLCAwXSwgc2l6ZXM6IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbOTAsIDkwLCAwXSwgc2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAg
eyBvZmZzZXRzOiBbODAsIDAsIDBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAgICAgICAg
ICAgICB7IG9mZnNldHM6IFs4MCwgNDAsIDBdIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwK
KyAgICAgICAgY29sdW1uOiB7CisgICAgICAgICAgICAvLyBUaGUgc2FtZSBhcyBob3Jpem9udGFs
LWJ0ICsgcm93LgorICAgICAgICAgICAgbHRyOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRz
OiBbMCwgMCwgMjQwXSwgc2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAgICAgICAgICAgICAgICB7
IG9mZnNldHM6IFswLCAxNTAsIDE1MF0sIHNpemVzOiBbMTUwLCAwLCA0NTBdIH0sCisgICAgICAg
ICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjAwLCA2MDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9
LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDMwMCwgNTYwXSB9CisgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgcnRsOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwg
MCwgMjQwXSwgc2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNl
dHM6IFswLCAxNTAsIDE1MF0sIHNpemVzOiBbMTUwLCAwLCA0NTBdIH0sCisgICAgICAgICAgICAg
ICAgeyBvZmZzZXRzOiBbMCwgMjAwLCA2MDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAorICAg
ICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDMwMCwgNTYwXSB9CisgICAgICAgICAgICBdCisg
ICAgICAgIH0KKyAgICB9Cit9OworCitmdW5jdGlvbiBzZXRGbGV4Ym94U2l6ZShmbGV4Ym94LCBm
bGV4RGlyZWN0aW9uKQoreworICAgIGlmICgnd2lkdGgnID09IGZsZXhEaXJlY3Rpb24pIHsKKyAg
ICAgICAgZmxleGJveC5zdHlsZS53aWR0aCA9ICc2MDBweCc7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgZmxleGJveC5zdHlsZS53aWR0aCA9ICcxMDBweCc7CisgICAgICAgIGZsZXhib3guc3R5bGUu
aGVpZ2h0ID0gJzEyMHB4JzsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGFkZEZsZXhQYWNrSnVzdGlm
eVRlc3Qod3JpdGluZ01vZGUsIGZsZXhGbG93LCBkaXJlY3Rpb24sIGZsZXhEaXJlY3Rpb24pCit7
CisgICAgdmFyIGZsZXhib3hDbGFzc05hbWUgPSB3cml0aW5nTW9kZSArICcgJyArIGRpcmVjdGlv
biArICcgJyArIGZsZXhGbG93OworICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGF0aW9uc1t3cml0
aW5nTW9kZV1bZmxleEZsb3ddW2RpcmVjdGlvbl1bM107CisgICAgZXhwZWN0ZWQuc2l6ZXMgPSBb
NDAsIDIwLCA0MF07CisKKyAgICB2YXIgZmxleGJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworICAgIGZsZXhib3guY2xhc3NOYW1lID0gJ2ZsZXhib3ggJyArIGZsZXhib3hDbGFz
c05hbWU7CisgICAgc2V0RmxleGJveFNpemUoZmxleGJveCwgZmxleERpcmVjdGlvbik7CisgICAg
ZmxleGJveC5zdHlsZS53ZWJraXRGbGV4UGFjayA9ICdqdXN0aWZ5JzsKKyAgICBmb3IgKHZhciBj
aGlsZEluZGV4ID0gMTsgY2hpbGRJbmRleCA8PSAzOyArK2NoaWxkSW5kZXgpIHsKKyAgICAgICAg
dmFyIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGNoaWxk
LnN0eWxlW2ZsZXhEaXJlY3Rpb25dID0gJzQwcHgnOworICAgICAgICBpZiAoMiA9PSBjaGlsZElu
ZGV4KSB7CisgICAgICAgICAgICBjaGlsZC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7Cisg
ICAgICAgICAgICBjaGlsZC5zdHlsZVtmbGV4RGlyZWN0aW9uXSA9ICcyMHB4JzsKKyAgICAgICAg
ICAgIGlmICgnaGVpZ2h0JyA9PSBmbGV4RGlyZWN0aW9uKQorICAgICAgICAgICAgICAgIGNoaWxk
LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgnd2lkdGgn
ID09IGZsZXhEaXJlY3Rpb24pCisgICAgICAgICAgICBjaGlsZC5zdHlsZS5oZWlnaHQgPSAnMjBw
eCc7CisKKyAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCdkYXRhLW9mZnNldC0nICsgKGZsZXhE
aXJlY3Rpb24gPT0gJ3dpZHRoJyA/ICd4JyA6ICd5JyksIGV4cGVjdGVkLm9mZnNldHNbY2hpbGRJ
bmRleCAtIDFdKTsKKyAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCdkYXRhLWV4cGVjdGVkLScg
KyBmbGV4RGlyZWN0aW9uLCBleHBlY3RlZC5zaXplc1tjaGlsZEluZGV4IC0gMV0pOworICAgICAg
ICBmbGV4Ym94LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGZsZXhib3gpOworfQorCit3cml0aW5nTW9kZXMuZm9yRWFjaChmdW5jdGlv
bih3cml0aW5nTW9kZSkgeworICAgIGZsZXhGbG93cy5mb3JFYWNoKGZ1bmN0aW9uKGZsZXhGbG93
KSB7CisgICAgICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihkaXJlY3Rpb24pIHsKKyAg
ICAgICAgICAgIHZhciBmbGV4Ym94Q2xhc3NOYW1lID0gd3JpdGluZ01vZGUgKyAnICcgKyBkaXJl
Y3Rpb24gKyAnICcgKyBmbGV4RmxvdzsKKyAgICAgICAgICAgIHZhciB0aXRsZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgdGl0bGUuY2xhc3NOYW1lID0gJ3Rp
dGxlJzsKKyAgICAgICAgICAgIHRpdGxlLmlubmVySFRNTCA9IGZsZXhib3hDbGFzc05hbWU7Cisg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRpdGxlKTsKKworICAgICAgICAg
ICAgdmFyIGZsZXhEaXJlY3Rpb24gPSBnZXRGbGV4RGlyZWN0aW9uKGZsZXhGbG93LCB3cml0aW5n
TW9kZSk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGFic29sdXRlSW5kZXggPSAxOyBhYnNvbHV0
ZUluZGV4IDw9IDM7ICsrYWJzb2x1dGVJbmRleCkgeworICAgICAgICAgICAgICAgIHZhciBleHBl
Y3RlZCA9IGV4cGVjdGF0aW9uc1t3cml0aW5nTW9kZV1bZmxleEZsb3ddW2RpcmVjdGlvbl1bYWJz
b2x1dGVJbmRleCAtIDFdOworCisgICAgICAgICAgICAgICAgdmFyIGZsZXhib3ggPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBmbGV4Ym94LmNsYXNzTmFt
ZSA9ICdmbGV4Ym94ICcgKyBmbGV4Ym94Q2xhc3NOYW1lOworICAgICAgICAgICAgICAgIHNldEZs
ZXhib3hTaXplKGZsZXhib3gsIGZsZXhEaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIGZvciAo
dmFyIGNoaWxkSW5kZXggPSAxOyBjaGlsZEluZGV4IDw9IDM7ICsrY2hpbGRJbmRleCkgeworICAg
ICAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGQuc3R5bGVbZmxleERpcmVjdGlvbl0gPSAnLXdl
YmtpdC1mbGV4KCcgKyBjaGlsZEluZGV4ICsgJyknOworICAgICAgICAgICAgICAgICAgICBpZiAo
Y2hpbGRJbmRleCA9PSBhYnNvbHV0ZUluZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgY2hp
bGQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOworCisgICAgICAgICAgICAgICAgICAgIGlm
ICgnd2lkdGgnID09IGZsZXhEaXJlY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBjaGls
ZC5zdHlsZS5oZWlnaHQgPSAnMjBweCc7CisKKyAgICAgICAgICAgICAgICAgICAgY2hpbGQuc2V0
QXR0cmlidXRlKCdkYXRhLW9mZnNldC0nICsgKGZsZXhEaXJlY3Rpb24gPT0gJ3dpZHRoJyA/ICd4
JyA6ICd5JyksIGV4cGVjdGVkLm9mZnNldHNbY2hpbGRJbmRleCAtIDFdKTsKKyAgICAgICAgICAg
ICAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCdkYXRhLWV4cGVjdGVkLScgKyBmbGV4RGlyZWN0
aW9uLCBleHBlY3RlZC5zaXplc1tjaGlsZEluZGV4IC0gMV0pOworICAgICAgICAgICAgICAgICAg
ICBmbGV4Ym94LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZsZXhib3gpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgYWRkRmxleFBhY2tKdXN0aWZ5VGVzdCh3cml0aW5nTW9kZSwgZmxl
eEZsb3csIGRpcmVjdGlvbiwgZmxleERpcmVjdGlvbik7CisgICAgICAgIH0pCisgICAgfSkKK30p
CisKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121750</attachid>
            <date>2012-01-09 16:15:35 -0800</date>
            <delta_ts>2012-01-10 15:53:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70793-20120109161606.patch</filename>
            <type>text/plain</type>
            <size>29507</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk3NTQ4NGYwY2M1ZTk1
MjZmNTEwYmFkOWEyMDhhZjg2M2ZmZjliZC4uYmI1ZDZmNTM2ZGY5YWM0YjA2OWZiOTllNGEzNzY0
YjFkMzU0Mjk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAxLTA5ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTmVlZCB0byBoYW5kbGUgYWJz
b2x1dGVseSBwb3NpdGlvbmVkIGVsZW1lbnRzIGluc2lkZSBmbGV4Ym94ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzkzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGNzczMvZmxleGJveC9p
bnNlcnQtdGV4dC1jcmFzaC5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ZsZXhib3gvcG9zaXRp
b24tYWJzb2x1dGUtY2hpbGQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRl
UHJlZmVycmVkTWFpbkF4aXNFeHRlbnQpOiBTa2lwIHRoZSBzaXplIG9mIHBvc2l0aW9uZWQgZWxl
bWVudHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cnVuRnJlZVNwYWNl
QWxsb2NhdGlvbkFsZ29yaXRobSk6IEFkZCBwbGFjZWhvbGRlcnMgZm9yIHBvc2l0aW9uZWQgZWxl
bWVudHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cHJlcGFyZUNoaWxk
Rm9yUG9zaXRpb25lZExheW91dCk6IFBvc2l0aW9ucyB0aGUgbGF5ZXIgZm9yIHRoZSBwb3NpdGlv
bmVkIGNoaWxkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEFu
ZFBsYWNlQ2hpbGRyZW4pOiBIYW5kbGUgcG9zaXRpb25lZCBlbGVtZW50cy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRDb2x1bW5SZXZlcnNlKTogQWRqdXN0IHRo
ZSBtYWluIGF4aXMgb2Zmc2V0IG9mIHRoZSBsYXllciBmb3IgcG9zaXRpb25lZCBlbGVtZW50cy4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaDoKKwogMjAxMi0wMS0wOSAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNDQxOC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IGY4Yzc0ZDBiYzRkY2YyN2M2NDU0OGE4ZmNl
MGFjZGI0YzRmZWNmYzkuLjM2MGQzOTM4ZTg0MGY4NjcxMjBjZTI1MzdmNjM3ZTk4ZDlkNDUzZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94LmgiCiAKICNpbmNs
dWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDg4LDYgKzQ4OSw5
IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVQcmVmZXJyZWRNYWluQXhpc0V4dGVu
dChib29sIHJlbGF5b3V0Q2hpbGRyZW4sIFRyCiAKICAgICBMYXlvdXRVbml0IGZsZXhib3hBdmFp
bGFibGVDb250ZW50RXh0ZW50ID0gbWFpbkF4aXNDb250ZW50RXh0ZW50KCk7CiAgICAgZm9yIChS
ZW5kZXJCb3gqIGNoaWxkID0gaXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0gaXRlcmF0
b3IubmV4dCgpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNQb3NpdGlvbmVkKCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKwogICAgICAgICBjaGlsZC0+Y2xlYXJPdmVycmlkZVNpemUoKTsKICAg
ICAgICAgaWYgKG1haW5BeGlzTGVuZ3RoRm9yQ2hpbGQoY2hpbGQpLmlzQXV0bygpKSB7CiAgICAg
ICAgICAgICBpZiAoIXJlbGF5b3V0Q2hpbGRyZW4pCkBAIC01MjMsNiArNTI3LDExIEBAIGJvb2wg
UmVuZGVyRmxleGlibGVCb3g6OnJ1bkZyZWVTcGFjZUFsbG9jYXRpb25BbGdvcml0aG0oRmxleE9y
ZGVySXRlcmF0b3ImIGl0ZXJhCiAKICAgICBMYXlvdXRVbml0IGZsZXhib3hBdmFpbGFibGVDb250
ZW50RXh0ZW50ID0gbWFpbkF4aXNDb250ZW50RXh0ZW50KCk7CiAgICAgZm9yIChSZW5kZXJCb3gq
IGNoaWxkID0gaXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0gaXRlcmF0b3IubmV4dCgp
KSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgICAgIGNo
aWxkU2l6ZXMuYXBwZW5kKDApOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKwog
ICAgICAgICBMYXlvdXRVbml0IGNoaWxkUHJlZmVycmVkU2l6ZTsKICAgICAgICAgaWYgKGluZmxl
eGlibGVJdGVtcy5jb250YWlucyhjaGlsZCkpCiAgICAgICAgICAgICBjaGlsZFByZWZlcnJlZFNp
emUgPSBpbmZsZXhpYmxlSXRlbXMuZ2V0KGNoaWxkKTsKQEAgLTU5MSw2ICs2MDAsMjQgQEAgdm9p
ZCBSZW5kZXJGbGV4aWJsZUJveDo6c2V0TG9naWNhbE92ZXJyaWRlU2l6ZShSZW5kZXJCb3gqIGNo
aWxkLCBMYXlvdXRVbml0IGNoaWwKICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlV2lkdGgoY2hp
bGRQcmVmZXJyZWRTaXplKTsKIH0KIAordm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6cHJlcGFyZUNo
aWxkRm9yUG9zaXRpb25lZExheW91dChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IG1haW5B
eGlzT2Zmc2V0LCBMYXlvdXRVbml0IGNyb3NzQXhpc09mZnNldCkKK3sKKyAgICBBU1NFUlQoY2hp
bGQtPmlzUG9zaXRpb25lZCgpKTsKKyAgICBjaGlsZC0+Y29udGFpbmluZ0Jsb2NrKCktPmluc2Vy
dFBvc2l0aW9uZWRPYmplY3QoY2hpbGQpOworICAgIFJlbmRlckxheWVyKiBjaGlsZExheWVyID0g
Y2hpbGQtPmxheWVyKCk7CisgICAgTGF5b3V0VW5pdCBpbmxpbmVQb3NpdGlvbiA9IGlzQ29sdW1u
RmxvdygpID8gY3Jvc3NBeGlzT2Zmc2V0IDogbWFpbkF4aXNPZmZzZXQ7CisgICAgaWYgKHN0eWxl
KCktPmZsZXhEaXJlY3Rpb24oKSA9PSBGbG93Um93UmV2ZXJzZSkKKyAgICAgICAgaW5saW5lUG9z
aXRpb24gPSBtYWluQXhpc0V4dGVudCgpIC0gbWFpbkF4aXNPZmZzZXQ7CisgICAgY2hpbGRMYXll
ci0+c2V0U3RhdGljSW5saW5lUG9zaXRpb24oaW5saW5lUG9zaXRpb24pOyAvLyBGSVhNRTogTm90
IHJpZ2h0IGZvciByZWdpb25zLgorCisgICAgTGF5b3V0VW5pdCBzdGF0aWNCbG9ja1Bvc2l0aW9u
ID0gaXNDb2x1bW5GbG93KCkgPyBtYWluQXhpc09mZnNldCA6IGNyb3NzQXhpc09mZnNldDsKKyAg
ICBpZiAoY2hpbGRMYXllci0+c3RhdGljQmxvY2tQb3NpdGlvbigpICE9IHN0YXRpY0Jsb2NrUG9z
aXRpb24pIHsKKyAgICAgICAgY2hpbGRMYXllci0+c2V0U3RhdGljQmxvY2tQb3NpdGlvbihzdGF0
aWNCbG9ja1Bvc2l0aW9uKTsKKyAgICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5oYXNTdGF0aWNC
bG9ja1Bvc2l0aW9uKHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpKQorICAgICAg
ICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgZmFsc2UpOworICAgIH0KK30K
Kwogdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QW5kUGxhY2VDaGlsZHJlbihGbGV4T3Jk
ZXJJdGVyYXRvciYgaXRlcmF0b3IsIGNvbnN0IFdURjo6VmVjdG9yPExheW91dFVuaXQ+JiBjaGls
ZFNpemVzLCBMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQgdG90YWxQb3NpdGl2
ZUZsZXhpYmlsaXR5KQogewogICAgIExheW91dFVuaXQgbWFpbkF4aXNPZmZzZXQgPSBmbG93QXdh
cmVCb3JkZXJTdGFydCgpICsgZmxvd0F3YXJlUGFkZGluZ1N0YXJ0KCk7CkBAIC02MDIsNiArNjI5
LDExIEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEFuZFBsYWNlQ2hpbGRyZW4oRmxl
eE9yZGVySXRlcmF0b3ImIGl0ZXJhdG9yLCBjb25zCiAgICAgYm9vbCBzaG91bGRGbGlwTWFpbkF4
aXMgPSAhaXNDb2x1bW5GbG93KCkgJiYgIWlzTGVmdFRvUmlnaHRGbG93KCk7CiAgICAgc2l6ZV90
IGkgPSAwOwogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNo
aWxkOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQoKSwgKytpKSB7CisgICAgICAgIGlmIChjaGlsZC0+
aXNQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgICAgIHByZXBhcmVDaGlsZEZvclBvc2l0aW9uZWRM
YXlvdXQoY2hpbGQsIG1haW5BeGlzT2Zmc2V0LCBjcm9zc0F4aXNPZmZzZXQpOworICAgICAgICAg
ICAgbWFpbkF4aXNPZmZzZXQgKz0gcGFja2luZ1NwYWNlQmV0d2VlbkNoaWxkcmVuKGF2YWlsYWJs
ZUZyZWVTcGFjZSwgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5LCBzdHlsZSgpLT5mbGV4UGFjaygp
LCBjaGlsZFNpemVzLnNpemUoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQog
ICAgICAgICBMYXlvdXRVbml0IGNoaWxkUHJlZmVycmVkU2l6ZSA9IGNoaWxkU2l6ZXNbaV0gKyBt
YWluQXhpc0JvcmRlckFuZFBhZGRpbmdFeHRlbnRGb3JDaGlsZChjaGlsZCk7CiAgICAgICAgIHNl
dExvZ2ljYWxPdmVycmlkZVNpemUoY2hpbGQsIGNoaWxkUHJlZmVycmVkU2l6ZSk7CiAgICAgICAg
IGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUpOwpAQCAtNjU3LDYgKzY4OSwxMSBAQCB2
b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRDb2x1bW5SZXZlcnNlKEZsZXhPcmRlckl0ZXJh
dG9yJiBpdGVyYXRvciwgY29uc3QgVwogICAgIExheW91dFVuaXQgY3Jvc3NBeGlzT2Zmc2V0ID0g
Zmxvd0F3YXJlQm9yZGVyQmVmb3JlKCkgKyBmbG93QXdhcmVQYWRkaW5nQmVmb3JlKCk7CiAgICAg
c2l6ZV90IGkgPSAwOwogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0
KCk7IGNoaWxkOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQoKSwgKytpKSB7CisgICAgICAgIGlmIChj
aGlsZC0+aXNQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgICAgIGNoaWxkLT5sYXllcigpLT5zZXRT
dGF0aWNCbG9ja1Bvc2l0aW9uKG1haW5BeGlzT2Zmc2V0KTsKKyAgICAgICAgICAgIG1haW5BeGlz
T2Zmc2V0IC09IHBhY2tpbmdTcGFjZUJldHdlZW5DaGlsZHJlbihhdmFpbGFibGVGcmVlU3BhY2Us
IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgc3R5bGUoKS0+ZmxleFBhY2soKSwgY2hpbGRTaXpl
cy5zaXplKCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICAgICAgbWFp
bkF4aXNPZmZzZXQgLT0gbWFpbkF4aXNFeHRlbnRGb3JDaGlsZChjaGlsZCkgKyBmbG93QXdhcmVN
YXJnaW5FbmRGb3JDaGlsZChjaGlsZCk7CiAKICAgICAgICAgTGF5b3V0UmVjdCBvbGRSZWN0ID0g
Y2hpbGQtPmZyYW1lUmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsZXhpYmxlQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxl
eGlibGVCb3guaAppbmRleCBmZTBkZmEyMWVjMzFmMmRlYTdkMTVjOTUwNmI3ZmM1MTk0ODNhYjU0
Li5mZDhhMzExM2IxOTE5MjYwZDQ0ZjA2ZmU0MjkxOWJkNjI2Nzc2OWVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApAQCAtOTYsNiArOTYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZE1haW5BeGlzRXh0ZW50KGJvb2wgcmVs
YXlvdXRDaGlsZHJlbiwgVHJlZU9yZGVySXRlcmF0b3ImLCBMYXlvdXRVbml0JiwgZmxvYXQmIHRv
dGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSk7
CiAgICAgYm9vbCBydW5GcmVlU3BhY2VBbGxvY2F0aW9uQWxnb3JpdGhtKEZsZXhPcmRlckl0ZXJh
dG9yJiwgTGF5b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCYgdG90YWxQb3NpdGl2
ZUZsZXhpYmlsaXR5LCBmbG9hdCYgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBJbmZsZXhpYmxl
RmxleEl0ZW1TaXplJiwgV1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMpOwogICAg
IHZvaWQgc2V0TG9naWNhbE92ZXJyaWRlU2l6ZShSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0
IGNoaWxkUHJlZmVycmVkU2l6ZSk7CisgICAgdm9pZCBwcmVwYXJlQ2hpbGRGb3JQb3NpdGlvbmVk
TGF5b3V0KFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgbWFpbkF4aXNPZmZzZXQsIExheW91
dFVuaXQgY3Jvc3NBeGlzT2Zmc2V0KTsKICAgICB2b2lkIGxheW91dEFuZFBsYWNlQ2hpbGRyZW4o
RmxleE9yZGVySXRlcmF0b3ImLCBjb25zdCBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRT
aXplcywgTGF5b3V0VW5pdCBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0IHRvdGFsUG9zaXRpdmVG
bGV4aWJpbGl0eSk7CiAgICAgdm9pZCBsYXlvdXRDb2x1bW5SZXZlcnNlKEZsZXhPcmRlckl0ZXJh
dG9yJiwgY29uc3QgV1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMsIExheW91dFVu
aXQgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkpOwog
ICAgIHZvaWQgYWxpZ25DaGlsZHJlbihGbGV4T3JkZXJJdGVyYXRvciYsIExheW91dFVuaXQgbWF4
QXNjZW50KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA3YmI0YmFmMDAxY2I2YzhkNmFjOTM5MmY5NzQxNzU1MDNiNTAyZGJj
Li4yZDFmMmEwZjdiZDlmMWUzMmU5YTIwNTM2YzI5N2Y4MzBjN2ExZWYzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMDEtMDkgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBOZWVkIHRvIGhhbmRsZSBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgZWxlbWVudHMgaW5z
aWRlIGZsZXhib3hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzA3OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGNzczMvZmxleGJveC9pbnNlcnQtdGV4dC1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGNzczMvZmxleGJveC9pbnNlcnQtdGV4dC1jcmFzaC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcG9zaXRpb24tYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvcG9zaXRpb24tYWJzb2x1dGUtY2hp
bGQuaHRtbDogQWRkZWQuCisKIDIwMTItMDEtMDkgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVcGRhdGUgdGVzdCBleHBlY3Rh
dGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvaW5zZXJ0LXRleHQt
Y3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2luc2VydC10ZXh0
LWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTRkZGY3ZjE3ZWZhYjU4ZTQyZmFiZTM4
NTI1Nzk2NGFlMmM1ZDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L2luc2VydC10ZXh0LWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUaGlzIHRl
c3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9mbGV4Ym94L2luc2VydC10ZXh0LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvaW5zZXJ0LXRleHQtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODEwZThlYjI4YTAzNzkx
NjQ2YjkzMjY1MTI0NWQ0YThjNmU5OGJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9mbGV4Ym94L2luc2VydC10ZXh0LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPHN0
eWxlPgorI2VsMiB7CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4Ym94OworICAgIGJvcmRlcjog
MXB4IHNvbGlkIHJlZDsKK30KKyNlbDMgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCBncmVlbjsKK30KKzwvc3R5bGU+Cis8Ym9keSBjb250ZW50ZWRpdGFi
bGU9dHJ1ZT4KKzxkaXYgaWQ9ImVsMiI+PGRpdiBpZD0iZWwzIj5BQSA8L2Rpdj48L2Rpdj4KKzwv
Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdz
ZWxlY3RhbGwnKQorZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydHRleHQnLCAnJykKK2RvY3Vt
ZW50LmJvZHkuaW5uZXJUZXh0ID0gIlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jh
c2guIjsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3Bv
c2l0aW9uLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZmxl
eGJveC9wb3NpdGlvbi1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ3
ZmM0ZjU3NWY1MzAyZWE0NWU4NWI2ZjYzMjEzMGZjNjQ1MDc0YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZmxleGJveC9wb3NpdGlvbi1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMjQgQEAKK2hvcml6b250YWwtdGIgbHRyIHJvdworUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUworUEFTUworaG9yaXpvbnRhbC10YiBydGwgcm93CitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitob3Jpem9udGFsLXRiIGx0ciBjb2x1bW4KK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK2hvcml6b250YWwtdGIgcnRsIGNvbHVt
bgorUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworaG9yaXpvbnRhbC10YiBsdHIg
cm93LXJldmVyc2UKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK2hvcml6b250
YWwtdGIgcnRsIHJvdy1yZXZlcnNlCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
Citob3Jpem9udGFsLXRiIGx0ciBjb2x1bW4tcmV2ZXJzZQorUEFTUworUEFTUworUEFTUworUEFT
UworUEFTUworUEFTUworaG9yaXpvbnRhbC10YiBydGwgY29sdW1uLXJldmVyc2UKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK2hvcml6b250YWwtYnQgbHRyIHJvdworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUworUEFTUworaG9yaXpvbnRhbC1idCBydGwgcm93CitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitob3Jpem9udGFsLWJ0IGx0ciBjb2x1bW4K
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK2hvcml6b250YWwtYnQgcnRsIGNv
bHVtbgorUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworaG9yaXpvbnRhbC1idCBs
dHIgcm93LXJldmVyc2UKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK2hvcml6
b250YWwtYnQgcnRsIHJvdy1yZXZlcnNlCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitob3Jpem9udGFsLWJ0IGx0ciBjb2x1bW4tcmV2ZXJzZQorUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworaG9yaXpvbnRhbC1idCBydGwgY29sdW1uLXJldmVyc2UKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK3ZlcnRpY2FsLXJsIGx0ciByb3cKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK3ZlcnRpY2FsLXJsIHJ0bCByb3cKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK3ZlcnRpY2FsLXJsIGx0ciBjb2x1bW4KK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK3ZlcnRpY2FsLXJsIHJ0bCBjb2x1bW4K
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK3ZlcnRpY2FsLXJsIGx0ciByb3ct
cmV2ZXJzZQorUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtcmwg
cnRsIHJvdy1yZXZlcnNlCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCit2ZXJ0
aWNhbC1ybCBsdHIgY29sdW1uLXJldmVyc2UKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK3ZlcnRpY2FsLXJsIHJ0bCBjb2x1bW4tcmV2ZXJzZQorUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIgbHRyIHJvdworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIgcnRsIHJvdworUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIgbHRyIGNvbHVtbgorUEFTUworUEFTUworUEFT
UworUEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIgcnRsIGNvbHVtbgorUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworUEFTUwordmVydGljYWwtbHIgbHRyIHJvdy1yZXZlcnNlCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCit2ZXJ0aWNhbC1sciBydGwgcm93LXJldmVy
c2UKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK3ZlcnRpY2FsLWxyIGx0ciBj
b2x1bW4tcmV2ZXJzZQorUEFTUworUEFTUworUEFTUworUEFTUworUEFTUworUEFTUwordmVydGlj
YWwtbHIgcnRsIGNvbHVtbi1yZXZlcnNlCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcG9zaXRpb24tYWJzb2x1
dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9wb3NpdGlvbi1hYnNvbHV0
ZS1jaGlsZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3MTU1ZWQ1NGI1NmUwOGNjMmNkMzY5ZWIzNzIxM2Zj
NGE5MjgzYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcG9z
aXRpb24tYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMCwwICsxLDQ3OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMDsKK30KKworLnRpdGxl
IHsKKyAgICBtYXJnaW4tdG9wOiAxZW07Cit9CisKKy5mbGV4Ym94IHsKKyAgICBkaXNwbGF5OiAt
d2Via2l0LWZsZXhib3g7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI2FhYTsKKyAgICBwb3NpdGlv
bjogcmVsYXRpdmU7Cit9CisuZmxleGJveCBkaXYgeworICAgIGJvcmRlcjogMDsKK30KKworLmhv
cml6b250YWwtdGIgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiOwor
fQorLmhvcml6b250YWwtYnQgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFs
LWJ0OworfQorLnZlcnRpY2FsLXJsIHsKKyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGlj
YWwtcmw7Cit9CisudmVydGljYWwtbHIgeworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0
aWNhbC1scjsKK30KKworLnJvdyB7CisgICAgLXdlYmtpdC1mbGV4LWZsb3c6IHJvdzsKK30KKy5y
b3ctcmV2ZXJzZSB7CisgICAgLXdlYmtpdC1mbGV4LWZsb3c6IHJvdy1yZXZlcnNlOworfQorLmNv
bHVtbiB7CisgICAgLXdlYmtpdC1mbGV4LWZsb3c6IGNvbHVtbjsKK30KKy5jb2x1bW4tcmV2ZXJz
ZSB7CisgICAgLXdlYmtpdC1mbGV4LWZsb3c6IGNvbHVtbi1yZXZlcnNlOworfQorCisuZmxleGJv
eCA6bnRoLWNoaWxkKDEpIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorLmZsZXhi
b3ggOm50aC1jaGlsZCgyKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisuZmxl
eGJveCA6bnRoLWNoaWxkKDMpIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKKy5y
dGwgeworICAgIGRpcmVjdGlvbjogcnRsOworfQorLmx0ciB7CisgICAgZGlyZWN0aW9uOiBsdHI7
Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZmxleGJveC5qcyI+PC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9
ImNoZWNrRmxleEJveGVuKCkiPgorCis8c2NyaXB0PgorZnVuY3Rpb24gZ2V0RmxleERpcmVjdGlv
bihmbGV4Rmxvdywgd3JpdGluZ01vZGUpCit7CisgICAgaWYgKHdyaXRpbmdNb2RlLmluZGV4T2Yo
J2hvcml6b250YWwnKSAhPSAtMSkKKyAgICAgICAgcmV0dXJuIChmbGV4Rmxvdy5pbmRleE9mKCdy
b3cnKSAhPSAtMSkgPyAnd2lkdGgnIDogJ2hlaWdodCc7CisgICAgcmV0dXJuIChmbGV4Rmxvdy5p
bmRleE9mKCdyb3cnKSAhPSAtMSkgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7Cit9CisKK3ZhciB3cml0
aW5nTW9kZXMgPSBbJ2hvcml6b250YWwtdGInLCAnaG9yaXpvbnRhbC1idCcsICd2ZXJ0aWNhbC1y
bCcsICd2ZXJ0aWNhbC1sciddOwordmFyIGZsZXhGbG93cyA9IFsncm93JywgJ2NvbHVtbicsICdy
b3ctcmV2ZXJzZScsICdjb2x1bW4tcmV2ZXJzZSddOwordmFyIGRpcmVjdGlvbnMgPSBbJ2x0cics
ICdydGwnXTsKKwordmFyIGV4cGVjdGF0aW9ucyA9IHsKKyAgICAnaG9yaXpvbnRhbC10Yic6IHsK
KyAgICAgICAgcm93OiB7CisgICAgICAgICAgICBsdHI6IFsKKyAgICAgICAgICAgICAgICB7IG9m
ZnNldHM6IFswLCAwLCAyNDBdLCBzaXplczogWzAsIDI0MCwgMzYwXSB9LAorICAgICAgICAgICAg
ICAgIHsgb2Zmc2V0czogWzAsIDE1MCwgMTUwXSwgc2l6ZXM6IFsxNTAsIDAsIDQ1MF0gfSwKKyAg
ICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAyMDAsIDYwMF0sIHNpemVzOiBbMjAwLCA0MDAs
IDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjYwLCA1NjBdIH0sCisgICAg
ICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMzAwLCA1NjBdIH0sCisgICAgICAgICAgICAgICAg
eyBvZmZzZXRzOiBbMCwgMzAwLCA2MDBdIH0sCisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
cnRsOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNjAwLCAzNjAsIDBdLCBzaXplczog
WzAsIDI0MCwgMzYwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzQ1MCwgNDUwLCAw
XSwgc2l6ZXM6IFsxNTAsIDAsIDQ1MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs0
MDAsIDAsIDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zm
c2V0czogWzU4MCwgMzAwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzU2MCwg
MjgwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzU2MCwgMjYwLCAtMjBdIH0s
CisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICBjb2x1bW46IHsKKyAgICAgICAg
ICAgIGx0cjogWworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDAsIDQ4XSwgc2l6ZXM6
IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMzAsIDMwXSwg
c2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNDAs
IDEyMF0sIHNpemVzOiBbNDAsIDgwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czog
WzAsIDIwLCA4MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA2MCwgODBdIH0s
CisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNjAsIDEyMF0gfSwKKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICBydGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAw
LCA0OF0sIHNpemVzOiBbMCwgNDgsIDcyXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czog
WzAsIDMwLCAzMF0sIHNpemVzOiBbMzAsIDAsIDkwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zm
c2V0czogWzAsIDQwLCAxMjBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAgICAgICAgICAg
ICB7IG9mZnNldHM6IFswLCAyMCwgODBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBb
MCwgNjAsIDgwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDYwLCAxMjBdIH0s
CisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICAncm93LXJldmVyc2UnOiB7Cisg
ICAgICAgICAgICBsdHI6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs2MDAsIDM2MCwg
MF0sIHNpemVzOiBbMCwgMjQwLCAzNjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBb
NDUwLCA0NTAsIDBdLCBzaXplczogWzE1MCwgMCwgNDUwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzQwMCwgMCwgMF0sIHNpemVzOiBbMjAwLCA0MDAsIDBdIH0sCisgICAgICAgICAg
ICAgICAgeyBvZmZzZXRzOiBbNjAwLCAzMDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbNTYwLCAzMDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNTYwLCAy
NjAsIDBdIH0sCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgcnRsOiBbCisgICAgICAgICAg
ICAgICAgeyBvZmZzZXRzOiBbMCwgMCwgMjQwXSwgc2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAg
ICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAxNTAsIDE1MF0sIHNpemVzOiBbMTUwLCAwLCA0
NTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjAwLCA2MDBdLCBzaXplczog
WzIwMCwgNDAwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWy0yMCwgMjYwLCA1
NjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjgwLCA1NjBdIH0sCisgICAg
ICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMzAwLCA1ODBdIH0sCisgICAgICAgICAgICBdLAor
ICAgICAgICB9LAorICAgICAgICAnY29sdW1uLXJldmVyc2UnOiB7CisgICAgICAgICAgICBsdHI6
IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFsxMjAsIDcyLCAwXSwgc2l6ZXM6IFswLCA0
OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbOTAsIDkwLCAwXSwgc2l6ZXM6
IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbODAsIDAsIDBdLCBz
aXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFsxMjAsIDYw
LCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzgwLCA2MCwgMF0gfSwKKyAgICAg
ICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgMjAsIDBdIH0sCisgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgcnRsOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMTIwLCA3MiwgMF0s
IHNpemVzOiBbMCwgNDgsIDcyXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzkwLCA5
MCwgMF0sIHNpemVzOiBbMzAsIDAsIDkwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czog
WzgwLCAwLCAwXSwgc2l6ZXM6IFs0MCwgODAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbMTIwLCA2MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgNjAs
IDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbODAsIDIwLCAwXSB9LAorICAgICAg
ICAgICAgXSwKKyAgICAgICAgfSwKKyAgICB9LAorICAgICdob3Jpem9udGFsLWJ0JzogeworICAg
ICAgICAvLyBUaGlzIG1hdGNoZXMgdGhlIGhvcml6b250YWwtdGIgdmFsdWVzIGFib3ZlLgorICAg
ICAgICByb3c6IHsKKyAgICAgICAgICAgIGx0cjogWworICAgICAgICAgICAgICAgIHsgb2Zmc2V0
czogWzAsIDAsIDI0MF0sIHNpemVzOiBbMCwgMjQwLCAzNjBdIH0sCisgICAgICAgICAgICAgICAg
eyBvZmZzZXRzOiBbMCwgMTUwLCAxNTBdLCBzaXplczogWzE1MCwgMCwgNDUwXSB9LAorICAgICAg
ICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDIwMCwgNjAwXSwgc2l6ZXM6IFsyMDAsIDQwMCwgMF0g
fSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAyNjAsIDU2MF0gfSwKKyAgICAgICAg
ICAgICAgICB7IG9mZnNldHM6IFswLCAzMDAsIDU2MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9m
ZnNldHM6IFswLCAzMDAsIDYwMF0gfSwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBydGw6
IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs2MDAsIDM2MCwgMF0sIHNpemVzOiBbMCwg
MjQwLCAzNjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNDUwLCA0NTAsIDBdLCBz
aXplczogWzE1MCwgMCwgNDUwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzQwMCwg
MCwgMF0sIHNpemVzOiBbMjAwLCA0MDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRz
OiBbNTgwLCAzMDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNTYwLCAyODAs
IDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNTYwLCAyNjAsIC0yMF0gfSwKKyAg
ICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgICAgIC8vIGhvcml6b250YWwtYnQgZmxpcHMg
dGhlIG1haW4gYXhpcyBkaXJlY3Rpb24gc28gdGhlIG9mZnNldHMgYXJlIGRpZmZlcmVudCBmcm9t
IGhvcml6b250YWwtdGIuCisgICAgICAgIGNvbHVtbjogeworICAgICAgICAgICAgbHRyOiBbCisg
ICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMTIwLCA3MiwgMF0sIHNpemVzOiBbMCwgNDgsIDcy
XSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzkwLCA5MCwgMF0sIHNpemVzOiBbMzAs
IDAsIDkwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzgwLCAwLCAwXSwgc2l6ZXM6
IFs0MCwgODAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMTAwLCA2MCwgMF0g
fSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgNDAsIDBdIH0sCisgICAgICAgICAg
ICAgICAgeyBvZmZzZXRzOiBbODAsIDIwLCAtMjBdIH0sCisgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgcnRsOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMTIwLCA3MiwgMF0sIHNp
emVzOiBbMCwgNDgsIDcyXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzkwLCA5MCwg
MF0sIHNpemVzOiBbMzAsIDAsIDkwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzgw
LCAwLCAwXSwgc2l6ZXM6IFs0MCwgODAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRz
OiBbMTAwLCA2MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgNDAsIDBd
IH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbODAsIDIwLCAtMjBdIH0sCisgICAgICAg
ICAgICBdLAorICAgICAgICB9LAorICAgICAgICAncm93LXJldmVyc2UnOiB7CisgICAgICAgICAg
ICBsdHI6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs2MDAsIDM2MCwgMF0sIHNpemVz
OiBbMCwgMjQwLCAzNjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNDUwLCA0NTAs
IDBdLCBzaXplczogWzE1MCwgMCwgNDUwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czog
WzQwMCwgMCwgMF0sIHNpemVzOiBbMjAwLCA0MDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBv
ZmZzZXRzOiBbNjAwLCAzMDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNTYw
LCAzMDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNTYwLCAyNjAsIDBdIH0s
CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgcnRsOiBbCisgICAgICAgICAgICAgICAgeyBv
ZmZzZXRzOiBbMCwgMCwgMjQwXSwgc2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAgICAgICAgICAg
ICAgICB7IG9mZnNldHM6IFswLCAxNTAsIDE1MF0sIHNpemVzOiBbMTUwLCAwLCA0NTBdIH0sCisg
ICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjAwLCA2MDBdLCBzaXplczogWzIwMCwgNDAw
LCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWy0yMCwgMjYwLCA1NjBdIH0sCisg
ICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjgwLCA1NjBdIH0sCisgICAgICAgICAgICAg
ICAgeyBvZmZzZXRzOiBbMCwgMzAwLCA1ODBdIH0sCisgICAgICAgICAgICBdLAorICAgICAgICB9
LAorICAgICAgICAnY29sdW1uLXJldmVyc2UnOiB7CisgICAgICAgICAgICBsdHI6IFsKKyAgICAg
ICAgICAgICAgICB7IG9mZnNldHM6IFswLCAwLCA0OF0sIHNpemVzOiBbMCwgNDgsIDcyXSB9LAor
ICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDMwLCAzMF0sIHNpemVzOiBbMzAsIDAsIDkw
XSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDQwLCAxMjBdLCBzaXplczogWzQw
LCA4MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFstMjAsIDIwLCA4MF0gfSwK
KyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA0MCwgODBdIH0sCisgICAgICAgICAgICAg
ICAgeyBvZmZzZXRzOiBbMCwgNjAsIDEwMF0gfSwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICBydGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAwLCA0OF0sIHNpemVzOiBb
MCwgNDgsIDcyXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDMwLCAzMF0sIHNp
emVzOiBbMzAsIDAsIDkwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDQwLCAx
MjBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFst
MjAsIDIwLCA4MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA0MCwgODBdIH0s
CisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNjAsIDEwMF0gfSwKKyAgICAgICAgICAg
IF0sCisgICAgICAgIH0sCisgICAgfSwKKyAgICAndmVydGljYWwtcmwnOiB7CisgICAgICAgIHJv
dzogeworICAgICAgICAgICAgLy8gVGhlIHNhbWUgYXMgaG9yaXpvbnRhbC10YiArIGNvbHVtbi4K
KyAgICAgICAgICAgIGx0cjogWworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDAsIDQ4
XSwgc2l6ZXM6IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwg
MzAsIDMwXSwgc2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRz
OiBbMCwgNDAsIDEyMF0sIHNpemVzOiBbNDAsIDgwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzAsIDIwLCA4MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA2
MCwgODBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNjAsIDEyMF0gfSwKKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICBydGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNl
dHM6IFsxMjAsIDcyLCAwXSwgc2l6ZXM6IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAg
eyBvZmZzZXRzOiBbOTAsIDkwLCAwXSwgc2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAg
ICAgICAgeyBvZmZzZXRzOiBbODAsIDAsIDBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAg
ICAgICAgICAgICB7IG9mZnNldHM6IFsxMDAsIDYwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzgwLCA0MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwg
MjAsIC0yMF0gfSwKKyAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgICAgIGNvbHVtbjog
eworICAgICAgICAgICAgLy8gVGhlIHNhbWUgYXMgaG9yaXpvbnRhbC10YiArIHJvdy4KKyAgICAg
ICAgICAgIGx0cjogWworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzYwMCwgMzYwLCAwXSwg
c2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs0NTAs
IDQ1MCwgMF0sIHNpemVzOiBbMTUwLCAwLCA0NTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbNDAwLCAwLCAwXSwgc2l6ZXM6IFsyMDAsIDQwMCwgMF0gfSwKKyAgICAgICAgICAgICAg
ICB7IG9mZnNldHM6IFs1ODAsIDMwMCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6
IFs1NjAsIDI4MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs1NjAsIDI2MCwg
LTIwXSB9LAorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIHJ0bDogWworICAgICAgICAgICAg
ICAgIHsgb2Zmc2V0czogWzYwMCwgMzYwLCAwXSwgc2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAg
ICAgICAgICAgICAgICB7IG9mZnNldHM6IFs0NTAsIDQ1MCwgMF0sIHNpemVzOiBbMTUwLCAwLCA0
NTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNDAwLCAwLCAwXSwgc2l6ZXM6IFsy
MDAsIDQwMCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs1ODAsIDMwMCwgMF0g
fSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs1NjAsIDI4MCwgMF0gfSwKKyAgICAgICAg
ICAgICAgICB7IG9mZnNldHM6IFs1NjAsIDI2MCwgLTIwXSB9LAorICAgICAgICAgICAgXSwKKyAg
ICAgICAgfSwKKyAgICAgICAgJ3Jvdy1yZXZlcnNlJzogeworICAgICAgICAgICAgbHRyOiBbCisg
ICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMTIwLCA3MiwgMF0sIHNpemVzOiBbMCwgNDgsIDcy
XSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzkwLCA5MCwgMF0sIHNpemVzOiBbMzAs
IDAsIDkwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzgwLCAwLCAwXSwgc2l6ZXM6
IFs0MCwgODAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMTIwLCA2MCwgMF0g
fSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgNjAsIDBdIH0sCisgICAgICAgICAg
ICAgICAgeyBvZmZzZXRzOiBbODAsIDIwLCAwXSB9LAorICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgIHJ0bDogWworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDAsIDQ4XSwgc2l6ZXM6
IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMzAsIDMwXSwg
c2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNDAs
IDEyMF0sIHNpemVzOiBbNDAsIDgwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czog
Wy0yMCwgMjAsIDgwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDQwLCA4MF0g
fSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA2MCwgMTAwXSB9LAorICAgICAgICAg
ICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgJ2NvbHVtbi1yZXZlcnNlJzogeworICAgICAgICAg
ICAgbHRyOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMCwgMjQwXSwgc2l6ZXM6
IFswLCAyNDAsIDM2MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAxNTAsIDE1
MF0sIHNpemVzOiBbMTUwLCAwLCA0NTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBb
MCwgMjAwLCA2MDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWy0yMCwgMjYwLCA1NjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBb
MCwgMjgwLCA1NjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMzAwLCA1ODBd
IH0sCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgcnRsOiBbCisgICAgICAgICAgICAgICAg
eyBvZmZzZXRzOiBbMCwgMCwgMjQwXSwgc2l6ZXM6IFswLCAyNDAsIDM2MF0gfSwKKyAgICAgICAg
ICAgICAgICB7IG9mZnNldHM6IFswLCAxNTAsIDE1MF0sIHNpemVzOiBbMTUwLCAwLCA0NTBdIH0s
CisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjAwLCA2MDBdLCBzaXplczogWzIwMCwg
NDAwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWy0yMCwgMjYwLCA1NjBdIH0s
CisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjgwLCA1NjBdIH0sCisgICAgICAgICAg
ICAgICAgeyBvZmZzZXRzOiBbMCwgMzAwLCA1ODBdIH0sCisgICAgICAgICAgICBdLAorICAgICAg
ICB9CisgICAgfSwKKyAgICAndmVydGljYWwtbHInOiB7CisgICAgICAgIHJvdzogeworICAgICAg
ICAgICAgLy8gVGhlIHNhbWUgYXMgaG9yaXpvbnRhbC10YiArIGNvbHVtbi4KKyAgICAgICAgICAg
IGx0cjogWworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDAsIDQ4XSwgc2l6ZXM6IFsw
LCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMzAsIDMwXSwgc2l6
ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNDAsIDEy
MF0sIHNpemVzOiBbNDAsIDgwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAs
IDIwLCA4MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA2MCwgODBdIH0sCisg
ICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNjAsIDEyMF0gfSwKKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICBydGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFsxMjAsIDcy
LCAwXSwgc2l6ZXM6IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBb
OTAsIDkwLCAwXSwgc2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbODAsIDAsIDBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7
IG9mZnNldHM6IFsxMDAsIDYwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzgw
LCA0MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFs4MCwgMjAsIC0yMF0gfSwK
KyAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgICAgIGNvbHVtbjogeworICAgICAgICAg
ICAgLy8gVGhlIHNhbWUgYXMgaG9yaXpvbnRhbC1idCArIHJvdy4KKyAgICAgICAgICAgIGx0cjog
WworICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDAsIDI0MF0sIHNpemVzOiBbMCwgMjQw
LCAzNjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMTUwLCAxNTBdLCBzaXpl
czogWzE1MCwgMCwgNDUwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzAsIDIwMCwg
NjAwXSwgc2l6ZXM6IFsyMDAsIDQwMCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6
IFswLCAyNjAsIDU2MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAzMDAsIDU2
MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAzMDAsIDYwMF0gfSwKKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICBydGw6IFsKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6
IFswLCAwLCAyNDBdLCBzaXplczogWzAsIDI0MCwgMzYwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzAsIDE1MCwgMTUwXSwgc2l6ZXM6IFsxNTAsIDAsIDQ1MF0gfSwKKyAgICAgICAg
ICAgICAgICB7IG9mZnNldHM6IFswLCAyMDAsIDYwMF0sIHNpemVzOiBbMjAwLCA0MDAsIDBdIH0s
CisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMjYwLCA1NjBdIH0sCisgICAgICAgICAg
ICAgICAgeyBvZmZzZXRzOiBbMCwgMzAwLCA1NjBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZz
ZXRzOiBbMCwgMzAwLCA2MDBdIH0sCisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAg
ICAncm93LXJldmVyc2UnOiB7CisgICAgICAgICAgICBsdHI6IFsKKyAgICAgICAgICAgICAgICB7
IG9mZnNldHM6IFsxMjAsIDcyLCAwXSwgc2l6ZXM6IFswLCA0OCwgNzJdIH0sCisgICAgICAgICAg
ICAgICAgeyBvZmZzZXRzOiBbOTAsIDkwLCAwXSwgc2l6ZXM6IFszMCwgMCwgOTBdIH0sCisgICAg
ICAgICAgICAgICAgeyBvZmZzZXRzOiBbODAsIDAsIDBdLCBzaXplczogWzQwLCA4MCwgMF0gfSwK
KyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFsxMjAsIDYwLCAwXSB9LAorICAgICAgICAgICAg
ICAgIHsgb2Zmc2V0czogWzgwLCA2MCwgMF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6
IFs4MCwgMjAsIDBdIH0sCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgcnRsOiBbCisgICAg
ICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgMCwgNDhdLCBzaXplczogWzAsIDQ4LCA3Ml0gfSwK
KyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCAzMCwgMzBdLCBzaXplczogWzMwLCAwLCA5
MF0gfSwKKyAgICAgICAgICAgICAgICB7IG9mZnNldHM6IFswLCA0MCwgMTIwXSwgc2l6ZXM6IFs0
MCwgODAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbLTIwLCAyMCwgODBdIH0s
CisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbMCwgNDAsIDgwXSB9LAorICAgICAgICAgICAg
ICAgIHsgb2Zmc2V0czogWzAsIDYwLCAxMDBdIH0sCisgICAgICAgICAgICBdLAorICAgICAgICB9
LAorICAgICAgICAnY29sdW1uLXJldmVyc2UnOiB7CisgICAgICAgICAgICBsdHI6IFsKKyAgICAg
ICAgICAgICAgICB7IG9mZnNldHM6IFs2MDAsIDM2MCwgMF0sIHNpemVzOiBbMCwgMjQwLCAzNjBd
IH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNDUwLCA0NTAsIDBdLCBzaXplczogWzE1
MCwgMCwgNDUwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzQwMCwgMCwgMF0sIHNp
emVzOiBbMjAwLCA0MDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNjAwLCAz
MDAsIDBdIH0sCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNTYwLCAzMDAsIDBdIH0sCisg
ICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNTYwLCAyNjAsIDBdIH0sCisgICAgICAgICAgICBd
LAorICAgICAgICAgICAgcnRsOiBbCisgICAgICAgICAgICAgICAgeyBvZmZzZXRzOiBbNjAwLCAz
NjAsIDBdLCBzaXplczogWzAsIDI0MCwgMzYwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0
czogWzQ1MCwgNDUwLCAwXSwgc2l6ZXM6IFsxNTAsIDAsIDQ1MF0gfSwKKyAgICAgICAgICAgICAg
ICB7IG9mZnNldHM6IFs0MDAsIDAsIDBdLCBzaXplczogWzIwMCwgNDAwLCAwXSB9LAorICAgICAg
ICAgICAgICAgIHsgb2Zmc2V0czogWzYwMCwgMzAwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsg
b2Zmc2V0czogWzU2MCwgMzAwLCAwXSB9LAorICAgICAgICAgICAgICAgIHsgb2Zmc2V0czogWzU2
MCwgMjYwLCAwXSB9LAorICAgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICB9Cit9OworCitm
dW5jdGlvbiBzZXRGbGV4Ym94U2l6ZShmbGV4Ym94LCBmbGV4RGlyZWN0aW9uKQoreworICAgIGlm
ICgnd2lkdGgnID09IGZsZXhEaXJlY3Rpb24pIHsKKyAgICAgICAgZmxleGJveC5zdHlsZS53aWR0
aCA9ICc2MDBweCc7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZmxleGJveC5zdHlsZS53aWR0aCA9
ICcxMDBweCc7CisgICAgICAgIGZsZXhib3guc3R5bGUuaGVpZ2h0ID0gJzEyMHB4JzsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIGFkZEZsZXhQYWNrSnVzdGlmeVRlc3RzKHdyaXRpbmdNb2RlLCBmbGV4
RmxvdywgZGlyZWN0aW9uLCBmbGV4RGlyZWN0aW9uKQoreworICAgIHZhciBmbGV4Ym94Q2xhc3NO
YW1lID0gd3JpdGluZ01vZGUgKyAnICcgKyBkaXJlY3Rpb24gKyAnICcgKyBmbGV4RmxvdzsKKwor
CisgICAgZm9yICh2YXIgYWJzb2x1dGVJbmRleCA9IDE7IGFic29sdXRlSW5kZXggPD0gMzsgKyth
YnNvbHV0ZUluZGV4KSB7CisgICAgICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGF0aW9uc1t3cml0
aW5nTW9kZV1bZmxleEZsb3ddW2RpcmVjdGlvbl1bMiArIGFic29sdXRlSW5kZXhdOworCisgICAg
ICAgIC8vIEFic29sdXRlIGRpdiBpcyAyMHB4LCBvdGhlciBkaXZzIHNob3VsZCBiZSA0MHB4Lgor
ICAgICAgICBleHBlY3RlZC5zaXplcyA9IFs0MCwgNDAsIDQwXTsKKyAgICAgICAgZXhwZWN0ZWQu
c2l6ZXNbYWJzb2x1dGVJbmRleCAtIDFdID0gMjA7CisKKyAgICAgICAgdmFyIGZsZXhib3ggPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgZmxleGJveC5jbGFzc05hbWUg
PSAnZmxleGJveCAnICsgZmxleGJveENsYXNzTmFtZTsKKyAgICAgICAgc2V0RmxleGJveFNpemUo
ZmxleGJveCwgZmxleERpcmVjdGlvbik7CisgICAgICAgIGZsZXhib3guc3R5bGUud2Via2l0Rmxl
eFBhY2sgPSAnanVzdGlmeSc7CisgICAgICAgIGZvciAodmFyIGNoaWxkSW5kZXggPSAxOyBjaGls
ZEluZGV4IDw9IDM7ICsrY2hpbGRJbmRleCkgeworICAgICAgICAgICAgdmFyIGNoaWxkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICBjaGlsZC5zdHlsZVtmbGV4
RGlyZWN0aW9uXSA9ICc0MHB4JzsKKyAgICAgICAgICAgIGlmIChhYnNvbHV0ZUluZGV4ID09IGNo
aWxkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBjaGlsZC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNv
bHV0ZSc7CisgICAgICAgICAgICAgICAgY2hpbGQuc3R5bGVbZmxleERpcmVjdGlvbl0gPSAnMjBw
eCc7CisgICAgICAgICAgICAgICAgaWYgKCdoZWlnaHQnID09IGZsZXhEaXJlY3Rpb24pCisgICAg
ICAgICAgICAgICAgICAgIGNoaWxkLnN0eWxlLndpZHRoID0gJzEwMHB4JzsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaWYgKCd3aWR0aCcgPT0gZmxleERpcmVjdGlvbikKKyAgICAgICAg
ICAgICAgICBjaGlsZC5zdHlsZS5oZWlnaHQgPSAnMjBweCc7CisKKyAgICAgICAgICAgIGNoaWxk
LnNldEF0dHJpYnV0ZSgnZGF0YS1vZmZzZXQtJyArIChmbGV4RGlyZWN0aW9uID09ICd3aWR0aCcg
PyAneCcgOiAneScpLCBleHBlY3RlZC5vZmZzZXRzW2NoaWxkSW5kZXggLSAxXSk7CisgICAgICAg
ICAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ2RhdGEtZXhwZWN0ZWQtJyArIGZsZXhEaXJlY3Rpb24s
IGV4cGVjdGVkLnNpemVzW2NoaWxkSW5kZXggLSAxXSk7CisgICAgICAgICAgICBmbGV4Ym94LmFw
cGVuZENoaWxkKGNoaWxkKTsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZmxleGJveCk7CisgICAgfQorfQorCit3cml0aW5nTW9kZXMuZm9yRWFjaChmdW5j
dGlvbih3cml0aW5nTW9kZSkgeworICAgIGZsZXhGbG93cy5mb3JFYWNoKGZ1bmN0aW9uKGZsZXhG
bG93KSB7CisgICAgICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihkaXJlY3Rpb24pIHsK
KyAgICAgICAgICAgIHZhciBmbGV4Ym94Q2xhc3NOYW1lID0gd3JpdGluZ01vZGUgKyAnICcgKyBk
aXJlY3Rpb24gKyAnICcgKyBmbGV4RmxvdzsKKyAgICAgICAgICAgIHZhciB0aXRsZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgdGl0bGUuY2xhc3NOYW1lID0g
J3RpdGxlJzsKKyAgICAgICAgICAgIHRpdGxlLmlubmVySFRNTCA9IGZsZXhib3hDbGFzc05hbWU7
CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRpdGxlKTsKKworICAgICAg
ICAgICAgdmFyIGZsZXhEaXJlY3Rpb24gPSBnZXRGbGV4RGlyZWN0aW9uKGZsZXhGbG93LCB3cml0
aW5nTW9kZSk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGFic29sdXRlSW5kZXggPSAxOyBhYnNv
bHV0ZUluZGV4IDw9IDM7ICsrYWJzb2x1dGVJbmRleCkgeworICAgICAgICAgICAgICAgIHZhciBl
eHBlY3RlZCA9IGV4cGVjdGF0aW9uc1t3cml0aW5nTW9kZV1bZmxleEZsb3ddW2RpcmVjdGlvbl1b
YWJzb2x1dGVJbmRleCAtIDFdOworCisgICAgICAgICAgICAgICAgdmFyIGZsZXhib3ggPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBmbGV4Ym94LmNsYXNz
TmFtZSA9ICdmbGV4Ym94ICcgKyBmbGV4Ym94Q2xhc3NOYW1lOworICAgICAgICAgICAgICAgIHNl
dEZsZXhib3hTaXplKGZsZXhib3gsIGZsZXhEaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIGZv
ciAodmFyIGNoaWxkSW5kZXggPSAxOyBjaGlsZEluZGV4IDw9IDM7ICsrY2hpbGRJbmRleCkgewor
ICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGQuc3R5bGVbZmxleERpcmVjdGlvbl0gPSAn
LXdlYmtpdC1mbGV4KCcgKyBjaGlsZEluZGV4ICsgJyknOworICAgICAgICAgICAgICAgICAgICBp
ZiAoY2hpbGRJbmRleCA9PSBhYnNvbHV0ZUluZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAg
Y2hpbGQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOworCisgICAgICAgICAgICAgICAgICAg
IGlmICgnd2lkdGgnID09IGZsZXhEaXJlY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBj
aGlsZC5zdHlsZS5oZWlnaHQgPSAnMjBweCc7CisKKyAgICAgICAgICAgICAgICAgICAgY2hpbGQu
c2V0QXR0cmlidXRlKCdkYXRhLW9mZnNldC0nICsgKGZsZXhEaXJlY3Rpb24gPT0gJ3dpZHRoJyA/
ICd4JyA6ICd5JyksIGV4cGVjdGVkLm9mZnNldHNbY2hpbGRJbmRleCAtIDFdKTsKKyAgICAgICAg
ICAgICAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCdkYXRhLWV4cGVjdGVkLScgKyBmbGV4RGly
ZWN0aW9uLCBleHBlY3RlZC5zaXplc1tjaGlsZEluZGV4IC0gMV0pOworICAgICAgICAgICAgICAg
ICAgICBmbGV4Ym94LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZsZXhib3gpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYWRkRmxleFBhY2tKdXN0aWZ5VGVzdHMod3JpdGluZ01vZGUs
IGZsZXhGbG93LCBkaXJlY3Rpb24sIGZsZXhEaXJlY3Rpb24pOworICAgICAgICB9KQorICAgIH0p
Cit9KQorCis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>