<?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>12894</bug_id>
          
          <creation_ts>2007-02-26 04:41:07 -0800</creation_ts>
          <short_desc>animation event handling broken: focusin</short_desc>
          <delta_ts>2011-06-10 22:43:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="jay">jay</reporter>
          <assigned_to name="Rob Buis">rwlbuis</assigned_to>
          <cc>krit</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>21474</commentid>
    <comment_count>0</comment_count>
    <who name="jay">jay</who>
    <bug_when>2007-02-26 04:41:07 -0800</bug_when>
    <thetext>focusin is one of the events supported by SVG1.1
however the webkit implementation isn&apos;t working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21475</commentid>
    <comment_count>1</comment_count>
      <attachid>13376</attachid>
    <who name="jay">jay</who>
    <bug_when>2007-02-26 04:42:12 -0800</bug_when>
    <thetext>Created attachment 13376
animateColor example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21476</commentid>
    <comment_count>2</comment_count>
    <who name="jay">jay</who>
    <bug_when>2007-02-26 04:43:11 -0800</bug_when>
    <thetext>not sure which parts of declarative animation are supported, hence the animateColor testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21477</commentid>
    <comment_count>3</comment_count>
      <attachid>13377</attachid>
    <who name="jay">jay</who>
    <bug_when>2007-02-26 05:03:28 -0800</bug_when>
    <thetext>Created attachment 13377
animateColor example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21481</commentid>
    <comment_count>4</comment_count>
    <who name="jay">jay</who>
    <bug_when>2007-02-26 05:13:11 -0800</bug_when>
    <thetext>event handling is supported, the attachment demonstrates, a time delay, a mouseover and a tab event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411887</commentid>
    <comment_count>5</comment_count>
      <attachid>95269</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-05-28 13:19:22 -0700</bug_when>
    <thetext>Created attachment 95269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411889</commentid>
    <comment_count>6</comment_count>
      <attachid>95269</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-28 13:33:40 -0700</bug_when>
    <thetext>Comment on attachment 95269
Patch

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

&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:66
&gt; +    repaintRect.inflate(object-&gt;style()-&gt;outlineWidth());

Is that covered by an existing test? If not, you need to add a new test (pixel test?).

&gt; Source/WebCore/svg/SVGCircleElement.h:45
&gt; +    virtual bool supportsFocus() const { return true; }

I wonder if this should go to SVGStyledTransformable. Since most childs of this class seem to have it enabled.

&gt; Source/WebCore/svg/SVGTextElement.h:47
&gt; +    virtual bool supportsFocus() const { return true; }

Do tspans need this as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411894</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-05-28 13:37:08 -0700</bug_when>
    <thetext>Another comment. Can you add a test with keyboard inputs? would be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411947</commentid>
    <comment_count>8</comment_count>
      <attachid>95282</attachid>
    <who name="jay">jay</who>
    <bug_when>2011-05-29 01:09:17 -0700</bug_when>
    <thetext>Created attachment 95282
previous testcase buggy ~ 4 years old :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411948</commentid>
    <comment_count>9</comment_count>
    <who name="jay">jay</who>
    <bug_when>2011-05-29 01:17:02 -0700</bug_when>
    <thetext>Dirk,

&apos;tab&apos; key should now animate onfocus circle (Opera wfm)

ie whatever key is used to cycle through links, usually the tabkey

Is it clear that this bug relates to the general case, and not animateColor &amp; focusin in particular? http://www.w3.org/TR/SVG/interact.html#SVGEvents</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411978</commentid>
    <comment_count>10</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-05-29 10:19:04 -0700</bug_when>
    <thetext>Hi Jay,

(In reply to comment #9)
&gt; Dirk,
&gt; 
&gt; &apos;tab&apos; key should now animate onfocus circle (Opera wfm)
&gt; 
&gt; ie whatever key is used to cycle through links, usually the tabkey
&gt; 
&gt; Is it clear that this bug relates to the general case, and not animateColor &amp; focusin in particular? http://www.w3.org/TR/SVG/interact.html#SVGEvents

Yes, my patch is also directed at bug 40545, which is more general.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411984</commentid>
    <comment_count>11</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-05-29 10:54:16 -0700</bug_when>
    <thetext>Hi Dirk,

(In reply to comment #6)
&gt; (From update of attachment 95269 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95269&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:66
&gt; &gt; +    repaintRect.inflate(object-&gt;style()-&gt;outlineWidth());
&gt; 
&gt; Is that covered by an existing test? If not, you need to add a new test (pixel test?).

Not really, still thinking about it.

&gt; &gt; Source/WebCore/svg/SVGCircleElement.h:45
&gt; &gt; +    virtual bool supportsFocus() const { return true; }
&gt; 
&gt; I wonder if this should go to SVGStyledTransformable. Since most childs of this class seem to have it enabled.

But for instance clippath is SVGStyledTransformable but should not have supportsFocus true.

&gt; &gt; Source/WebCore/svg/SVGTextElement.h:47
&gt; &gt; +    virtual bool supportsFocus() const { return true; }
&gt; 
&gt; Do tspans need this as well?

I don&apos;t think so since the code looks at parents for isFocusable(), and so ends up in &lt;text&gt;.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411999</commentid>
    <comment_count>12</comment_count>
      <attachid>95291</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-05-29 12:45:01 -0700</bug_when>
    <thetext>Created attachment 95291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412000</commentid>
    <comment_count>13</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-05-29 12:45:51 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=95291) [details]
&gt; Patch

I included the keyboard focus test as well. Not sure how to test the focus ring change?
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413418</commentid>
    <comment_count>14</comment_count>
      <attachid>95291</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-01 09:04:28 -0700</bug_when>
    <thetext>Comment on attachment 95291
Patch

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

Looks great, I wonder whether this is covered by a SVG 1.1 Second Edition test as well, that you&apos;d want to import here?
Some questions remain, can you explain them:

&gt; Source/WebCore/svg/SVGDefsElement.h:44
&gt; +    virtual bool supportsFocus() const { return true; }

&lt;defs&gt; support focus? How? It&apos;s renderer is &quot;hidden&quot;.

&gt; Source/WebCore/svg/SVGGElement.h:49
&gt; +    virtual bool supportsFocus() const { return true; }

Ditto? How can you ever focus a &quot;group&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416844</commentid>
    <comment_count>15</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-06-07 15:28:37 -0700</bug_when>
    <thetext>Hi Niko,

Oops, I managed to completely miss this :( Not sure if I overlooked it in my inbox or never got the mail :)

(In reply to comment #14)
&gt; (From update of attachment 95291 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95291&amp;action=review
&gt; Looks great, I wonder whether this is covered by a SVG 1.1 Second Edition test as well, that you&apos;d want to import here?

Could well be, Dirk has a spreadsheet for tracking how we do on SVG1.1SE tests. It may be in script-handle-02-b.svg for instance.

&gt; Some questions remain, can you explain them:
&gt; &gt; Source/WebCore/svg/SVGDefsElement.h:44
&gt; &gt; +    virtual bool supportsFocus() const { return true; }
&gt; &lt;defs&gt; support focus? How? It&apos;s renderer is &quot;hidden&quot;.
&gt;
&gt; &gt; Source/WebCore/svg/SVGGElement.h:49
&gt; &gt; +    virtual bool supportsFocus() const { return true; }
&gt; Ditto? How can you ever focus a &quot;group&quot;?

I took both according to the letter of the spec:

http://www.w3.org/TR/SVG/intro.html#TermGraphicalEventAttribute

Both &lt;g&gt; and &lt;defs&gt; have onfocus listed. Now the question is, does supportFocus() determine the visual focus, whether the focus event can be accepted/dispatched or both... With these focus methods it is a bit hard to see how they work together IMHO. Anyway, a &lt;defs&gt; shouldn&apos;t have visual focus for sure, it is not even displayed! I&apos;ll have a look whether Opera supports visual focus on &lt;g&gt;.
Glad you like it! IMHO this is nice stuff to have and would fix some testcases, so hopefully we can land it this week!
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417242</commentid>
    <comment_count>16</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-06-08 08:09:54 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; &lt;defs&gt; support focus? How? It&apos;s renderer is &quot;hidden&quot;.
&gt; &gt;
&gt; &gt; &gt; Source/WebCore/svg/SVGGElement.h:49
&gt; &gt; &gt; +    virtual bool supportsFocus() const { return true; }
&gt; &gt; Ditto? How can you ever focus a &quot;group&quot;?
&gt; 
&gt; I took both according to the letter of the spec:
&gt; 
&gt; http://www.w3.org/TR/SVG/intro.html#TermGraphicalEventAttribute
&gt; 
&gt; Both &lt;g&gt; and &lt;defs&gt; have onfocus listed. Now the question is, does supportFocus() determine the visual focus, whether the focus event can be accepted/dispatched or both... With these focus methods it is a bit hard to see how they work together IMHO. Anyway, a &lt;defs&gt; shouldn&apos;t have visual focus for sure, it is not even displayed! I&apos;ll have a look whether Opera supports visual focus on &lt;g&gt;.

After looking into this further, the &lt;g&gt; seems reasonable to support as being focusable, like in Opera, it has a boundingbox after all and gets delivered focus events. I have to investigate &lt;defs&gt; further, but I doubt it makes much sense. It seems we also need tests(s) to track which elements get delivered focus events and which not...
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418804</commentid>
    <comment_count>17</comment_count>
      <attachid>96764</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-06-10 11:20:55 -0700</bug_when>
    <thetext>Created attachment 96764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418822</commentid>
    <comment_count>18</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-06-10 11:57:16 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Created an attachment (id=96764) [details]
&gt; Patch

This patch has improved tests. Like I though &lt;defs&gt; makes no sense since no visual representation, so I left it out
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418823</commentid>
    <comment_count>19</comment_count>
      <attachid>96764</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-10 11:58:39 -0700</bug_when>
    <thetext>Comment on attachment 96764
Patch

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

Looks good to me, r=me!.

&gt; Source/WebCore/svg/SVGStyledElement.cpp:515
&gt; +    Element* eventTarget = const_cast&lt;SVGStyledElement *&gt;(this);
&gt; +    return eventTarget-&gt;hasEventListeners(eventNames().focusinEvent) || eventTarget-&gt;hasEventListeners(eventNames().focusoutEvent);

A pity _has_EventListeners is non-const, anyhow remove the whitespace between the star and Element in the const_cast please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418845</commentid>
    <comment_count>20</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-06-10 12:43:54 -0700</bug_when>
    <thetext>Committed r88555: &lt;http://trac.webkit.org/changeset/88555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419157</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-10 22:18:01 -0700</bug_when>
    <thetext>GTK &amp; Qt rebaselined landed in http://trac.webkit.org/changeset/88596.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419169</commentid>
    <comment_count>22</comment_count>
    <who name="jay">jay</who>
    <bug_when>2011-06-10 22:43:35 -0700</bug_when>
    <thetext>when is this landing in trunk?

not surprisingly latest nightly Version 5.0.5 (5533.21.1, r88541)
is not fixed afaict</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13376</attachid>
            <date>2007-02-26 04:42:12 -0800</date>
            <delta_ts>2007-02-26 05:03:28 -0800</delta_ts>
            <desc>animateColor example</desc>
            <filename>focusin-webkit.svg</filename>
            <type>image/svg+xml</type>
            <size>1008</size>
            <attacher name="jay">jay</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4xIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyINCiAgICAgeG1sbnM6eGw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQogICAg
IHdpZHRoPSIxMmVtIiBoZWlnaHQ9IjEyZW0iIHZpZXdCb3g9IjAgMCAyNDAgNDgwIj4NCjxnIHRy
YW5zZm9ybT0idHJhbnNsYXRlKDAsMTIwKSI+DQogICAgICA8Y2lyY2xlIHI9IjEwOCIgZmlsbD0i
d2hpdGUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlPSIjMDk5IiBpZD0iZG93biI+DQogICAgICAg
IDxhbmltYXRlQ29sb3IgYXR0cmlidXRlTmFtZT0iZmlsbCIgdmFsdWVzPSJ3aGl0ZTtyZWQ7Ymxh
Y2s7Ymx1ZTt3aGl0ZSIgZHVyPSIxMHMiIHJlcGVhdENvdW50PSJpbmZpbml0ZSIKICAgICBiZWdp
bj0iZG93bi5tb3VzZW92ZXIiLz4NCiAgICAgIDwvY2lyY2xlPg0KICA8L2c+CjxnIHRyYW5zZm9y
bT0idHJhbnNsYXRlKDAsMzYwKSI+DQogICAgICA8YT48Y2lyY2xlIHI9IjEwOCIgZmlsbD0id2hp
dGUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlPSIjMDk5IiBpZD0iZG93bjIiPg0KICAgICAgICA8
YW5pbWF0ZUNvbG9yIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIHZhbHVlcz0id2hpdGU7cmVkO2JsYWNr
O2JsdWU7d2hpdGUiIGR1cj0iMTBzIiByZXBlYXRDb3VudD0iaW5maW5pdGUiCiAgICAgYmVnaW49
ImRvd24yLmZvY3VzaW4iLz4NCiAgICAgIDwvY2lyY2xlPjwvYT4NCiAgPC9nPg0KPGcgdHJhbnNm
b3JtPSJ0cmFuc2xhdGUoMjQwLDEyMCkiPg0KICAgICAgPGNpcmNsZSByPSIxMDgiIGZpbGw9Indo
aXRlIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZT0iIzA5OSIgaWQ9ImRvd24iPg0KICAgICAgICA8
YW5pbWF0ZUNvbG9yIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIHZhbHVlcz0id2hpdGU7cmVkO2JsYWNr
O2JsdWU7d2hpdGUiIGR1cj0iMTBzIiByZXBlYXRDb3VudD0iaW5maW5pdGUiCiAgICAgYmVnaW49
IjVzIi8+DQogICAgICA8L2NpcmNsZT4NCiAgPC9nPg0KPC9zdmc+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13377</attachid>
            <date>2007-02-26 05:03:28 -0800</date>
            <delta_ts>2011-05-29 01:10:29 -0700</delta_ts>
            <desc>animateColor example</desc>
            <filename>focusin-webkit.svg</filename>
            <type>image/svg+xml</type>
            <size>1041</size>
            <attacher name="jay">jay</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyINCiAgICAgeG1sbnM6eGw9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQogICAgIHdpZHRoPSIxMmVtIiBoZWlnaHQ9IjEy
ZW0iIHZpZXdCb3g9IjAgMCAyNDAgNDgwIj4NCjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMTIw
KSI+DQogICAgICA8Y2lyY2xlIHI9IjEwOCIgZmlsbD0id2hpdGUiIHN0cm9rZS13aWR0aD0iNCIg
c3Ryb2tlPSIjMDk5IiBpZD0iZG93biI+DQogICAgICAgIDxhbmltYXRlQ29sb3IgYXR0cmlidXRl
TmFtZT0iZmlsbCIgdmFsdWVzPSJ3aGl0ZTtyZWQ7YmxhY2s7Ymx1ZTt3aGl0ZSIgZHVyPSIxMHMi
IHJlcGVhdENvdW50PSJpbmZpbml0ZSIKICAgICBiZWdpbj0iZG93bi5tb3VzZW92ZXIiLz4NCiAg
ICAgIDwvY2lyY2xlPg0KICA8L2c+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMzYwKSI+DQog
ICAgICA8YT48Y2lyY2xlIHI9IjEwOCIgZmlsbD0id2hpdGUiIHN0cm9rZS13aWR0aD0iNCIgc3Ry
b2tlPSIjMDk5IiBpZD0iZG93bjIiPg0KICAgICAgICA8YW5pbWF0ZUNvbG9yIGF0dHJpYnV0ZU5h
bWU9ImZpbGwiIHZhbHVlcz0id2hpdGU7cmVkO2JsYWNrO2JsdWU7d2hpdGUiIGR1cj0iMTBzIiBy
ZXBlYXRDb3VudD0iaW5maW5pdGUiCiAgICAgYmVnaW49ImRvd24yLmZvY3VzaW4iLz4NCiAgICAg
IDwvY2lyY2xlPjwvYT4NCiAgPC9nPg0KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLDEyMCki
Pg0KICAgICAgPGNpcmNsZSByPSIxMDgiIGZpbGw9IndoaXRlIiBzdHJva2Utd2lkdGg9IjQiIHN0
cm9rZT0iIzA5OSIgaWQ9ImRvd24iPg0KICAgICAgICA8YW5pbWF0ZUNvbG9yIGF0dHJpYnV0ZU5h
bWU9ImZpbGwiIHZhbHVlcz0id2hpdGU7cmVkO2JsYWNrO2JsdWU7d2hpdGUiIGR1cj0iMTBzIiBy
ZXBlYXRDb3VudD0iaW5maW5pdGUiCiAgICAgYmVnaW49IjVzIi8+DQogICAgICA8L2NpcmNsZT4N
CiAgPC9nPg0KPC9zdmc+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95269</attachid>
            <date>2011-05-28 13:19:22 -0700</date>
            <delta_ts>2011-05-29 12:44:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-12894-20110528161906.patch</filename>
            <type>text/plain</type>
            <size>20098</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NjIyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTggQEAKKzIwMTEtMDUtMjggIFJvYiBCdWlz
ICA8cmJ1aXNAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBhbmltYXRpb24gZXZlbnQgaGFuZGxpbmcgYnJva2VuOiBmb2N1c2luCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg5NAorCisgICAg
ICAgIGZvY3VzaW4sIGZvY3Vzb3V0LCBhY3RpdmF0ZSBub3QgaW1wbGVtZW50ZWQgaW4gU1ZHCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDU0NQorCisg
ICAgICAgIE1ha2UgZWxlbWVudHMgdGhhdCBzaG91bGQgc3VwcG9ydCBHcmFwaGljYWxFdmVudEF0
dHJpYnV0ZSBoYW5kbGUgZm9jdXNzaW5nLCBzaW5jZSBmb2N1c2luLCBmb2N1c291dCBpcyBwYXJ0
IG9mIHRoYXQ6CisKKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvaW50cm8uaHRt
bCNUZXJtR3JhcGhpY2FsRXZlbnRBdHRyaWJ1dGUKKworICAgICAgICBNYXRjaCBPcGVyYSBiZWhh
dmlvdXIgOyBlbGVtZW50cyB0aGF0IHN1cHBvcnQgR3JhcGhpY2FsRXZlbnRBdHRyaWJ1dGUgY2Fu
IHJlY2VpdmUgdmlzdWFsIG1vdXNlIGZvY3VzIHdoZW4gaGF2aW5nIGVpdGhlciBhIGZvY3VzaW4g
b3IgZm9jdXNvdXQgZXZlbnQgaGFuZGxlci4KKyAgICAgICAgRWxlbWVudHMgdGhhdCBzdXBwb3J0
IEdyYXBoaWNhbEV2ZW50QXR0cmlidXRlIGNhbiByZWNlaXZlIHZpc3VhbCBrZXlib2FyZCBmb2N1
cyB3aGVuIGhhdmluZyBlaXRoZXIgYSBmb2N1c2luIG9yIGZvY3Vzb3V0IGV2ZW50IGhhbmRsZXIu
IEtleWJvYXJkIGZvY3VzCisgICAgICAgIGRvZXMgbm90IGFkdmFuY2UgdG8gU1ZHIGVsZW1lbnRz
IHRoYXQgYXJlIG5vdCBmb2N1c2FibGUgYXQgdGhlIHRpbWUuCisKKyAgICAgICAgVGVzdDogc3Zn
L2N1c3RvbS9mb2N1cy1ldmVudC1oYW5kbGluZy54aHRtbAorCisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1
cHBvcnQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVs
ZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NpcmNsZUVsZW1lbnQ6OnN1cHBvcnRzRm9j
dXMpOgorICAgICAgICAqIHN2Zy9TVkdEZWZzRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRGVmc0VsZW1lbnQ6OnN1cHBvcnRzRm9jdXMpOgorICAgICAgICAqIHN2Zy9TVkdFbGxpcHNl
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBzZUVsZW1lbnQ6OnN1cHBvcnRz
Rm9jdXMpOgorICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHR0VsZW1lbnQ6OnN1cHBvcnRzRm9jdXMpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6
CisgICAgICAgICogc3ZnL1NWR0xpbmVFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aW5lRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6Cisg
ICAgICAgICogc3ZnL1NWR1BvbHlFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5
RWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR1JlY3RFbGVtZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0RWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAg
ICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1l
bnQ6OnN1cHBvcnRzRm9jdXMpOgorICAgICAgICAqIHN2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZEVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZSk6
CisgICAgICAgICogc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3dp
dGNoRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3dpdGNoRWxlbWVudDo6c3VwcG9y
dHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1N5bWJvbEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMpOgorICAgICAgICAqIHN2Zy9T
VkdUZXh0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dEVsZW1lbnQ6OnN1cHBv
cnRzRm9jdXMpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdVc2VFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKToKKwogMjAxMS0wNS0yOCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWog
U3RhY2hvd2lhay4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcAkocmV2aXNpb24gODc1MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2
ICs2Myw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZVJlY3RGb3JSZXAKICAgICBj
b25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxl
KCk7CiAgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3co
KSkKICAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKKyAg
ICByZXBhaW50UmVjdC5pbmZsYXRlKG9iamVjdC0+c3R5bGUoKS0+b3V0bGluZVdpZHRoKCkpOwog
CiAgICAgLy8gVHJhbnNsYXRlIHRvIGNvb3JkcyBpbiBvdXIgcGFyZW50IHJlbmRlcmVyLCBhbmQg
dGhlbiBjYWxsIGNvbXB1dGVSZWN0Rm9yUmVwYWludCBvbiBvdXIgcGFyZW50CiAgICAgcmVwYWlu
dFJlY3QgPSBvYmplY3QtPmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlcGFpbnRS
ZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAkocmV2aXNpb24g
ODc1MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgU1ZHQ2lyY2xlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Zh
bGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgYm9vbCBp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0RlZnNFbGVtZW50LmgJKHJldmlzaW9uIDg3NTE3KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0RlZnNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgcHJpdmF0
ZToKICAgICBTVkdEZWZzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAg
IHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCShyZXZpc2lvbiA4NzUx
NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgU1ZHRWxsaXBzZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlz
VmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29s
IGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR0VsZW1lbnQuaAkocmV2aXNpb24gODc1MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBwcm90ZWN0ZWQ6CiAK
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdU
ZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUo
QXR0cmlidXRlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCShyZXZp
c2lvbiA4NzUxNykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBwcml2YXRlOgogICAgIFNWR0ltYWdlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAKICAgICB2aXJ0dWFsIGJv
b2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAg
IGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCShyZXZpc2lvbiA4NzUxNykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBA
IHByaXZhdGU6CiAgICAgU1ZHTGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBT
VkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkocmV2
aXNpb24gODc1MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTAwLDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgU1ZHUGF0aEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wg
aXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJv
b2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1
YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2x5RWxlbWVudC5oCShyZXZpc2lvbiA4NzUxNykKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIHBy
b3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNG
b2N1cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVj
dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1l
bnQuaAkocmV2aXNpb24gODc1MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBwcml2YXRlOgogICAgIFNWR1Jl
Y3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIAogICAgIHZp
cnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsg
fQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7
CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCShyZXZpc2lvbiA4NzUxNykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUy
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NWR0VsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQorICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8g
J1NWR1NWR0VsZW1lbnQnIGZ1bmN0aW9ucwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29udGVu
dFNjcmlwdFR5cGUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxl
bWVudC5jcHAJKHJldmlzaW9uIDg3NTE3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxl
ZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
QXR0ci5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCkBAIC01MDYsNiAr
NTA3LDE5IEBAIHZvaWQgU1ZHU3R5bGVkRWxlbWVudDo6dXBkYXRlUmVsYXRpdmVMZW4KICAgICB9
CiB9CiAKK2Jvb2wgU1ZHU3R5bGVkRWxlbWVudDo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0Cit7
CisgICAgaWYgKCFpc0ZvY3VzYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgRWxl
bWVudCogZXZlbnRUYXJnZXQgPSBjb25zdF9jYXN0PFNWR1N0eWxlZEVsZW1lbnQgKj4odGhpcyk7
CisgICAgcmV0dXJuIGV2ZW50VGFyZ2V0LT5oYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCku
Zm9jdXNpbkV2ZW50KSB8fCBldmVudFRhcmdldC0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1l
cygpLmZvY3Vzb3V0RXZlbnQpOworfQorCitib29sIFNWR1N0eWxlZEVsZW1lbnQ6OmlzS2V5Ym9h
cmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzTW91c2VG
b2N1c2FibGUoKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAkocmV2aXNpb24gODc1MTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4
Nyw5IEBAIHByb3RlY3RlZDogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9j
dXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0OworCiAgICAgdm9pZCBidWlsZFBlbmRpbmdSZXNvdXJjZXNJZk5lZWRl
ZCgpIGNvbnN0OwogCiAgICAgSGFzaFNldDxTVkdTdHlsZWRFbGVtZW50Kj4gbV9lbGVtZW50c1dp
dGhSZWxhdGl2ZUxlbmd0aHM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50
LmgJKHJldmlzaW9uIDg3NTE3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBwcml2YXRlOgogICAgIFNWR1N3
aXRjaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgCiAgICAg
dmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgp
OyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikg
Y29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkocmV2aXNp
b24gODc1MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHU3lt
Ym9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAorICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgYm9v
bCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVh
bCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1YWwgdm9p
ZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCShyZXZpc2lvbiA4NzUxNykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw4IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KKwogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShB
dHRyaWJ1dGUqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCShyZXZpc2lv
biA4NzUxNykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU0LDYgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBTVkdVc2VFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQo
KSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21E
b2N1bWVudCgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODc2MjIpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0wNS0yOCAgUm9iIEJ1
aXMgIDxyYnVpc0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGFuaW1hdGlvbiBldmVudCBoYW5kbGluZyBicm9rZW46IGZvY3VzaW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODk0CisKKyAg
ICAgICAgZm9jdXNpbiwgZm9jdXNvdXQsIGFjdGl2YXRlIG5vdCBpbXBsZW1lbnRlZCBpbiBTVkcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNTQ1CisK
KyAgICAgICAgVGVzdCB3aGV0aGVyIGZvY3VzaW4gYW5kIGZvY3Vzb3V0IGV2ZW50cyBhcmUgZGlz
cGF0Y2hlZCBhbmQgc2VlbiBpbiB0aGUgZm9jdXNpbi9mb2N1c291dCBldmVudCBoYW5kbGVycy4K
KworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN2Zy9jdXN0b20vZm9jdXMtZXZlbnQtaGFuZGxpbmcueGh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vcmVzb3VyY2VzL2ZvY3VzLWV2ZW50LWhhbmRsaW5n
LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvY3VzaW5IYW5kbGVyKToKKyAgICAgICAgKGZvY3Vzb3V0
SGFuZGxlcik6CisKIDIwMTEtMDUtMjggIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA4NzUxNykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDMx
ICsyLDMxIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDEwLDEwKSBzaXplIDQzN3g1MjcKLSAgICBSZW5kZXJTVkdQYXRoIHtj
aXJjbGV9IGF0ICgxNSwxMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkE1MDBdfV0gW2N4PTY1LjAwXSBbY3k9NjAuMDBdIFtyPTUwLjAwXQotICAgIFJlbmRlclNW
R1BhdGgge3BhdGh9IGF0ICgxNDAsMTApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkZBNTAwXX1dIFtkYXRhPSJNIDE0MCAxMCBMIDE5MCAxMTAgTCAyNDAgNjAgTCAy
MjAgNjAgTCAyMDAgMzAgWiJdCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjcwLDEw
KSBzaXplIDEwMHgxMDAKLSAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgyNzAsMTApIHNp
emUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZBNTAwXX1dIFt4PTI3MC4w
MF0gW3k9MTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQorICAgIFJlbmRlclNW
R1BhdGgge2NpcmNsZX0gYXQgKDEwLDUpIHNpemUgMTEweDExMCBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkZBNTAwXX1dIFtjeD02NS4wMF0gW2N5PTYwLjAwXSBbcj01MC4wMF0KKyAgICBS
ZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoMTM1LDUpIHNpemUgMTEweDExMCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkZBNTAwXX1dIFtkYXRhPSJNIDE0MCAxMCBMIDE5MCAxMTAgTCAyNDAg
NjAgTCAyMjAgNjAgTCAyMDAgMzAgWiJdCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MjY1LDUpIHNpemUgMTEweDExMAorICAgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDI2NSw1
KSBzaXplIDExMHgxMTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQTUwMF19XSBbeD0y
NzAuMDBdIFt5PTEwLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICgxMCwxNDApIHNpemUgMTM3eDEzNyBbdHJhbnNmb3JtPXtt
PSgoMC44NywwLjUwKSgtMC41MCwwLjg3KSkgdD0oNjAuMDAsMTQwLjAwKX1dCi0gICAgICBSZW5k
ZXJTVkdQYXRoIHtyZWN0fSBhdCAoMTAsMTQwKSBzaXplIDEzN3gxMzcgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0ZGQTUwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBb
aGVpZ2h0PTEwMC4wMF0KLSAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMTUwLDE0MCkgc2l6
ZSAxMzd4MTM3IFt0cmFuc2Zvcm09e209KCgwLjg3LDAuNTApKC0wLjUwLDAuODcpKSB0PSgyMDAu
MDAsMTQwLjAwKX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkE1MDBdfV0gW3g9MC4w
MF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMzEwLDE0MCkgc2l6ZSAxMzd4MTM3Ci0gICAgICBSZW5kZXJTVkdQ
YXRoIHtyZWN0fSBhdCAoMzEwLDE0MCkgc2l6ZSAxMzd4MTM3IFt0cmFuc2Zvcm09e209KCgwLjg3
LDAuNTApKC0wLjUwLDAuODcpKSB0PSgzNjAuMDAsMTQwLjAwKX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRkE1MDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hl
aWdodD0xMDAuMDBdCisgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMywxMzMpIHNpemUg
MTUxeDE1MSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZBNTAwXX1dIFt4PTAuMDBdIFt5
PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQorICAgIFJlbmRlclNWR1BhdGgg
e3JlY3R9IGF0ICgxNDMsMTMzKSBzaXplIDE1MXgxNTEgW3RyYW5zZm9ybT17bT0oKDAuODcsMC41
MCkoLTAuNTAsMC44NykpIHQ9KDIwMC4wMCwxNDAuMDApfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0ZGQTUwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0
PTEwMC4wMF0KKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMDUsMTM1KSBzaXplIDE0
N3gxNDcKKyAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgzMDUsMTM1KSBzaXplIDE0N3gx
NDcgW3RyYW5zZm9ybT17bT0oKDAuODcsMC41MCkoLTAuNTAsMC44NykpIHQ9KDM2MC4wMCwxNDAu
MDApfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQTUwMF19XSBbeD0wLjAwXSBbeT0w
LjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KICAgICBSZW5kZXJTVkdUZXh0IHt0
ZXh0fSBhdCAoMTAsMzA2KSBzaXplIDc2eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJl
bmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc2eDE4CiAgICAgICAgIGNo
dW5rIDEgdGV4dCBydW4gMSBhdCAoMTAuMDAsMzIwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNl
dCAxMiB3aWR0aCA3Ni4wMDogImZvY3VzZWQgdGV4dCIKICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0
fSBhdCAoMCwtMTQpIHNpemUgNzZ4MTggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgUmVuZGVy
U1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzZ4MTgKICAgICAgICAgY2h1bmsg
MSB0ZXh0IHJ1biAxIGF0ICgwLjAwLDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEyIHdp
ZHRoIDc2LjAwOiAiZm9jdXNlZCB0ZXh0IgotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDE5OCwzMDcpIHNpemUgNzV4NTUKKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxOTMs
MzAyKSBzaXplIDg1eDY1CiAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCwtMTQpIHNp
emUgNzZ4MTggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NngxOAogICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4g
MSBhdCAoMC4wMCwwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxMiB3aWR0aCA3Ni4wMDog
ImZvY3VzZWQgdGV4dCIKICAgICBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIge2NsaXBQYXRofSBb
aWQ9ImNsaXAiXSBbY2xpcFBhdGhVbml0cz11c2VyU3BhY2VPblVzZV0KICAgICAgIFJlbmRlclNW
R1BhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9
MTAwLjAwXQotICAgIFJlbmRlclNWR0ltYWdlIHtpbWFnZX0gYXQgKDAsMCkgc2l6ZSAweDAKKyAg
ICBSZW5kZXJTVkdJbWFnZSB7aW1hZ2V9IGF0ICgwLDApIHNpemUgNXg1CiAgICAgICBbY2xpcFBh
dGg9ImNsaXAiXSBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIge2NsaXBQYXRofSBhdCAoMCwwKSBz
aXplIDEwMHgxMDAKLSAgICBSZW5kZXJTVkdJbWFnZSB7aW1hZ2V9IGF0ICgxNTAsNDAwKSBzaXpl
IDEzN3gxMzcgW3RyYW5zZm9ybT17bT0oKDAuODcsMC41MCkoLTAuNTAsMC44NykpIHQ9KDIwMC4w
MCw0MDAuMDApfV0KKyAgICBSZW5kZXJTVkdJbWFnZSB7aW1hZ2V9IGF0ICgxNDMsMzkzKSBzaXpl
IDE1MXgxNTEgW3RyYW5zZm9ybT17bT0oKDAuODcsMC41MCkoLTAuNTAsMC44NykpIHQ9KDIwMC4w
MCw0MDAuMDApfV0KICAgICAgIFtjbGlwUGF0aD0iY2xpcCJdIFJlbmRlclNWR1Jlc291cmNlQ2xp
cHBlciB7Y2xpcFBhdGh9IGF0ICgwLDApIHNpemUgMTAweDEwMAotICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDMxMCw0MDApIHNpemUgMTM3eDEzNyBbdHJhbnNmb3JtPXttPSgoMC44Nyww
LjUwKSgtMC41MCwwLjg3KSkgdD0oMzYwLjAwLDQwMC4wMCl9XQotICAgICAgUmVuZGVyU1ZHSW1h
Z2Uge2ltYWdlfSBhdCAoMzEwLDQwMCkgc2l6ZSAxMzd4MTM3CisgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMzAzLDM5Mykgc2l6ZSAxNTF4MTUxIFt0cmFuc2Zvcm09e209KCgwLjg3LDAu
NTApKC0wLjUwLDAuODcpKSB0PSgzNjAuMDAsNDAwLjAwKX1dCisgICAgICBSZW5kZXJTVkdJbWFn
ZSB7aW1hZ2V9IGF0ICgzMDMsMzkzKSBzaXplIDE1MXgxNTEKICAgICAgICAgW2NsaXBQYXRoPSJj
bGlwIl0gUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIHtjbGlwUGF0aH0gYXQgKDAsMCkgc2l6ZSAx
MDB4MTAwCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvY3VzLWV2ZW50LWhhbmRsaW5n
LnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9jdXMtZXZlbnQt
aGFuZGxpbmcueGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2Zv
Y3VzLWV2ZW50LWhhbmRsaW5nLnhodG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHN2ZyB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CisgIDxyZWN0IGlkPSJyZWN0MSIgd2lk
dGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+CisgIDxyZWN0IGlkPSJyZWN0MiIg
eD0iMTAwIiB5PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgor
PC9zdmc+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVz
b3VyY2VzL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9jdXN0b20vcmVzb3VyY2VzL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvZm9jdXMtZXZlbnQtaGFuZGxp
bmcuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKK3ZhciBmb2N1c2luU2VlbiA9IGZh
bHNlOwordmFyIGZvY3Vzb3V0U2VlbiA9IGZhbHNlOwordmFyIHJlY3RFbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlY3QxIik7CitkZXNjcmlwdGlvbigiVGVzdCB3aGV0aGVyIGZv
Y3VzaW4gYW5kIGZvY3Vzb3V0IGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBhbmQgc2VlbiBpbiB0aGUg
Zm9jdXNpbi9mb2N1c291dCBldmVudCBoYW5kbGVyczogIik7CisKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworCitmdW5jdGlvbiBmb2N1c2luSGFuZGxlcihldnQpCit7CisgICAgZm9jdXNpblNlZW4gPSB0
cnVlOworfQorCitmdW5jdGlvbiBmb2N1c291dEhhbmRsZXIoZXZ0KQoreworICAgIGZvY3Vzb3V0
U2VlbiA9IHRydWU7Cit9CisKK3JlY3RFbGVtZW50LnNldEF0dHJpYnV0ZSgib25mb2N1c2luIiwg
ImZvY3VzaW5IYW5kbGVyKGV2dCkiKTsKK3JlY3RFbGVtZW50LnNldEF0dHJpYnV0ZSgib25mb2N1
c291dCIsICJmb2N1c291dEhhbmRsZXIoZXZ0KSIpOworCitpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7CisKKyAgICAvLyBjYXVzZSBmb2N1c2luCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
NTAsIDUwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CisKKyAgICAvLyBjYXVzZSBmb2N1c291dAorICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKDE1MCwgMTUwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICBzaG91bGRCZVRydWUoImZvY3VzaW5TZWVuIik7Cisg
ICAgc2hvdWxkQmVUcnVlKCJmb2N1c291dFNlZW4iKTsKKworICAgIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9IGVsc2UKKyAgICBhbGVydCgi
VGhpcyB0ZXN0IG11c3QgYmUgcnVuIHZpYSBEUlQhIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>95282</attachid>
            <date>2011-05-29 01:09:17 -0700</date>
            <delta_ts>2011-05-29 01:09:17 -0700</delta_ts>
            <desc>previous testcase buggy ~ 4 years old :)</desc>
            <filename>focusin.svg</filename>
            <type>image/svg+xml</type>
            <size>943</size>
            <attacher name="jay">jay</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyINCiAgICAgeG1sbnM6eGw9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQogdmlld0JveD0iMCAwIDI0MCA0ODAiPg0KDQog
ICAgICA8Y2lyY2xlIHI9IjEwOCIgY3g9IjAiIGN5PSIxMjAiIGZpbGw9IndoaXRlIiBzdHJva2Ut
d2lkdGg9IjQiIHN0cm9rZT0iIzA5OSIgaWQ9Im92ZXIiPg0KICAgICAgICA8YW5pbWF0ZUNvbG9y
IGF0dHJpYnV0ZU5hbWU9ImZpbGwiIHZhbHVlcz0id2hpdGU7cmVkO2JsYWNrO2JsdWU7d2hpdGUi
IGR1cj0iMTBzIiByZXBlYXRDb3VudD0iaW5maW5pdGUiDQogICAgIGJlZ2luPSJvdmVyLm1vdXNl
b3ZlciIvPg0KICAgICAgPC9jaXJjbGU+DQoNCiAgICAgIDxjaXJjbGUgcj0iMTA4IiBjeD0iMjQw
IiBjeT0iMTIwIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2U9IiMwOTkiIGlk
PSJ0aW1lZCI+DQogICAgICAgIDxhbmltYXRlQ29sb3IgYXR0cmlidXRlTmFtZT0iZmlsbCIgdmFs
dWVzPSJ3aGl0ZTtyZWQ7YmxhY2s7Ymx1ZTt3aGl0ZSIgZHVyPSIxMHMiIHJlcGVhdENvdW50PSJp
bmZpbml0ZSINCiAgICAgYmVnaW49IjVzIi8+DQogICAgICA8L2NpcmNsZT4KCiAgICAgIDxhPjxj
aXJjbGUgcj0iMTA4IiBjeD0iMCIgY3k9IjM2MCIgZmlsbD0id2hpdGUiIHN0cm9rZS13aWR0aD0i
NCIgc3Ryb2tlPSIjMDk5IiBpZD0iZm9jdXMiPg0KICAgICAgICA8YW5pbWF0ZUNvbG9yIGF0dHJp
YnV0ZU5hbWU9ImZpbGwiIHZhbHVlcz0id2hpdGU7cmVkO2JsYWNrO2JsdWU7d2hpdGUiIGR1cj0i
MTBzIiByZXBlYXRDb3VudD0iaW5maW5pdGUiDQogICAgIGJlZ2luPSJmb2N1cy5mb2N1c2luIi8+
DQogICAgICA8L2NpcmNsZT48L2E+DQoNCjwvc3ZnPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95291</attachid>
            <date>2011-05-29 12:45:01 -0700</date>
            <delta_ts>2011-06-10 11:20:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-12894-20110529154441.patch</filename>
            <type>text/plain</type>
            <size>23889</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NjQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTEtMDUtMjkgIFJvYiBCdWlz
ICA8cmJ1aXNAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBhbmltYXRpb24gZXZlbnQgaGFuZGxpbmcgYnJva2VuOiBmb2N1c2luCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg5NAorCisgICAg
ICAgIGZvY3VzaW4sIGZvY3Vzb3V0LCBhY3RpdmF0ZSBub3QgaW1wbGVtZW50ZWQgaW4gU1ZHCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDU0NQorCisg
ICAgICAgIE1ha2UgZWxlbWVudHMgdGhhdCBzaG91bGQgc3VwcG9ydCBHcmFwaGljYWxFdmVudEF0
dHJpYnV0ZSBoYW5kbGUgZm9jdXNzaW5nLCBzaW5jZSBmb2N1c2luLCBmb2N1c291dCBpcyBwYXJ0
IG9mIHRoYXQ6CisKKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvaW50cm8uaHRt
bCNUZXJtR3JhcGhpY2FsRXZlbnRBdHRyaWJ1dGUKKworICAgICAgICBNYXRjaCBPcGVyYSBiZWhh
dmlvdXIgOyBlbGVtZW50cyB0aGF0IHN1cHBvcnQgR3JhcGhpY2FsRXZlbnRBdHRyaWJ1dGUgY2Fu
IHJlY2VpdmUgdmlzdWFsIG1vdXNlIGZvY3VzIHdoZW4gaGF2aW5nIGVpdGhlciBhIGZvY3VzaW4g
b3IgZm9jdXNvdXQgZXZlbnQgaGFuZGxlci4KKyAgICAgICAgRWxlbWVudHMgdGhhdCBzdXBwb3J0
IEdyYXBoaWNhbEV2ZW50QXR0cmlidXRlIGNhbiByZWNlaXZlIHZpc3VhbCBrZXlib2FyZCBmb2N1
cyB3aGVuIGhhdmluZyBlaXRoZXIgYSBmb2N1c2luIG9yIGZvY3Vzb3V0IGV2ZW50IGhhbmRsZXIu
IEtleWJvYXJkIGZvY3VzCisgICAgICAgIGRvZXMgbm90IGFkdmFuY2UgdG8gU1ZHIGVsZW1lbnRz
IHRoYXQgYXJlIG5vdCBmb2N1c2FibGUgYXQgdGhlIHRpbWUuCisKKyAgICAgICAgVGVzdDogc3Zn
L2N1c3RvbS9mb2N1cy1ldmVudC1oYW5kbGluZy54aHRtbAorCisgICAgICAgIFRlc3RzOiBzdmcv
Y3VzdG9tL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLWtleWJvYXJkLnhodG1sCisgICAgICAgICAgICAg
ICBzdmcvY3VzdG9tL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLnhodG1sCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVu
ZGVyU3VwcG9ydDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiBzdmcvU1ZHQ2ly
Y2xlRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6c3VwcG9y
dHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR0RlZnNFbGVtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdEZWZzRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR0Vs
bGlwc2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGxpcHNlRWxlbWVudDo6c3Vw
cG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdHRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR0ltYWdl
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpzdXBwb3J0c0Zv
Y3VzKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpbmVFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVs
ZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpzdXBwb3J0c0ZvY3Vz
KToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BvbHlFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKToKKyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKToK
KyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZH
RWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlZEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkRWxlbWVudDo6aXNNb3VzZUZvY3VzYWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNh
YmxlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdTd2l0Y2hFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdTd2l0Y2hFbGVtZW50Ojpz
dXBwb3J0c0ZvY3VzKToKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU3ltYm9sRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICog
c3ZnL1NWR1RleHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVudDo6
c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMpOgorCiAyMDExLTA1LTI3ICBB
bmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBK
YW1lcyBSb2JpbnNvbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAkocmV2aXNpb24gODc2MzYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
Myw2ICs2Myw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZVJlY3RGb3JSZXAKICAg
ICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0
eWxlKCk7CiAgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFk
b3coKSkKICAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsK
KyAgICByZXBhaW50UmVjdC5pbmZsYXRlKG9iamVjdC0+c3R5bGUoKS0+b3V0bGluZVdpZHRoKCkp
OwogCiAgICAgLy8gVHJhbnNsYXRlIHRvIGNvb3JkcyBpbiBvdXIgcGFyZW50IHJlbmRlcmVyLCBh
bmQgdGhlbiBjYWxsIGNvbXB1dGVSZWN0Rm9yUmVwYWludCBvbiBvdXIgcGFyZW50CiAgICAgcmVw
YWludFJlY3QgPSBvYmplY3QtPmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlcGFp
bnRSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAkocmV2aXNp
b24gODc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgU1ZHQ2lyY2xlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQorICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgYm9v
bCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVh
bCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0RlZnNFbGVtZW50LmgJKHJldmlzaW9uIDg3NjM2KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0RlZnNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgcHJp
dmF0ZToKICAgICBTVkdEZWZzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwog
ICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUm
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCShyZXZpc2lvbiA4
NzYzNikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgU1ZHRWxsaXBzZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBi
b29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR0VsZW1lbnQuaAkocmV2aXNpb24gODc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBwcm90ZWN0ZWQ6
CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBT
VkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCShy
ZXZpc2lvbiA4NzYzNikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBwcml2YXRlOgogICAgIFNWR0ltYWdlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAKICAgICB2aXJ0dWFs
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAog
ICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAg
IHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCShyZXZpc2lvbiA4NzYzNikKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3
IEBAIHByaXZhdGU6CiAgICAgU1ZHTGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAko
cmV2aXNpb24gODc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMTAwLDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgU1ZHUGF0aEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIGJv
b2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAg
IGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCShyZXZpc2lvbiA4NzYzNikKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBA
IHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0
IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGb2N1cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1h
cHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuaAkocmV2aXNpb24gODc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBwcml2YXRlOgogICAgIFNW
R1JlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIAogICAg
IHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQo
KTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCShyZXZpc2lvbiA4NzYzNikKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYg
KzUyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NWR0VsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQorICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAg
Ly8gJ1NWR1NWR0VsZW1lbnQnIGZ1bmN0aW9ucwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29u
dGVudFNjcmlwdFR5cGUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVk
RWxlbWVudC5jcHAJKHJldmlzaW9uIDg3NjM2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
eWxlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiQXR0ci5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCkBAIC01MDYs
NiArNTA3LDE5IEBAIHZvaWQgU1ZHU3R5bGVkRWxlbWVudDo6dXBkYXRlUmVsYXRpdmVMZW4KICAg
ICB9CiB9CiAKK2Jvb2wgU1ZHU3R5bGVkRWxlbWVudDo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0
Cit7CisgICAgaWYgKCFpc0ZvY3VzYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
RWxlbWVudCogZXZlbnRUYXJnZXQgPSBjb25zdF9jYXN0PFNWR1N0eWxlZEVsZW1lbnQgKj4odGhp
cyk7CisgICAgcmV0dXJuIGV2ZW50VGFyZ2V0LT5oYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVz
KCkuZm9jdXNpbkV2ZW50KSB8fCBldmVudFRhcmdldC0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnRO
YW1lcygpLmZvY3Vzb3V0RXZlbnQpOworfQorCitib29sIFNWR1N0eWxlZEVsZW1lbnQ6OmlzS2V5
Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzTW91
c2VGb2N1c2FibGUoKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAkocmV2aXNpb24gODc2MzYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2
ICs4Nyw5IEBAIHByb3RlY3RlZDogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxl
ZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJk
Rm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb3Vz
ZUZvY3VzYWJsZSgpIGNvbnN0OworCiAgICAgdm9pZCBidWlsZFBlbmRpbmdSZXNvdXJjZXNJZk5l
ZWRlZCgpIGNvbnN0OwogCiAgICAgSGFzaFNldDxTVkdTdHlsZWRFbGVtZW50Kj4gbV9lbGVtZW50
c1dpdGhSZWxhdGl2ZUxlbmd0aHM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNo
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVt
ZW50LmgJKHJldmlzaW9uIDg3NjM2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBwcml2YXRlOgogICAgIFNW
R1N3aXRjaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgCiAg
ICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxp
ZCgpOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2Rl
KikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkocmV2
aXNpb24gODc2MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZH
U3ltYm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAorICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAg
Ym9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmly
dHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1YWwg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCShyZXZpc2lvbiA4NzYzNikKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KKwogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShBdHRyaWJ1dGUqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCShyZXZp
c2lvbiA4NzYzNikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBTVkdVc2VFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBib29sIGlzVmFs
aWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZy
b21Eb2N1bWVudCgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODc2NDApCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0wNS0yOSAgUm9i
IEJ1aXMgIDxyYnVpc0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGFuaW1hdGlvbiBldmVudCBoYW5kbGluZyBicm9rZW46IGZvY3VzaW4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODk0CisK
KyAgICAgICAgZm9jdXNpbiwgZm9jdXNvdXQsIGFjdGl2YXRlIG5vdCBpbXBsZW1lbnRlZCBpbiBT
VkcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNTQ1
CisKKyAgICAgICAgVGVzdCB3aGV0aGVyIGZvY3VzaW4gYW5kIGZvY3Vzb3V0IGV2ZW50cyBhcmUg
ZGlzcGF0Y2hlZCBhbmQgc2VlbiBpbiB0aGUgZm9jdXNpbi9mb2N1c291dCBldmVudCBoYW5kbGVy
cy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN2Zy9jdXN0b20vZm9jdXMtZXZlbnQtaGFuZGxpbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2ZvY3VzLWV2ZW50LWhhbmRsaW5n
LWtleWJvYXJkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9mb2N1
cy1ldmVudC1oYW5kbGluZy1rZXlib2FyZC54aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1
c3RvbS9mb2N1cy1ldmVudC1oYW5kbGluZy54aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1
c3RvbS9yZXNvdXJjZXMvZm9jdXMtZXZlbnQtaGFuZGxpbmcta2V5Ym9hcmQuanM6IEFkZGVkLgor
ICAgICAgICAoZm9jdXNpbkhhbmRsZXIpOgorICAgICAgICAoZm9jdXNvdXRIYW5kbGVyKToKKyAg
ICAgICAgKiBzdmcvY3VzdG9tL3Jlc291cmNlcy9mb2N1cy1ldmVudC1oYW5kbGluZy5qczogQWRk
ZWQuCisgICAgICAgIChmb2N1c2luSGFuZGxlcik6CisgICAgICAgIChmb2N1c291dEhhbmRsZXIp
OgorCiAyMDExLTA1LTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDg3NjM2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vZm9jdXMtcmluZy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsMzEgKzIsMzEg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7
c3ZnfSBhdCAoMTAsMTApIHNpemUgNDM3eDUyNwotICAgIFJlbmRlclNWR1BhdGgge2NpcmNsZX0g
YXQgKDE1LDEwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQTUw
MF19XSBbY3g9NjUuMDBdIFtjeT02MC4wMF0gW3I9NTAuMDBdCi0gICAgUmVuZGVyU1ZHUGF0aCB7
cGF0aH0gYXQgKDE0MCwxMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkE1MDBdfV0gW2RhdGE9Ik0gMTQwIDEwIEwgMTkwIDExMCBMIDI0MCA2MCBMIDIyMCA2MCBM
IDIwMCAzMCBaIl0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNzAsMTApIHNpemUg
MTAweDEwMAotICAgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDI3MCwxMCkgc2l6ZSAxMDB4
MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkE1MDBdfV0gW3g9MjcwLjAwXSBbeT0x
MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCisgICAgUmVuZGVyU1ZHUGF0aCB7
Y2lyY2xlfSBhdCAoMTAsNSkgc2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkE1MDBdfV0gW2N4PTY1LjAwXSBbY3k9NjAuMDBdIFtyPTUwLjAwXQorICAgIFJlbmRlclNW
R1BhdGgge3BhdGh9IGF0ICgxMzUsNSkgc2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNGRkE1MDBdfV0gW2RhdGE9Ik0gMTQwIDEwIEwgMTkwIDExMCBMIDI0MCA2MCBMIDIy
MCA2MCBMIDIwMCAzMCBaIl0KKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNjUsNSkg
c2l6ZSAxMTB4MTEwCisgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMjY1LDUpIHNpemUg
MTEweDExMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZBNTAwXX1dIFt4PTI3MC4wMF0g
W3k9MTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQogICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDEwLDE0MCkgc2l6ZSAxMzd4MTM3IFt0cmFuc2Zvcm09e209KCgwLjg3
LDAuNTApKC0wLjUwLDAuODcpKSB0PSg2MC4wMCwxNDAuMDApfV0KLSAgICAgIFJlbmRlclNWR1Bh
dGgge3JlY3R9IGF0ICgxMCwxNDApIHNpemUgMTM3eDEzNyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkZBNTAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9
MTAwLjAwXQotICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgxNTAsMTQwKSBzaXplIDEzN3gx
MzcgW3RyYW5zZm9ybT17bT0oKDAuODcsMC41MCkoLTAuNTAsMC44NykpIHQ9KDIwMC4wMCwxNDAu
MDApfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQTUwMF19XSBbeD0wLjAwXSBbeT0w
LjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KLSAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgzMTAsMTQwKSBzaXplIDEzN3gxMzcKLSAgICAgIFJlbmRlclNWR1BhdGgge3Jl
Y3R9IGF0ICgzMTAsMTQwKSBzaXplIDEzN3gxMzcgW3RyYW5zZm9ybT17bT0oKDAuODcsMC41MCko
LTAuNTAsMC44NykpIHQ9KDM2MC4wMCwxNDAuMDApfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGQTUwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEw
MC4wMF0KKyAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgzLDEzMykgc2l6ZSAxNTF4MTUx
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkE1MDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0g
W3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCisgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0g
YXQgKDE0MywxMzMpIHNpemUgMTUxeDE1MSBbdHJhbnNmb3JtPXttPSgoMC44NywwLjUwKSgtMC41
MCwwLjg3KSkgdD0oMjAwLjAwLDE0MC4wMCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZBNTAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAw
XQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMwNSwxMzUpIHNpemUgMTQ3eDE0Nwor
ICAgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDMwNSwxMzUpIHNpemUgMTQ3eDE0NyBbdHJh
bnNmb3JtPXttPSgoMC44NywwLjUwKSgtMC41MCwwLjg3KSkgdD0oMzYwLjAwLDE0MC4wMCl9XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZBNTAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3
aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQogICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0
ICgxMCwzMDYpIHNpemUgNzZ4MTggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzZ4MTgKICAgICAgICAgY2h1bmsgMSB0
ZXh0IHJ1biAxIGF0ICgxMC4wMCwzMjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEyIHdp
ZHRoIDc2LjAwOiAiZm9jdXNlZCB0ZXh0IgogICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgw
LC0xNCkgc2l6ZSA3NngxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICBSZW5kZXJTVkdJbmxp
bmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NngxOAogICAgICAgICBjaHVuayAxIHRleHQg
cnVuIDEgYXQgKDAuMDAsMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTIgd2lkdGggNzYu
MDA6ICJmb2N1c2VkIHRleHQiCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTk4LDMw
Nykgc2l6ZSA3NXg1NQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE5MywzMDIpIHNp
emUgODV4NjUKICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3Nngx
OCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDc2eDE4CiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgw
LjAwLDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEyIHdpZHRoIDc2LjAwOiAiZm9jdXNl
ZCB0ZXh0IgogICAgIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IFtpZD0iY2xp
cCJdIFtjbGlwUGF0aFVuaXRzPXVzZXJTcGFjZU9uVXNlXQogICAgICAgUmVuZGVyU1ZHUGF0aCB7
cmVjdH0gYXQgKDAsMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBd
Ci0gICAgUmVuZGVyU1ZHSW1hZ2Uge2ltYWdlfSBhdCAoMCwwKSBzaXplIDB4MAorICAgIFJlbmRl
clNWR0ltYWdlIHtpbWFnZX0gYXQgKDAsMCkgc2l6ZSA1eDUKICAgICAgIFtjbGlwUGF0aD0iY2xp
cCJdIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IGF0ICgwLDApIHNpemUgMTAw
eDEwMAotICAgIFJlbmRlclNWR0ltYWdlIHtpbWFnZX0gYXQgKDE1MCw0MDApIHNpemUgMTM3eDEz
NyBbdHJhbnNmb3JtPXttPSgoMC44NywwLjUwKSgtMC41MCwwLjg3KSkgdD0oMjAwLjAwLDQwMC4w
MCl9XQorICAgIFJlbmRlclNWR0ltYWdlIHtpbWFnZX0gYXQgKDE0MywzOTMpIHNpemUgMTUxeDE1
MSBbdHJhbnNmb3JtPXttPSgoMC44NywwLjUwKSgtMC41MCwwLjg3KSkgdD0oMjAwLjAwLDQwMC4w
MCl9XQogICAgICAgW2NsaXBQYXRoPSJjbGlwIl0gUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIHtj
bGlwUGF0aH0gYXQgKDAsMCkgc2l6ZSAxMDB4MTAwCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoMzEwLDQwMCkgc2l6ZSAxMzd4MTM3IFt0cmFuc2Zvcm09e209KCgwLjg3LDAuNTApKC0w
LjUwLDAuODcpKSB0PSgzNjAuMDAsNDAwLjAwKX1dCi0gICAgICBSZW5kZXJTVkdJbWFnZSB7aW1h
Z2V9IGF0ICgzMTAsNDAwKSBzaXplIDEzN3gxMzcKKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgzMDMsMzkzKSBzaXplIDE1MXgxNTEgW3RyYW5zZm9ybT17bT0oKDAuODcsMC41MCkoLTAu
NTAsMC44NykpIHQ9KDM2MC4wMCw0MDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0ltYWdlIHtpbWFn
ZX0gYXQgKDMwMywzOTMpIHNpemUgMTUxeDE1MQogICAgICAgICBbY2xpcFBhdGg9ImNsaXAiXSBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIge2NsaXBQYXRofSBhdCAoMCwwKSBzaXplIDEwMHgxMDAK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9jdXMtZXZlbnQtaGFuZGxpbmctZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9jdXMtZXZlbnQt
aGFuZGxpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9mb2N1cy1ldmVudC1oYW5kbGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsOCBAQAorVGVzdCB3aGV0aGVyIGZvY3VzaW4gYW5kIGZvY3Vzb3V0IGV2ZW50cyBhcmUg
ZGlzcGF0Y2hlZCBhbmQgc2VlbiBpbiB0aGUgZm9jdXNpbi9mb2N1c291dCBldmVudCBoYW5kbGVy
czoKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZm9jdXNpblNlZW4gaXMg
dHJ1ZQorUEFTUyBmb2N1c291dFNlZW4gaXMgdHJ1ZQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLWtleWJvYXJkLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLWtleWJv
YXJkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20v
Zm9jdXMtZXZlbnQtaGFuZGxpbmcta2V5Ym9hcmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDggQEAKK1Rlc3Qgd2hldGhlciBmb2N1c2luIGFuZCBmb2N1c291dCBldmVudHMg
YXJlIGRpc3BhdGNoZWQgYW5kIHNlZW4gaW4gdGhlIGZvY3VzaW4vZm9jdXNvdXQgZXZlbnQgaGFu
ZGxlcnMgd2hlbiB1c2luZyBrZXlib2FyZDoKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZm9jdXNpblNlZW4gaXMgdHJ1ZQorUEFTUyBmb2N1c291dFNlZW4gaXMgdHJ1ZQor
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLWtleWJv
YXJkLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9jdXMtZXZl
bnQtaGFuZGxpbmcta2V5Ym9hcmQueGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLWtleWJvYXJkLnhodG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE3IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KworPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+Cisg
IDxyZWN0IGlkPSJyZWN0MSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+
CisgIDxyZWN0IGlkPSJyZWN0MiIgeD0iMTAwIiB5PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0i
MTAwIiBmaWxsPSJncmVlbiIvPgorPC9zdmc+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZvY3VzLWV2
ZW50LWhhbmRsaW5nLWtleWJvYXJkLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9jdXMtZXZlbnQtaGFuZGxpbmcueGh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb2N1cy1ldmVudC1oYW5kbGluZy54
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9jdXMtZXZlbnQt
aGFuZGxpbmcueGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIv
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdp
ZHRoPSIyMDAiIGhlaWdodD0iMjAwIj4KKyAgPHJlY3QgaWQ9InJlY3QxIiB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKyAgPHJlY3QgaWQ9InJlY3QyIiB4PSIxMDAiIHk9
IjEwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+Cis8L3N2Zz4KKwor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZm9jdXMtZXZlbnQtaGFuZGxpbmcuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvZm9j
dXMtZXZlbnQtaGFuZGxpbmcta2V5Ym9hcmQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9yZXNvdXJjZXMvZm9jdXMtZXZlbnQtaGFuZGxpbmcta2V5Ym9hcmQuanMJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy9mb2N1cy1ldmVu
dC1oYW5kbGluZy1rZXlib2FyZC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAordmFy
IGZvY3VzaW5TZWVuID0gZmFsc2U7Cit2YXIgZm9jdXNvdXRTZWVuID0gZmFsc2U7Cit2YXIgcmVj
dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjdDEiKTsKK2Rlc2NyaXB0aW9u
KCJUZXN0IHdoZXRoZXIgZm9jdXNpbiBhbmQgZm9jdXNvdXQgZXZlbnRzIGFyZSBkaXNwYXRjaGVk
IGFuZCBzZWVuIGluIHRoZSBmb2N1c2luL2ZvY3Vzb3V0IGV2ZW50IGhhbmRsZXJzIHdoZW4gdXNp
bmcga2V5Ym9hcmQ6ICIpOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gZm9jdXNp
bkhhbmRsZXIoZXZ0KQoreworICAgIGZvY3VzaW5TZWVuID0gdHJ1ZTsKK30KKworZnVuY3Rpb24g
Zm9jdXNvdXRIYW5kbGVyKGV2dCkKK3sKKyAgICBmb2N1c291dFNlZW4gPSB0cnVlOworfQorCity
ZWN0RWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXNpbiIsICJmb2N1c2luSGFuZGxlcihldnQp
Iik7CityZWN0RWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXNvdXQiLCAiZm9jdXNvdXRIYW5k
bGVyKGV2dCkiKTsKKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworCisgICAgLy8gY2F1c2Ug
Zm9jdXNpbgorICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ1x0Jyk7CisgICAgLy8gY2F1c2UgZm9j
dXNvdXQKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCdcdCcpOworCisgICAgc2hvdWxkQmVUcnVl
KCJmb2N1c2luU2VlbiIpOworICAgIHNob3VsZEJlVHJ1ZSgiZm9jdXNvdXRTZWVuIik7CisKKyAg
ICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
fSBlbHNlCisgICAgYWxlcnQoIlRoaXMgdGVzdCBtdXN0IGJlIHJ1biB2aWEgRFJUISIpOwpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvZm9jdXMtZXZlbnQtaGFuZGxpbmcu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvZm9jdXMt
ZXZlbnQtaGFuZGxpbmcuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L3Jlc291cmNlcy9mb2N1cy1ldmVudC1oYW5kbGluZy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0MiBAQAordmFyIGZvY3VzaW5TZWVuID0gZmFsc2U7Cit2YXIgZm9jdXNvdXRTZWVuID0gZmFs
c2U7Cit2YXIgcmVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjdDEiKTsK
K2Rlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgZm9jdXNpbiBhbmQgZm9jdXNvdXQgZXZlbnRzIGFy
ZSBkaXNwYXRjaGVkIGFuZCBzZWVuIGluIHRoZSBmb2N1c2luL2ZvY3Vzb3V0IGV2ZW50IGhhbmRs
ZXJzOiAiKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIGZvY3VzaW5IYW5kbGVy
KGV2dCkKK3sKKyAgICBmb2N1c2luU2VlbiA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIGZvY3Vzb3V0
SGFuZGxlcihldnQpCit7CisgICAgZm9jdXNvdXRTZWVuID0gdHJ1ZTsKK30KKworcmVjdEVsZW1l
bnQuc2V0QXR0cmlidXRlKCJvbmZvY3VzaW4iLCAiZm9jdXNpbkhhbmRsZXIoZXZ0KSIpOworcmVj
dEVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmZvY3Vzb3V0IiwgImZvY3Vzb3V0SGFuZGxlcihldnQp
Iik7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKworICAgIC8vIGNhdXNlIGZvY3VzaW4K
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg1MCwgNTApOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgIC8vIGNhdXNlIGZv
Y3Vzb3V0CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAxNTApOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgIHNo
b3VsZEJlVHJ1ZSgiZm9jdXNpblNlZW4iKTsKKyAgICBzaG91bGRCZVRydWUoImZvY3Vzb3V0U2Vl
biIpOworCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30gZWxzZQorICAgIGFsZXJ0KCJUaGlzIHRlc3QgbXVzdCBiZSBydW4gdmlhIERS
VCEiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96764</attachid>
            <date>2011-06-10 11:20:55 -0700</date>
            <delta_ts>2011-06-10 11:58:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-12894-20110610142049.patch</filename>
            <type>text/plain</type>
            <size>28741</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NTUyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDYtMTAgIFJvYiBCdWlz
ICA8cmJ1aXNAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBhbWF0aW9uIGV2ZW50IGhhbmRsaW5nIGJyb2tlbjogZm9jdXNpbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4OTQKKworICAgICAg
ICBmb2N1c2luLCBmb2N1c291dCwgYWN0aXZhdGUgbm90IGltcGxlbWVudGVkIGluIFNWRworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA1NDUKKworICAg
ICAgICBNYWtlIGVsZW1lbnRzIHRoYXQgc2hvdWxkIHN1cHBvcnQgR3JhcGhpY2FsRXZlbnRBdHRy
aWJ1dGUgaGFuZGxlIGZvY3Vzc2luZywgc2luY2UgZm9jdXNpbiwgZm9jdXNvdXQgaXMgcGFydCBv
ZiB0aGF0OgorCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ludHJvLmh0bWwj
VGVybUdyYXBoaWNhbEV2ZW50QXR0cmlidXRlCisKKyAgICAgICAgTWF0Y2ggT3BlcmEgYmVoYXZp
b3VyIDsgZWxlbWVudHMgdGhhdCBzdXBwb3J0IEdyYXBoaWNhbEV2ZW50QXR0cmlidXRlIGNhbiBy
ZWNlaXZlIHZpc3VhbCBtb3VzZSBmb2N1cyB3aGVuIGhhdmluZyBlaXRoZXIgYSBmb2N1c2luIG9y
IGZvY3Vzb3V0IGV2ZW50IGhhbmRsZXIuIEVsZW1lbnRzIHRoYXQgc3VwcG9ydCBHcmFwaGljYWxF
dmVudEF0dHJpYnV0ZSBjYW4gcmVjZWl2ZSB2aXN1YWwga2V5Ym9hcmQgZm9jdXMgd2hlbiBoYXZp
bmcgZWl0aGVyIGEgZm9jdXNpbiBvciBmb2N1c291dCBldmVudCBoYW5kbGVyLiBLZXlib2FyZCBm
b2N1cyBkb2VzIG5vdCBhZHZhbmNlIHRvIFNWRyBlbGVtZW50cyB0aGF0IGFyZSBub3QgZm9jdXNh
YmxlIGF0IHRoZSB0aW1lLgorCisgICAgICAgIFRlc3RzOiBzdmcvY3VzdG9tL2ZvY3VzLWV2ZW50
LWhhbmRsaW5nLWtleWJvYXJkLnhodG1sCisgICAgICAgICAgICAgICBzdmcvY3VzdG9tL2ZvY3Vz
LWV2ZW50LWhhbmRsaW5nLnhodG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0
ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAg
ICogc3ZnL1NWR0VsbGlwc2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGxpcHNl
RWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICog
c3ZnL1NWR0ltYWdlRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50
OjpzdXBwb3J0c0ZvY3VzKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xpbmVFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKToKKyAgICAgICAgKiBz
dmcvU1ZHUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50Ojpz
dXBwb3J0c0ZvY3VzKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKToKKyAgICAgICAgKiBzdmcv
U1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50OjpzdXBw
b3J0c0ZvY3VzKToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU1ZHRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR1N0
eWxlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkRWxlbWVudDo6aXNN
b3VzZUZvY3VzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRFbGVtZW50Ojppc0tl
eWJvYXJkRm9jdXNhYmxlKToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdTd2l0Y2hFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdTd2l0
Y2hFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKToKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3ltYm9sRWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6
CisgICAgICAgICogc3ZnL1NWR1RleHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXh0RWxlbWVudDo6c3VwcG9ydHNGb2N1cyk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMpOgorCiAy
MDExLTA2LTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEJldGggRGFraW4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHJldmlzaW9uIDg4MzY5KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjMsNiArNjMsNyBAQCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVS
ZWN0Rm9yUmVwCiAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gb2JqZWN0LT5z
dHlsZSgpLT5zdmdTdHlsZSgpOwogICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBz
dmdTdHlsZS0+c2hhZG93KCkpCiAgICAgICAgIHNoYWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhy
ZXBhaW50UmVjdCk7CisgICAgcmVwYWludFJlY3QuaW5mbGF0ZShvYmplY3QtPnN0eWxlKCktPm91
dGxpbmVXaWR0aCgpKTsKIAogICAgIC8vIFRyYW5zbGF0ZSB0byBjb29yZHMgaW4gb3VyIHBhcmVu
dCByZW5kZXJlciwgYW5kIHRoZW4gY2FsbCBjb21wdXRlUmVjdEZvclJlcGFpbnQgb24gb3VyIHBh
cmVudAogICAgIHJlcGFpbnRSZWN0ID0gb2JqZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCku
bWFwUmVjdChyZXBhaW50UmVjdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xl
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVt
ZW50LmgJKHJldmlzaW9uIDg4MzY5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBwcml2YXRlOgogICAgIFNW
R0NpcmNsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2
aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCShyZXZpc2lvbiA4ODM2OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgU1ZHRWxsaXBzZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVmFs
aWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R0VsZW1lbnQuaAkocmV2aXNpb24gODgzNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0Vs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBwcm90ZWN0ZWQ6CiAKIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0
czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0
cmlidXRlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCShyZXZpc2lv
biA4ODM2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBwcml2YXRlOgogICAgIFNWR0ltYWdlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wg
aXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJv
b2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1
YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lRWxlbWVudC5oCShyZXZpc2lvbiA4ODM2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHBy
aXZhdGU6CiAgICAgU1ZHTGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdU
ZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUo
QXR0cmlidXRlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkocmV2aXNp
b24gODgzNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAwLDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgU1ZHUGF0aEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNW
YWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wg
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5RWxlbWVudC5oCShyZXZpc2lvbiA4ODM2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIHByb3Rl
Y3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0
dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1
cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKTsgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
aAkocmV2aXNpb24gODgzNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBwcml2YXRlOgogICAgIFNWR1JlY3RF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIAogICAgIHZpcnR1
YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQog
CiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAg
ICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCShyZXZpc2lvbiA4ODM2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NWR0VsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Zh
bGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8gJ1NW
R1NWR0VsZW1lbnQnIGZ1bmN0aW9ucwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29udGVudFNj
cmlwdFR5cGUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDg4MzY5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQXR0
ci5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCkBAIC01MDYsNiArNTA3
LDE5IEBAIHZvaWQgU1ZHU3R5bGVkRWxlbWVudDo6dXBkYXRlUmVsYXRpdmVMZW4KICAgICB9CiB9
CiAKK2Jvb2wgU1ZHU3R5bGVkRWxlbWVudDo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFpc0ZvY3VzYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgRWxlbWVu
dCogZXZlbnRUYXJnZXQgPSBjb25zdF9jYXN0PFNWR1N0eWxlZEVsZW1lbnQgKj4odGhpcyk7Cisg
ICAgcmV0dXJuIGV2ZW50VGFyZ2V0LT5oYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZm9j
dXNpbkV2ZW50KSB8fCBldmVudFRhcmdldC0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygp
LmZvY3Vzb3V0RXZlbnQpOworfQorCitib29sIFNWR1N0eWxlZEVsZW1lbnQ6OmlzS2V5Ym9hcmRG
b2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzTW91c2VGb2N1
c2FibGUoKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAkocmV2aXNpb24gODgzNjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw5
IEBAIHByb3RlY3RlZDogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNh
YmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3Vz
YWJsZSgpIGNvbnN0OworCiAgICAgdm9pZCBidWlsZFBlbmRpbmdSZXNvdXJjZXNJZk5lZWRlZCgp
IGNvbnN0OwogCiAgICAgSGFzaFNldDxTVkdTdHlsZWRFbGVtZW50Kj4gbV9lbGVtZW50c1dpdGhS
ZWxhdGl2ZUxlbmd0aHM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgJ
KHJldmlzaW9uIDg4MzY5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBwcml2YXRlOgogICAgIFNWR1N3aXRj
aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgCiAgICAgdmly
dHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9
CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29u
c3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkocmV2aXNpb24g
ODgzNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHU3ltYm9s
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAorICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgYm9vbCBp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1YWwgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0RWxlbWVudC5oCShyZXZpc2lvbiA4ODM2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw4IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKwogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRy
aWJ1dGUqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCShyZXZpc2lvbiA4
ODM2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDYgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBTVkdVc2VFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CisgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzRm9jdXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1
bWVudCgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODg1NTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOSBAQAorMjAxMS0wNi0xMCAgUm9iIEJ1aXMg
IDxyYnVpc0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGFuaW1hdGlvbiBldmVudCBoYW5kbGluZyBicm9rZW46IGZvY3VzaW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODk0CisKKyAgICAg
ICAgZm9jdXNpbiwgZm9jdXNvdXQsIGFjdGl2YXRlIG5vdCBpbXBsZW1lbnRlZCBpbiBTVkcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNTQ1CisKKyAg
ICAgICAgVGVzdCB3aGV0aGVyIGZvY3VzaW4gYW5kIGZvY3Vzb3V0IGV2ZW50cyBhcmUgZGlzcGF0
Y2hlZCBhbmQgc2VlbiBpbiB0aGUgZm9jdXNpbi9mb2N1c291dCBldmVudCBoYW5kbGVycy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN2Zy9jdXN0b20vZm9jdXMtZXZlbnQtaGFuZGxpbmctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLWtleWJv
YXJkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9mb2N1cy1ldmVu
dC1oYW5kbGluZy1rZXlib2FyZC54aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9m
b2N1cy1ldmVudC1oYW5kbGluZy54aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9y
ZXNvdXJjZXMvZm9jdXMtZXZlbnQtaGFuZGxpbmcta2V5Ym9hcmQuanM6IEFkZGVkLgorICAgICAg
ICAoZm9jdXNpbkhhbmRsZXIpOgorICAgICAgICAoZm9jdXNvdXRIYW5kbGVyKToKKyAgICAgICAg
KiBzdmcvY3VzdG9tL3Jlc291cmNlcy9mb2N1cy1ldmVudC1oYW5kbGluZy5qczogQWRkZWQuCisg
ICAgICAgIChjbGVhckZvY3VzU2Vlbik6CisgICAgICAgICgpOgorICAgICAgICAoZm9jdXNvdXRI
YW5kbGVyKToKKyAgICAgICAgKGNsaWNrQXQpOgorCiAyMDExLTA2LTEwICBBYmhpc2hlayBBcnlh
ICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBHZW50
aWxjb3JlLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMt
cmluZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDg4MzY5KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsMzEgKzIsMzEgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMTAsMTApIHNpemUgNDM3
eDUyNwotICAgIFJlbmRlclNWR1BhdGgge2NpcmNsZX0gYXQgKDE1LDEwKSBzaXplIDEwMHgxMDAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQTUwMF19XSBbY3g9NjUuMDBdIFtjeT02MC4w
MF0gW3I9NTAuMDBdCi0gICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDE0MCwxMCkgc2l6ZSAx
MDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkE1MDBdfV0gW2RhdGE9Ik0gMTQw
IDEwIEwgMTkwIDExMCBMIDI0MCA2MCBMIDIyMCA2MCBMIDIwMCAzMCBaIl0KLSAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICgyNzAsMTApIHNpemUgMTAweDEwMAotICAgICAgUmVuZGVyU1ZH
UGF0aCB7cmVjdH0gYXQgKDI3MCwxMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNGRkE1MDBdfV0gW3g9MjcwLjAwXSBbeT0xMC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hl
aWdodD0xMDAuMDBdCisgICAgUmVuZGVyU1ZHUGF0aCB7Y2lyY2xlfSBhdCAoMTAsNSkgc2l6ZSAx
MTB4MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkE1MDBdfV0gW2N4PTY1LjAwXSBb
Y3k9NjAuMDBdIFtyPTUwLjAwXQorICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgxMzUsNSkg
c2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkE1MDBdfV0gW2RhdGE9
Ik0gMTQwIDEwIEwgMTkwIDExMCBMIDI0MCA2MCBMIDIyMCA2MCBMIDIwMCAzMCBaIl0KKyAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNjUsNSkgc2l6ZSAxMTB4MTEwCisgICAgICBSZW5k
ZXJTVkdQYXRoIHtyZWN0fSBhdCAoMjY1LDUpIHNpemUgMTEweDExMCBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkZBNTAwXX1dIFt4PTI3MC4wMF0gW3k9MTAuMDBdIFt3aWR0aD0xMDAuMDBd
IFtoZWlnaHQ9MTAwLjAwXQogICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDEwLDE0MCkg
c2l6ZSAxMzd4MTM3IFt0cmFuc2Zvcm09e209KCgwLjg3LDAuNTApKC0wLjUwLDAuODcpKSB0PSg2
MC4wMCwxNDAuMDApfV0KLSAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgxMCwxNDApIHNp
emUgMTM3eDEzNyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZBNTAwXX1dIFt4PTAuMDBd
IFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQotICAgIFJlbmRlclNWR1Bh
dGgge3JlY3R9IGF0ICgxNTAsMTQwKSBzaXplIDEzN3gxMzcgW3RyYW5zZm9ybT17bT0oKDAuODcs
MC41MCkoLTAuNTAsMC44NykpIHQ9KDIwMC4wMCwxNDAuMDApfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGQTUwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVp
Z2h0PTEwMC4wMF0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMTAsMTQwKSBzaXpl
IDEzN3gxMzcKLSAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgzMTAsMTQwKSBzaXplIDEz
N3gxMzcgW3RyYW5zZm9ybT17bT0oKDAuODcsMC41MCkoLTAuNTAsMC44NykpIHQ9KDM2MC4wMCwx
NDAuMDApfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQTUwMF19XSBbeD0wLjAwXSBb
eT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KKyAgICAgIFJlbmRlclNWR1Bh
dGgge3JlY3R9IGF0ICgzLDEzMykgc2l6ZSAxNTF4MTUxIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRkE1MDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0x
MDAuMDBdCisgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDE0MywxMzMpIHNpemUgMTUxeDE1
MSBbdHJhbnNmb3JtPXttPSgoMC44NywwLjUwKSgtMC41MCwwLjg3KSkgdD0oMjAwLjAwLDE0MC4w
MCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZBNTAwXX1dIFt4PTAuMDBdIFt5PTAu
MDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQorICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDMwNSwxMzUpIHNpemUgMTQ3eDE0NworICAgICAgUmVuZGVyU1ZHUGF0aCB7cmVj
dH0gYXQgKDMwNSwxMzUpIHNpemUgMTQ3eDE0NyBbdHJhbnNmb3JtPXttPSgoMC44NywwLjUwKSgt
MC41MCwwLjg3KSkgdD0oMzYwLjAwLDE0MC4wMCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jRkZBNTAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAw
LjAwXQogICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMCwzMDYpIHNpemUgNzZ4MTggY29u
dGFpbnMgMSBjaHVuayhzKQogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNzZ4MTgKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzMjAu
MDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEyIHdpZHRoIDc2LjAwOiAiZm9jdXNlZCB0ZXh0
IgogICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3NngxOCBjb250YWlu
cyAxIGNodW5rKHMpCiAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA3NngxOAogICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDAuMDAsMC4wMCkgc3Rh
cnRPZmZzZXQgMCBlbmRPZmZzZXQgMTIgd2lkdGggNzYuMDA6ICJmb2N1c2VkIHRleHQiCi0gICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTk4LDMwNykgc2l6ZSA3NXg1NQorICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDE5MywzMDIpIHNpemUgODV4NjUKICAgICAgIFJlbmRlclNW
R1RleHQge3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3NngxOCBjb250YWlucyAxIGNodW5rKHMpCiAg
ICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc2eDE4CiAg
ICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgwLjAwLDAuMDApIHN0YXJ0T2Zmc2V0IDAg
ZW5kT2Zmc2V0IDEyIHdpZHRoIDc2LjAwOiAiZm9jdXNlZCB0ZXh0IgogICAgIFJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IFtpZD0iY2xpcCJdIFtjbGlwUGF0aFVuaXRzPXVzZXJT
cGFjZU9uVXNlXQogICAgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAxMDB4
MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW3g9MC4wMF0gW3k9MC4w
MF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgUmVuZGVyU1ZHSW1hZ2Uge2lt
YWdlfSBhdCAoMCwwKSBzaXplIDB4MAorICAgIFJlbmRlclNWR0ltYWdlIHtpbWFnZX0gYXQgKDAs
MCkgc2l6ZSA1eDUKICAgICAgIFtjbGlwUGF0aD0iY2xpcCJdIFJlbmRlclNWR1Jlc291cmNlQ2xp
cHBlciB7Y2xpcFBhdGh9IGF0ICgwLDApIHNpemUgMTAweDEwMAotICAgIFJlbmRlclNWR0ltYWdl
IHtpbWFnZX0gYXQgKDE1MCw0MDApIHNpemUgMTM3eDEzNyBbdHJhbnNmb3JtPXttPSgoMC44Nyww
LjUwKSgtMC41MCwwLjg3KSkgdD0oMjAwLjAwLDQwMC4wMCl9XQorICAgIFJlbmRlclNWR0ltYWdl
IHtpbWFnZX0gYXQgKDE0MywzOTMpIHNpemUgMTUxeDE1MSBbdHJhbnNmb3JtPXttPSgoMC44Nyww
LjUwKSgtMC41MCwwLjg3KSkgdD0oMjAwLjAwLDQwMC4wMCl9XQogICAgICAgW2NsaXBQYXRoPSJj
bGlwIl0gUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIHtjbGlwUGF0aH0gYXQgKDAsMCkgc2l6ZSAx
MDB4MTAwCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzEwLDQwMCkgc2l6ZSAxMzd4
MTM3IFt0cmFuc2Zvcm09e209KCgwLjg3LDAuNTApKC0wLjUwLDAuODcpKSB0PSgzNjAuMDAsNDAw
LjAwKX1dCi0gICAgICBSZW5kZXJTVkdJbWFnZSB7aW1hZ2V9IGF0ICgzMTAsNDAwKSBzaXplIDEz
N3gxMzcKKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMDMsMzkzKSBzaXplIDE1MXgx
NTEgW3RyYW5zZm9ybT17bT0oKDAuODcsMC41MCkoLTAuNTAsMC44NykpIHQ9KDM2MC4wMCw0MDAu
MDApfV0KKyAgICAgIFJlbmRlclNWR0ltYWdlIHtpbWFnZX0gYXQgKDMwMywzOTMpIHNpemUgMTUx
eDE1MQogICAgICAgICBbY2xpcFBhdGg9ImNsaXAiXSBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIg
e2NsaXBQYXRofSBhdCAoMCwwKSBzaXplIDEwMHgxMDAKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9j
dXN0b20vZm9jdXMtZXZlbnQtaGFuZGxpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9jdXN0b20vZm9jdXMtZXZlbnQtaGFuZGxpbmctZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb2N1cy1ldmVudC1oYW5kbGlu
Zy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1RFU1QKK1Rlc3Qg
d2hldGhlciBmb2N1c2luIGFuZCBmb2N1c291dCBldmVudHMgYXJlIGRpc3BhdGNoZWQgYW5kIHNl
ZW4gaW4gdGhlIGZvY3VzaW4vZm9jdXNvdXQgZXZlbnQgaGFuZGxlcnM6CisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGZvY3VzaW5TZWVuIGlzICJyZWN0MSIKK1BBU1MgZm9j
dXNvdXRTZWVuIGlzICJyZWN0MSIKK1BBU1MgZm9jdXNpblNlZW4gaXMgImciCitQQVNTIGZvY3Vz
b3V0U2VlbiBpcyAiZyIKK1BBU1MgZm9jdXNpblNlZW4gaXMgInVzZSIKK1BBU1MgZm9jdXNvdXRT
ZWVuIGlzICJ1c2UiCitQQVNTIGZvY3VzaW5TZWVuIGlzICJ1c2VzeW1ib2wiCitQQVNTIGZvY3Vz
b3V0U2VlbiBpcyAidXNlc3ltYm9sIgorUEFTUyBmb2N1c2luU2VlbiBpcyAic3dpdGNoIgorUEFT
UyBmb2N1c291dFNlZW4gaXMgInN3aXRjaCIKK1BBU1MgZm9jdXNpblNlZW4gaXMgImltZyIKK1BB
U1MgZm9jdXNvdXRTZWVuIGlzICJpbWciCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20v
Zm9jdXMtZXZlbnQtaGFuZGxpbmcta2V5Ym9hcmQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9jdXMtZXZlbnQtaGFuZGxpbmcta2V5Ym9hcmQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb2N1cy1l
dmVudC1oYW5kbGluZy1rZXlib2FyZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTkgQEAKK1RFU1QKK1Rlc3Qgd2hldGhlciBmb2N1c2luIGFuZCBmb2N1c291dCBldmVudHMg
YXJlIGRpc3BhdGNoZWQgYW5kIHNlZW4gaW4gdGhlIGZvY3VzaW4vZm9jdXNvdXQgZXZlbnQgaGFu
ZGxlcnMgd2hlbiB1c2luZyBrZXlib2FyZDoKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZm9jdXNpblNlZW4gaXMgInJlY3QxIgorUEFTUyBmb2N1c2luU2VlbiBpcyAiZyIK
K1BBU1MgZm9jdXNvdXRTZWVuIGlzICJyZWN0MSIKK1BBU1MgZm9jdXNpblNlZW4gaXMgInVzZSIK
K1BBU1MgZm9jdXNvdXRTZWVuIGlzICJnIgorUEFTUyBmb2N1c2luU2VlbiBpcyAidXNlc3ltYm9s
IgorUEFTUyBmb2N1c291dFNlZW4gaXMgInVzZSIKK1BBU1MgZm9jdXNpblNlZW4gaXMgInN3aXRj
aCIKK1BBU1MgZm9jdXNvdXRTZWVuIGlzICJ1c2VzeW1ib2wiCitQQVNTIGZvY3VzaW5TZWVuIGlz
ICJpbWciCitQQVNTIGZvY3Vzb3V0U2VlbiBpcyAic3dpdGNoIgorUEFTUyBmb2N1c291dFNlZW4g
aXMgImltZyIKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb2N1cy1ldmVudC1oYW5k
bGluZy1rZXlib2FyZC54aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L2ZvY3VzLWV2ZW50LWhhbmRsaW5nLWtleWJvYXJkLnhodG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb2N1cy1ldmVudC1oYW5kbGluZy1rZXlib2FyZC54aHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxu
czp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjQwMCIgaGVpZ2h0
PSIzMDAiPgorICA8cmVjdCBpZD0icmVjdDEiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxs
PSJncmVlbiIvPgorICA8ZyBpZD0iZyI+CisgICAgPHJlY3QgaWQ9InJlY3QyIiB4PSIxMDAiIHk9
IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgorICA8L2c+CisgIDxk
ZWZzPgorICAgIDxyZWN0IGlkPSJyZWN0MyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9
ImdyZWVuIi8+CisgICAgPHN5bWJvbCBpZD0ic3ltYm9sIj4KKyAgICAgIDxyZWN0IGlkPSJyZWN0
NCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+CisgICAgPC9zeW1ib2w+
CisgIDwvZGVmcz4KKyAgPHVzZSBpZD0idXNlIiB4PSIyMDAiIHhsaW5rOmhyZWY9IiNyZWN0MyIv
PgorICA8dXNlIGlkPSJ1c2VzeW1ib2wiIHg9IjMwMCIgeGxpbms6aHJlZj0iI3N5bWJvbCIvPgor
ICA8c3dpdGNoIGlkPSJzd2l0Y2giPgorICAgIDxyZWN0IGlkPSJyZWN0NSIgeT0iMTAwIiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKyAgPC9zd2l0Y2g+CisgIDxpbWFn
ZSB4bGluazpocmVmPSJyZXNvdXJjZXMvZ3JlZW4tY2hlY2tlci5wbmciIHg9IjEwMCIgeT0iMTAw
IiBoZWlnaHQ9IjEwMCIgd2lkdGg9IjEwMCIgaWQ9ImltZyIvPgorICA8dGV4dCBpZD0idHh0IiB4
PSIyMjAiIHk9IjE1MCI+VEVTVDwvdGV4dD4KKzwvc3ZnPgorCisKKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2ZvY3VzLWV2ZW50LWhhbmRsaW5nLWtleWJvYXJkLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9jdXMtZXZlbnQtaGFuZGxpbmcu
eGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb2N1cy1ldmVudC1o
YW5kbGluZy54aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9j
dXMtZXZlbnQtaGFuZGxpbmcueGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKzxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8c3ZnIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGxpbmsiIHdpZHRoPSI0MDAiIGhlaWdodD0iMzAwIj4KKyAgPHJlY3QgaWQ9InJlY3QxIiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKyAgPGcgaWQ9ImciPgorICAgIDxy
ZWN0IGlkPSJyZWN0MiIgeD0iMTAwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmls
bD0iZ3JlZW4iLz4KKyAgPC9nPgorICA8ZGVmcz4KKyAgICA8cmVjdCBpZD0icmVjdDMiIHdpZHRo
PSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgorICAgIDxzeW1ib2wgaWQ9InN5bWJv
bCI+CisgICAgICA8cmVjdCBpZD0icmVjdDQiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxs
PSJncmVlbiIvPgorICAgIDwvc3ltYm9sPgorICA8L2RlZnM+CisgIDx1c2UgaWQ9InVzZSIgeD0i
MjAwIiB4bGluazpocmVmPSIjcmVjdDMiLz4KKyAgPHVzZSBpZD0idXNlc3ltYm9sIiB4PSIzMDAi
IHhsaW5rOmhyZWY9IiNzeW1ib2wiLz4KKyAgPHN3aXRjaCBpZD0ic3dpdGNoIj4KKyAgICA8cmVj
dCBpZD0icmVjdDUiIHk9IjEwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVu
Ii8+CisgIDwvc3dpdGNoPgorICA8aW1hZ2UgeGxpbms6aHJlZj0icmVzb3VyY2VzL2dyZWVuLWNo
ZWNrZXIucG5nIiB4PSIxMDAiIHk9IjEwMCIgaGVpZ2h0PSIxMDAiIHdpZHRoPSIxMDAiIGlkPSJp
bWciLz4KKyAgPHRleHQgaWQ9InR4dCIgeD0iMjIwIiB5PSIxNTAiPlRFU1Q8L3RleHQ+Cis8L3N2
Zz4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZm9jdXMtZXZlbnQtaGFuZGxpbmcuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJj
ZXMvZm9jdXMtZXZlbnQtaGFuZGxpbmcta2V5Ym9hcmQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvZm9jdXMtZXZlbnQtaGFuZGxpbmcta2V5Ym9hcmQu
anMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy9mb2N1
cy1ldmVudC1oYW5kbGluZy1rZXlib2FyZC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NiBA
QAordmFyIGZvY3VzaW5TZWVuID0gIiI7Cit2YXIgZm9jdXNvdXRTZWVuID0gIiI7CisKK3ZhciBy
ZWN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWN0MSIpOwordmFyIGdFbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImciKTsKK3ZhciB1c2VFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVzZSIpOwordmFyIHVzZUVsZW1lbnQyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInVzZXN5bWJvbCIpOwordmFyIHN3aXRjaEVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3dpdGNoIik7Cit2YXIgaW1nRWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpbWciKTsKK2Rlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgZm9jdXNpbiBh
bmQgZm9jdXNvdXQgZXZlbnRzIGFyZSBkaXNwYXRjaGVkIGFuZCBzZWVuIGluIHRoZSBmb2N1c2lu
L2ZvY3Vzb3V0IGV2ZW50IGhhbmRsZXJzIHdoZW4gdXNpbmcga2V5Ym9hcmQ6ICIpOworCitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gZm9jdXNpbkhhbmRsZXIoZXZ0KQoreworICAgIGZv
Y3VzaW5TZWVuID0gZXZ0LnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2lkJyk7Cit9CisKK2Z1bmN0aW9u
IGZvY3Vzb3V0SGFuZGxlcihldnQpCit7CisgICAgZm9jdXNvdXRTZWVuID0gZXZ0LnRhcmdldC5n
ZXRBdHRyaWJ1dGUoJ2lkJyk7Cit9CisKK3JlY3RFbGVtZW50LnNldEF0dHJpYnV0ZSgib25mb2N1
c2luIiwgImZvY3VzaW5IYW5kbGVyKGV2dCkiKTsKK3JlY3RFbGVtZW50LnNldEF0dHJpYnV0ZSgi
b25mb2N1c291dCIsICJmb2N1c291dEhhbmRsZXIoZXZ0KSIpOworZ0VsZW1lbnQuc2V0QXR0cmli
dXRlKCJvbmZvY3VzaW4iLCAiZm9jdXNpbkhhbmRsZXIoZXZ0KSIpOworZ0VsZW1lbnQuc2V0QXR0
cmlidXRlKCJvbmZvY3Vzb3V0IiwgImZvY3Vzb3V0SGFuZGxlcihldnQpIik7Cit1c2VFbGVtZW50
LnNldEF0dHJpYnV0ZSgib25mb2N1c2luIiwgImZvY3VzaW5IYW5kbGVyKGV2dCkiKTsKK3VzZUVs
ZW1lbnQuc2V0QXR0cmlidXRlKCJvbmZvY3Vzb3V0IiwgImZvY3Vzb3V0SGFuZGxlcihldnQpIik7
Cit1c2VFbGVtZW50Mi5zZXRBdHRyaWJ1dGUoIm9uZm9jdXNpbiIsICJmb2N1c2luSGFuZGxlcihl
dnQpIik7Cit1c2VFbGVtZW50Mi5zZXRBdHRyaWJ1dGUoIm9uZm9jdXNvdXQiLCAiZm9jdXNvdXRI
YW5kbGVyKGV2dCkiKTsKK3N3aXRjaEVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmZvY3VzaW4iLCAi
Zm9jdXNpbkhhbmRsZXIoZXZ0KSIpOworc3dpdGNoRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZm9j
dXNvdXQiLCAiZm9jdXNvdXRIYW5kbGVyKGV2dCkiKTsKK2ltZ0VsZW1lbnQuc2V0QXR0cmlidXRl
KCJvbmZvY3VzaW4iLCAiZm9jdXNpbkhhbmRsZXIoZXZ0KSIpOworaW1nRWxlbWVudC5zZXRBdHRy
aWJ1dGUoIm9uZm9jdXNvdXQiLCAiZm9jdXNvdXRIYW5kbGVyKGV2dCkiKTsKKworaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworCisgICAgLy8gY2F1c2UgZm9jdXNpbiBhbmQgZm9jdXNvdXQKKyAg
ICBldmVudFNlbmRlci5rZXlEb3duKCdcdCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
Zm9jdXNpblNlZW4nLCAncmVjdDEnKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCdcdCcpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZm9jdXNpblNlZW4nLCAnZycpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygnZm9jdXNvdXRTZWVuJywgJ3JlY3QxJyk7CisgICAgZXZlbnRTZW5k
ZXIua2V5RG93bignXHQnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2ZvY3VzaW5TZWVu
JywgJ3VzZScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZm9jdXNvdXRTZWVuJywgJ2cn
KTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCdcdCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnZm9jdXNpblNlZW4nLCAndXNlc3ltYm9sJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdmb2N1c291dFNlZW4nLCAndXNlJyk7CisgICAgZXZlbnRTZW5kZXIua2V5RG93bignXHQn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2ZvY3VzaW5TZWVuJywgJ3N3aXRjaCcpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZm9jdXNvdXRTZWVuJywgJ3VzZXN5bWJvbCcpOwor
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ1x0Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdmb2N1c2luU2VlbicsICdpbWcnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2ZvY3Vz
b3V0U2VlbicsICdzd2l0Y2gnKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCdcdCcpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnZm9jdXNvdXRTZWVuJywgJ2ltZycpOworCisgICAgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30gZWxz
ZQorICAgIGFsZXJ0KCJUaGlzIHRlc3QgbXVzdCBiZSBydW4gdmlhIERSVCEiKTsKSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9jdXN0b20vcmVzb3VyY2VzL2ZvY3VzLWV2ZW50LWhhbmRsaW5nLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVzb3VyY2VzL2ZvY3VzLWV2ZW50
LWhhbmRsaW5nLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNv
dXJjZXMvZm9jdXMtZXZlbnQtaGFuZGxpbmcuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA1
IEBACit2YXIgZm9jdXNpblNlZW4gPSAiIjsKK3ZhciBmb2N1c291dFNlZW4gPSAiIjsKKwordmFy
IHJlY3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlY3QxIik7Cit2YXIgZ0Vs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZyIpOwordmFyIHVzZUVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXNlIik7Cit2YXIgdXNlRWxlbWVudDIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidXNlc3ltYm9sIik7Cit2YXIgc3dpdGNoRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzd2l0Y2giKTsKK3ZhciBpbWdFbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImltZyIpOworZGVzY3JpcHRpb24oIlRlc3Qgd2hldGhlciBmb2N1c2lu
IGFuZCBmb2N1c291dCBldmVudHMgYXJlIGRpc3BhdGNoZWQgYW5kIHNlZW4gaW4gdGhlIGZvY3Vz
aW4vZm9jdXNvdXQgZXZlbnQgaGFuZGxlcnM6ICIpOworCitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwor
ZnVuY3Rpb24gY2xlYXJGb2N1c1NlZW4oZXZ0KQoreworICAgIGZvY3VzaW5TZWVuID0gIiI7Cisg
ICAgZm9jdXNvdXRTZWVuID0gIiI7Cit9CisKK2Z1bmN0aW9uIGZvY3VzaW5IYW5kbGVyKGV2dCkK
K3sKKyAgICBmb2N1c2luU2VlbiA9IGV2dC50YXJnZXQuZ2V0QXR0cmlidXRlKCdpZCcpOworfQor
CitmdW5jdGlvbiBmb2N1c291dEhhbmRsZXIoZXZ0KQoreworICAgIGZvY3Vzb3V0U2VlbiA9IGV2
dC50YXJnZXQuZ2V0QXR0cmlidXRlKCdpZCcpOworfQorCityZWN0RWxlbWVudC5zZXRBdHRyaWJ1
dGUoIm9uZm9jdXNpbiIsICJmb2N1c2luSGFuZGxlcihldnQpIik7CityZWN0RWxlbWVudC5zZXRB
dHRyaWJ1dGUoIm9uZm9jdXNvdXQiLCAiZm9jdXNvdXRIYW5kbGVyKGV2dCkiKTsKK2dFbGVtZW50
LnNldEF0dHJpYnV0ZSgib25mb2N1c2luIiwgImZvY3VzaW5IYW5kbGVyKGV2dCkiKTsKK2dFbGVt
ZW50LnNldEF0dHJpYnV0ZSgib25mb2N1c291dCIsICJmb2N1c291dEhhbmRsZXIoZXZ0KSIpOwor
dXNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXNpbiIsICJmb2N1c2luSGFuZGxlcihldnQp
Iik7Cit1c2VFbGVtZW50LnNldEF0dHJpYnV0ZSgib25mb2N1c291dCIsICJmb2N1c291dEhhbmRs
ZXIoZXZ0KSIpOwordXNlRWxlbWVudDIuc2V0QXR0cmlidXRlKCJvbmZvY3VzaW4iLCAiZm9jdXNp
bkhhbmRsZXIoZXZ0KSIpOwordXNlRWxlbWVudDIuc2V0QXR0cmlidXRlKCJvbmZvY3Vzb3V0Iiwg
ImZvY3Vzb3V0SGFuZGxlcihldnQpIik7Citzd2l0Y2hFbGVtZW50LnNldEF0dHJpYnV0ZSgib25m
b2N1c2luIiwgImZvY3VzaW5IYW5kbGVyKGV2dCkiKTsKK3N3aXRjaEVsZW1lbnQuc2V0QXR0cmli
dXRlKCJvbmZvY3Vzb3V0IiwgImZvY3Vzb3V0SGFuZGxlcihldnQpIik7CitpbWdFbGVtZW50LnNl
dEF0dHJpYnV0ZSgib25mb2N1c2luIiwgImZvY3VzaW5IYW5kbGVyKGV2dCkiKTsKK2ltZ0VsZW1l
bnQuc2V0QXR0cmlidXRlKCJvbmZvY3Vzb3V0IiwgImZvY3Vzb3V0SGFuZGxlcihldnQpIik7CisK
K2Z1bmN0aW9uIGNsaWNrQXQoeCwgeSkKK3sKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKworICAgIC8vIGNhdXNlIGZv
Y3VzaW4gYW5kIGZvY3Vzb3V0CisgICAgY2xpY2tBdCg1MCwgNTApOworICAgIGNsaWNrQXQoMTUw
LCAyNTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZm9jdXNpblNlZW4nLCAncmVjdDEn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2ZvY3Vzb3V0U2VlbicsICdyZWN0MScpOwor
CisgICAgY2xlYXJGb2N1c1NlZW4oKTsKKworICAgIC8vIGNhdXNlIGZvY3VzaW4gYW5kIGZvY3Vz
b3V0CisgICAgY2xpY2tBdCgxNTAsIDUwKTsKKyAgICBjbGlja0F0KDE1MCwgMjUwKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2ZvY3VzaW5TZWVuJywgJ2cnKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2ZvY3Vzb3V0U2VlbicsICdnJyk7CisKKyAgICBjbGVhckZvY3VzU2Vlbigp
OworCisgICAgLy8gY2F1c2UgZm9jdXNpbiBhbmQgZm9jdXNvdXQKKyAgICBjbGlja0F0KDI1MCwg
NTApOworICAgIGNsaWNrQXQoMjUwLCAyNTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
Zm9jdXNpblNlZW4nLCAndXNlJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmb2N1c291
dFNlZW4nLCAndXNlJyk7CisKKyAgICBjbGVhckZvY3VzU2VlbigpOworCisgICAgLy8gY2F1c2Ug
Zm9jdXNpbiBhbmQgZm9jdXNvdXQKKyAgICBjbGlja0F0KDM1MCwgNTApOworICAgIGNsaWNrQXQo
MzUwLCAyNTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZm9jdXNpblNlZW4nLCAndXNl
c3ltYm9sJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmb2N1c291dFNlZW4nLCAndXNl
c3ltYm9sJyk7CisKKyAgICBjbGVhckZvY3VzU2VlbigpOworCisgICAgLy8gY2F1c2UgZm9jdXNp
biBhbmQgZm9jdXNvdXQKKyAgICBjbGlja0F0KDUwLCAxNTApOworICAgIGNsaWNrQXQoNTAsIDI1
MCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmb2N1c2luU2VlbicsICdzd2l0Y2gnKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2ZvY3Vzb3V0U2VlbicsICdzd2l0Y2gnKTsKKwor
ICAgIGNsZWFyRm9jdXNTZWVuKCk7CisKKyAgICAvLyBjYXVzZSBmb2N1c2luIGFuZCBmb2N1c291
dAorICAgIGNsaWNrQXQoMTUwLCAxNTApOworICAgIGNsaWNrQXQoMTUwLCAyNTApOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZm9jdXNpblNlZW4nLCAnaW1nJyk7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdmb2N1c291dFNlZW4nLCAnaW1nJyk7CisKKyAgICBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9IGVsc2UKKyAgICBhbGVydCgiVGhpcyB0ZXN0IG11c3QgYmUgcnVu
IHZpYSBEUlQhIik7Cg==
</data>
<flag name="review"
          id="90543"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>