<?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>91855</bug_id>
          
          <creation_ts>2012-07-20 06:44:18 -0700</creation_ts>
          <short_desc>Web Inspector: Protocol Extension: add getFlowByName command</short_desc>
          <delta_ts>2012-07-31 01:19:37 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>90786</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrei Poenaru">andreigpoenaru</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>674514</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-20 06:44:18 -0700</bug_when>
    <thetext>Implement the getFlowByName command from this proposed protocol extension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674515</commentid>
    <comment_count>1</comment_count>
      <attachid>153494</attachid>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-20 06:45:23 -0700</bug_when>
    <thetext>Created attachment 153494
Protocol Extension</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674522</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-20 06:55:21 -0700</bug_when>
    <thetext>I wonder what flow properties are available via web-facing API (if any). I am a bit concerned with the protocol API surface here. We need to assess the added value vs the complexity / surface of the API. There is a lot of features we don&apos;t implement in order to keep the code manageable. Maybe we need to extract a dedicated domain for the CSS flows (&quot;CSSFlow&quot;) to make it more modular.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674531</commentid>
    <comment_count>3</comment_count>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-20 07:03:24 -0700</bug_when>
    <thetext>http://www.w3.org/TR/css3-regions/#cssom_view_and_css_regions

For the moment only &quot;document.webkitGetFlowByName&quot; is implemented.  Also, &quot;firstEmptyRegionIndex&quot; will be removed because it does not a have a use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674561</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-20 07:38:25 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; http://www.w3.org/TR/css3-regions/#cssom_view_and_css_regions
&gt; 
&gt; For the moment only &quot;document.webkitGetFlowByName&quot; is implemented.  Also, &quot;firstEmptyRegionIndex&quot; will be removed because it does not a have a use case.

Ok. Do you have an idea on the overall API that you will need? I&apos;m trying to understand whether there is a strong connection to the rest of the CSS domain. It might be that you should form everything in a separate agent / domain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674572</commentid>
    <comment_count>5</comment_count>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-20 07:56:11 -0700</bug_when>
    <thetext>In order to implement the design discussed on bug 90789, all the elements in the proposed protocol extension are needed.
I think there is a strong connection to the CSS domain since in it reside the functions used to modify/create named flows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675760</commentid>
    <comment_count>6</comment_count>
      <attachid>153810</attachid>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-23 09:15:57 -0700</bug_when>
    <thetext>Created attachment 153810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675773</commentid>
    <comment_count>7</comment_count>
      <attachid>153812</attachid>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-23 09:36:45 -0700</bug_when>
    <thetext>Created attachment 153812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675824</commentid>
    <comment_count>8</comment_count>
      <attachid>153812</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-23 10:56:57 -0700</bug_when>
    <thetext>Comment on attachment 153812
Patch

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

I am r+ -ing this change, but please fix the nits prior to landing it. I also think that you could combine named flow getters into single method.

&gt; LayoutTests/inspector/styles/protocol-css-regions-commands.html:22
&gt; +    InspectorTest.evaluateInPage(&quot;createDynamicElements()&quot;, testStep);

Nit: for the tests that have setup work on the layout page I typically do:

function createDynamicElements()
{
    ...
    runTest();
}

&lt;body onload=&quot;createDynamicElements()&quot;&gt;

&gt; LayoutTests/inspector/styles/protocol-css-regions-commands.html:34
&gt; +                    {

{ on previous line

&gt; LayoutTests/inspector/styles/protocol-css-regions-commands.html:53
&gt; +                WebInspector.domAgent.requestDocument(documentCallback);

Nit: we switched from declaring callbacks before the function to declaring them after. That way test reads better, while functions can be referenced above declaration in their scope.

&gt; LayoutTests/inspector/styles/protocol-css-regions-commands.html:90
&gt; +                    if (namedFlow)

ditto

&gt; Source/WebCore/inspector/Inspector.json:2138
&gt; +                    { &quot;name&quot;: &quot;overset&quot;, &quot;type&quot;: &quot;boolean&quot;, &quot;description&quot;: &quot;The \&quot;overset\&quot; attribute of a Named Flow.&quot; }

Is there a reason we want to query for names collection first and get the details later? We can transmit magabytes of data over the protocol. If performance is not super-important here, I&apos;d prefer to return flows instantly.

&gt; Source/WebCore/inspector/front-end/CSSStyleModel.js:204
&gt; +        CSSAgent.getFlowByName(nodeId, flowName, callback.bind(null, userCallback));

userCallback is already in the scope, just use it directly. You can also bind to &quot;this&quot;. The snippet you were copying was not designed well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676574</commentid>
    <comment_count>9</comment_count>
      <attachid>153998</attachid>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-24 02:44:31 -0700</bug_when>
    <thetext>Created attachment 153998
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676581</commentid>
    <comment_count>10</comment_count>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-24 02:49:34 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 153812 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=153812&amp;action=review
&gt; 
&gt; I am r+ -ing this change, but please fix the nits prior to landing it. I also think that you could combine named flow getters into single method.

I will create another bug for refactoring the &quot;getNamedFlowCollection&quot; and &quot;getFlowByName&quot; commands so that there will be no need for &quot;getNamedFlowContent&quot; and &quot;getNamedFlowRegions&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676672</commentid>
    <comment_count>11</comment_count>
      <attachid>153998</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-24 05:00:52 -0700</bug_when>
    <thetext>Comment on attachment 153998
Patch for landing

Clearing flags on attachment: 153998

Committed r123459: &lt;http://trac.webkit.org/changeset/123459&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676673</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-24 05:01:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>153494</attachid>
            <date>2012-07-20 06:45:23 -0700</date>
            <delta_ts>2012-07-20 06:45:23 -0700</delta_ts>
            <desc>Protocol Extension</desc>
            <filename>Inspector-extension.json</filename>
            <type>application/json</type>
            <size>3971</size>
            <attacher name="Andrei Poenaru">andreigpoenaru</attacher>
            
              <data encoding="base64">ImRvbWFpbiI6ICJDU1MiLAoidHlwZXMiOiBbCgl7CgkJImlkIjogIk5hbWVkRmxvdyIsCgkJInR5
cGUiOiAib2JqZWN0IiwKCQkicHJvcGVydGllcyI6IFsKCQkJeyAibmFtZSI6ICJub2RlSWQiLCAi
JHJlZiI6ICJET00uTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBkb2N1bWVudCBub2RlIGlk
LiIgfSwKCQkJeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9u
IjogIk5hbWVkIEZsb3cgaWRlbnRpZmllci4iIH0sCgkJCXsgIm5hbWUiOiAib3ZlcnNldCIsICJ0
eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVGhlIFwib3ZlcnNldFwiIGF0dHJpYnV0
ZSBvZiBhIE5hbWVkIEZsb3cuIiB9CgkJXSwKCQkiZGVzY3JpcHRpb24iOiAiVGhpcyBvYmplY3Qg
cmVwcmVzZW50cyBhIE5hbWVkIEZsb3cuIiwKCQkiaGlkZGVuIjogdHJ1ZQoJfSwKCXsKCQkiaWQi
OiAiUmVnaW9uIiwKCQkidHlwZSI6ICJvYmplY3QiLAoJCSJwcm9wZXJ0aWVzIjogWwoJCQl7ICJu
YW1lIjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhl
IGRvY3VtZW50IG5vZGUgaWQuIiB9LAoJCQl7ICJuYW1lIjogIm5hbWVkRmxvdyIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaWRlbnRpZmllciBvZiB0aGUgbmFtZWQgZmxv
dyB0aGlzIHJlZ2lvbiBpcyBhc3NvY2lhdGVkIHdpdGguIiB9LAoJCQl7ICJuYW1lIjogInJlZ2lv
bk92ZXJzZXQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIFwib3ZlcnNl
dFwiIGF0dHJpYnV0ZSBvZiBhIE5hbWVkIEZsb3cuIiB9LAoJCQl7ICJuYW1lIjogIm5vZGVJZCIs
ICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGNvcnJlc3BvbmRpbmcg
RE9NIG5vZGUgaWQuIiB9CgkJXSwKCQkiZGVzY3JpcHRpb24iOiAiVGhpcyBvYmplY3QgcmVwcmVz
ZW50cyBhIHJlZ2lvbiB0aGF0IGZsb3dzIGZyb20gYSBOYW1lZCBGbG93LiIsCgkJImhpZGRlbiI6
IHRydWUKCX0KXSwKImNvbW1hbmRzIjogWwoJewoJCSJuYW1lIjogImdldE5hbWVkRmxvd0NvbGxl
Y3Rpb24iLAogICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICB7ICJuYW1lIjogIm5v
ZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGRvY3VtZW50
IG5vZGUgaWQgZm9yIHdoaWNoIHRvIGdldCB0aGUgTmFtZWQgRmxvdyBDb2xsZWN0aW9uLiIgfQog
ICAgICAgIF0sCgkJInJldHVybnMiOiBbCgkJCXsgIm5hbWUiOiAibmFtZWRGbG93cyIsICJ0eXBl
IjogImFycmF5IiwgIml0ZW1zIjogeyAidHlwZSI6ICJzdHJpbmciIH0sICJkZXNjcmlwdGlvbiI6
ICJBbiBhcnJheSBjb250YWluaW5nIHRoZSBOYW1lZCBGbG93cyBpbiB0aGUgZG9jdW1lbnQuIiB9
CgkJXSwKCQkiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgTmFtZWQgRmxvd3MgZnJvbSB0aGUg
ZG9jdW1lbnQuIiwKCQkiaGlkZGVuIjogdHJ1ZQoJfSwKCXsKCQkibmFtZSI6ICJnZXRGbG93QnlO
YW1lIiwKCQkicGFyYW1ldGVycyI6IFsKCQkJeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJE
T00uTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBkb2N1bWVudCBub2RlIGlkLiIgfSwKCQkJ
eyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk5hbWVk
IEZsb3cgaWRlbnRpZmllci4iIH0KCQldLAoJCSJyZXR1cm5zIjogWwoJCQl7ICJuYW1lIjogIm5h
bWVkRmxvdyIsICIkcmVmIjogIk5hbWVkRmxvdyIsICJkZXNjcmlwdGlvbiI6ICJBIE5hbWVkIEZs
b3cuIiB9CgkJXSwKCQkiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgTmFtZWQgRmxvdyBpZGVu
dGlmaWVkIGJ5IHRoZSBnaXZlbiBuYW1lIiwKCQkiaGlkZGVuIjogdHJ1ZQoJfSwKCXsKCQkibmFt
ZSI6ICJnZXROYW1lZEZsb3dDb250ZW50IiwKCQkicGFyYW1ldGVycyI6IFsKCQkJeyAibmFtZSI6
ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBkb2N1
bWVudCBub2RlIGlkLiIgfSwKCQkJeyAibmFtZSI6ICJuYW1lZEZsb3ciLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiTmFtZWQgRmxvdyBpZGVudGlmaWVyLiIgfQoJCV0sCgkJInJl
dHVybnMiOiBbCgkJCXsgIm5hbWUiOiAibm9kZUlkcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJET00uTm9kZUlkIiB9LCAiZGVzY3JpcHRpb24iOiAiQW4gYXJyYXkgb2Yg
bm9kZXMgdGhhdCBmbG93IGludG8gdGhlIE5hbWVkIEZsb3cuIiB9CgkJXSwKCQkiZGVzY3JpcHRp
b24iOiAiUmV0dXJucyBhbiBhcnJheSBvZiBub2RlcyB0aGF0IGZsb3cgaW50byBhIE5hbWVkIEZs
b3cuIiwKCQkiaGlkZGVuIjogdHJ1ZQoJfSwKCXsKCQkibmFtZSI6ICJnZXROYW1lZEZsb3dSZWdp
b25zIiwKCQkicGFyYW1ldGVycyI6IFsKCQkJeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJE
T00uTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBkb2N1bWVudCBub2RlIGlkLiIgfSwKCQkJ
eyAibmFtZSI6ICJuYW1lZEZsb3ciLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
TmFtZWQgRmxvdyBpZGVudGlmaWVyLiIgfQoJCV0sCgkJInJldHVybnMiOiBbCgkJCXsgIm5hbWUi
OiAicmVnaW9ucyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJSZWdpb24i
IH0sICJkZXNjcmlwdGlvbiI6ICJBbiBhcnJheSBvZiByZWdpb25zIGFzc29jaWF0ZWQgd2l0aCB0
aGUgTmFtZWQgRmxvdy4iIH0KCQldLAoJCSJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGFuIGFycmF5
IG9mIHJlZ2lvbnMgdGhhdCBmbG93IGZyb20gYSBOYW1lZCBGbG93LiIsCgkJImhpZGRlbiI6IHRy
dWUKCX0KXSwKImV2ZW50cyI6IFsKCXsKCQkibmFtZSI6ICJuYW1lZEZsb3dDcmVhdGVkIiwKCQki
cGFyYW1ldGVycyI6IFsKCQkJeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlk
IiwgImRlc2NyaXB0aW9uIjogIlRoZSBkb2N1bWVudCBub2RlIGlkLiIgfSwKCQkJeyAibmFtZSI6
ICJuYW1lZEZsb3ciLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmll
ciBvZiB0aGUgbmV3IE5hbWVkIEZsb3cuIiB9CgkJXSwKCQkiZGVzY3JpcHRpb24iOiAiRmlyZXMg
d2hlbiBhIE5hbWVkIEZsb3cgaXMgY3JlYXRlZC4iLAoJCSJoaWRkZW4iOiB0cnVlCgl9LAoJewoJ
CSJuYW1lIjogIm5hbWVkRmxvd1JlbW92ZWQiLAoJCSJwYXJhbWV0ZXJzIjogWwoJCQl7ICJuYW1l
IjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGRv
Y3VtZW50IG5vZGUgaWQuIiB9LAoJCQl7ICJuYW1lIjogIm5hbWVkRmxvdyIsICJ0eXBlIjogInN0
cmluZyIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSByZW1vdmVkIE5hbWVkIEZs
b3cuIiB9CgkJXSwKCQkiZGVzY3JpcHRpb24iOiAiRmlyZXMgd2hlbiBhIE5hbWVkIEZsb3cgaXMg
cmVtb3ZlZDogaGFzIG5vIGFzc29jaWF0ZWQgY29udGVudCBub2RlcyBhbmQgcmVnaW9ucy4iLAoJ
CSJoaWRkZW4iOiB0cnVlCgl9LAoJewoJCSJuYW1lIjogInJlZ2lvbkxheW91dFVwZGF0ZSIsCgkJ
InBhcmFtZXRlcnMiOiBbCgkJCXsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJ
ZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgZG9jdW1lbnQgbm9kZSBpZC4iIH0sCgkJCXsgIm5hbWUi
OiAibmFtZWRGbG93IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZp
ZXIgb2YgdGhlIE5hbWVkIEZsb3cgd2hvc2UgbGF5b3V0IG1heSBoYXZlIGNoYW5nZWQuIiB9CgkJ
XSwKCQkiZGVzY3JpcHRpb24iOiAiRmlyZXMgd2hlbiBhIE5hbWVkIEZsb3cncyBsYXlvdXQgbWF5
IGhhdmUgY2hhbmdlZC4iLAoJCSJoaWRkZW4iOiB0cnVlCgl9Cl0=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153810</attachid>
            <date>2012-07-23 09:15:57 -0700</date>
            <delta_ts>2012-07-23 09:36:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch91855</filename>
            <type>text/plain</type>
            <size>18194</size>
            <attacher name="Andrei Poenaru">andreigpoenaru</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNTExYmM1Li4wMjAyMTQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDct
MjMgIEFuZHJlaSBQb2VuYXJ1ICA8cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogUHJvdG9jb2wgRXh0ZW5zaW9uOiBhZGQgZ2V0Rmxvd0J5TmFtZSBjb21tYW5kCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTg1NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZWQgYSBz
aW5nbGUgdGVzdCBzdWl0ZSBmb3IgdGhlIFdlYkluc3BlY3RvciBwcm90b2NvbCBleHRlbnNpb24g
Zm9yIENTUyBSZWdpb25zLgorCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1j
c3MtcmVnaW9ucy1jb21tYW5kcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9u
LWNvbW1hbmQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMi0wNy0yMyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlz
dG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFNraXAgaHR0cC90ZXN0cy9p
bnNwZWN0b3ItZW5hYmxlZC9pbmplY3RlZC1zY3JpcHQtZGlzY2FyZC5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1h
bmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wt
Y3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmQ0M2RhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIyIEBACitUZXN0cyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgorCitnZXROYW1l
ZEZsb3dDb2xsZWN0aW9uIEJ1ZyA5MTYwNworZ2V0Rmxvd0J5TmFtZSBCdWcgOTE4NTUKKworCitS
dW5uaW5nOiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbgorPT09IENTUyBOYW1lZCBGbG93cyA9
PT0KK2Zsb3cxCitmbG93MgorZmxvdzMKKworUnVubmluZzogdGVzdEdldEZsb3dCeU5hbWUxCis9
PT0gTmFtZWQgRmxvdyAiZmxvdzIiIGZyb20gbWFpbiBkb2N1bWVudCA9PT0KK25vZGVJZDogMQor
bmFtZTogZmxvdzIKK292ZXJzZXQ6IGZhbHNlCisKK1J1bm5pbmc6IHRlc3RHZXRGbG93QnlOYW1l
MgorPT09IE5hbWUgRmxvdyAiZmxvdzQiIGZyb20gbWFpbiBkb2N1bWVudCA9PT0KK1RoZXJlIGlz
IG5vIE5hbWVkIEZsb3cgImZsb3c0IiBpbiB0aGUgbWFpbiBkb2N1bWVudAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1h
bmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdp
b25zLWNvbW1hbmRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZh
ZmNiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJv
dG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRtbApAQCAtMCwwICsxLDEzNSBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBjcmVhdGVEeW5hbWlj
RWxlbWVudHMoKQoreworICAgIHZhciBmcmFtZURvYyA9IHdpbmRvdy5mcmFtZXNbMF0uZG9jdW1l
bnQ7CisKKyAgICB2YXIgZWwgPSBmcmFtZURvYy5jcmVhdGVFbGVtZW50KCJhcnRpY2xlIik7Cisg
ICAgZWwuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAiZmxvdzQiOworICAgIGZyYW1lRG9jLmJvZHku
YXBwZW5kQ2hpbGQoZWwpOworCisgICAgZWwgPSBmcmFtZURvYy5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICBlbC5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJmbG93NCI7CisgICAgZnJhbWVEb2Mu
Ym9keS5hcHBlbmRDaGlsZChlbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFdlYklu
c3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgiY3JlYXRlRHluYW1pY0VsZW1lbnRzKCkiLCB0ZXN0U3RlcCk7CisKKyAgICBmdW5j
dGlvbiB0ZXN0U3RlcCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0
ZShbCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbihuZXh0
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG5hbWVkRmxvd0NhbGxi
YWNrKG5hbWVkRmxvd3MpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IENTUyBOYW1lZCBGbG93cyA9PT0iKTsKKworICAg
ICAgICAgICAgICAgICAgICBpZiAoIW5hbWVkRmxvd3MpCisgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJbIV0gRmFp
bGVkIHRvIGdldCBOYW1lZCBGbG93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIG5hbWVkRmxvd3Mu
c29ydCgpOworCisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZWRG
bG93cy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KG5hbWVkRmxvd3NbaV0pOworCisgICAgICAgICAgICAgICAgICAgIG5leHQoKTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBkb2N1bWVudENh
bGxiYWNrKGRvY3VtZW50KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldE5hbWVkRmxvd0NvbGxlY3Rpb25Bc3luYyhkb2N1bWVu
dC5pZCwgbmFtZWRGbG93Q2FsbGJhY2spOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxs
YmFjayk7CisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0Rmxv
d0J5TmFtZTEobmV4dCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBu
YW1lZEZsb3dDYWxsYmFjayhuYW1lZEZsb3cpCisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IE5hbWVkIEZsb3cgXCJmbG93
MlwiIGZyb20gbWFpbiBkb2N1bWVudCA9PT0iKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAo
IW5hbWVkRmxvdykKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gZ2V0IE5hbWVkIEZsb3ci
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgibm9kZUlkOiAi
ICsgbmFtZWRGbG93Lm5vZGVJZCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJuYW1lOiAiICsgbmFtZWRGbG93Lm5hbWUpOworICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgib3ZlcnNldDogIiArIG5hbWVkRmxvdy5vdmVyc2V0
KTsKKworICAgICAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gZG9jdW1lbnRDYWxsYmFjayhkb2N1bWVudCkKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5n
ZXRGbG93QnlOYW1lQXN5bmMoZG9jdW1lbnQuaWQsICJmbG93MiIsIG5hbWVkRmxvd0NhbGxiYWNr
KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9t
QWdlbnQucmVxdWVzdERvY3VtZW50KGRvY3VtZW50Q2FsbGJhY2spOworICAgICAgICAgICAgfSwK
KworICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEdldEZsb3dCeU5hbWUyKG5leHQpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2FsbGJhY2sobmFtZWRG
bG93KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIj09PSBOYW1lIEZsb3cgXCJmbG93NFwiIGZyb20gbWFpbiBkb2N1bWVudCA9
PT0iKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZWRGbG93KQorICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiWyFdIEZhaWxlZCIpCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlRoZXJlIGlzIG5vIE5hbWVkIEZsb3cgXCJmbG93NFwiIGluIHRoZSBtYWluIGRvY3VtZW50
Iik7CisgICAgICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBmdW5jdGlvbiBkb2N1bWVudENhbGxiYWNrKGRvY3VtZW50KQorICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdl
dEZsb3dCeU5hbWVBc3luYyhkb2N1bWVudC5pZCwgImZsb3c0IiwgbmFtZWRGbG93Q2FsbGJhY2sp
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxsYmFjayk7CisgICAgICAgICAgICB9LAor
ICAgICAgICBdKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgorPHVsPgor
ICAgIDxsaT5nZXROYW1lZEZsb3dDb2xsZWN0aW9uIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYwNyI+QnVnIDkxNjA3PC9hPjwvbGk+CisgICAgPGxp
PmdldEZsb3dCeU5hbWUgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkxODU1Ij5CdWcgOTE4NTU8L2E+PC9saT4KKzwvdWw+Cis8L3A+CisKKzxhcnRpY2xl
IHN0eWxlPSItd2Via2l0LWZsb3ctaW50bzogZmxvdzEiPjwvYXJ0aWNsZT4KKzxkaXYgc3R5bGU9
Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MSI+PC9kaXY+CisKKzxhcnRpY2xlIHN0eWxlPSItd2Vi
a2l0LWZsb3ctaW50bzogZmxvdzIiPjwvYXJ0aWNsZT4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtZmxv
dy1mcm9tOiBmbG93MiI+PC9kaXY+CisKKzxhcnRpY2xlIHN0eWxlPSItd2Via2l0LWZsb3ctaW50
bzogZmxvdzMiPjwvYXJ0aWNsZT4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93
MyI+PC9kaXY+CisKKzxpZnJhbWU+PC9pZnJhbWU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93
Q29sbGVjdGlvbi1jb21tYW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDYzNGI5Ni4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rp
b24tY29tbWFuZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1U
ZXN0cyB0aGF0IHRoZSAiZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiIgY29tbWFuZCByZXR1cm5zIHRo
ZSBDU1MgTmFtZWQgRmxvd3MgaW4gdGhlIHBhZ2UuIEJ1ZyA5MTYwNwotCi1mbG93MQotZmxvdzIK
LWZsb3czCi0KLT09PSBDU1MgTmFtZWQgRmxvd3MgPT09Ci1mbG93MQotZmxvdzIKLWZsb3czCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFt
ZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29tbWFuZC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGZlNWIwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5k
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNFbGVtZW50cygpCi17
Ci0gICAgdmFyIGZyYW1lRG9jID0gd2luZG93LmZyYW1lc1swXS5kb2N1bWVudDsKLQotICAgIHZh
ciBlbCA9IGZyYW1lRG9jLmNyZWF0ZUVsZW1lbnQoImFydGljbGUiKTsKLSAgICBlbC5pbm5lclRl
eHQgPSAiZmxvdzQiOwotICAgIGVsLnN0eWxlLndlYmtpdEZsb3dJbnRvID0gImZsb3c0IjsKLSAg
ICBmcmFtZURvYy5ib2R5LmFwcGVuZENoaWxkKGVsKTsKLQotICAgIGVsID0gZnJhbWVEb2MuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZWwuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSAiZmxvdzQi
OwotICAgIGZyYW1lRG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImNyZWF0ZUR5bmFtaWNFbGVtZW50cygpIiwgdGVzdFN0
ZXApOwotCi0gICAgZnVuY3Rpb24gdGVzdFN0ZXAoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24g
bmFtZWRGbG93Q2FsbGJhY2sobmFtZWRGbG93cykKLSAgICAgICAgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBDU1MgTmFtZWQgRmxvd3MgPT09Iik7Ci0KLSAgICAg
ICAgICAgIGlmICghbmFtZWRGbG93cykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCB0byBnZXQgTmFtZWQgRmxvd3MiKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbmFtZWRGbG93cy5z
b3J0KCk7Ci0KLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZWRGbG93cy5sZW5n
dGg7ICsraSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChuYW1lZEZs
b3dzW2ldKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50Q2FsbGJhY2soZG9jdW1lbnQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXROYW1lZEZsb3dD
b2xsZWN0aW9uQXN5bmMoZG9jdW1lbnQuaWQsIG5hbWVkRmxvd0NhbGxiYWNrKTsKLSAgICAgICAg
fQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1l
bnRDYWxsYmFjayk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCB0aGUgImdldE5hbWVkRmxvd0NvbGxlY3Rp
b24iIGNvbW1hbmQgcmV0dXJucyB0aGUgQ1NTIE5hbWVkIEZsb3dzIGluIHRoZSBwYWdlLgotPGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjA3Ij5CdWcg
OTE2MDc8L2E+Ci08L3A+Ci0KLTxhcnRpY2xlIHN0eWxlPSItd2Via2l0LWZsb3ctaW50bzogZmxv
dzEiPmZsb3cxPC9hcnRpY2xlPgotPGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3cx
Ij48L2Rpdj4KLQotPGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MiI+Zmxv
dzI8L2FydGljbGU+Ci08ZGl2IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzIiPjwvZGl2
PgotCi08YXJ0aWNsZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3czIj5mbG93MzwvYXJ0
aWNsZT4KLTxkaXYgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MyI+PC9kaXY+Ci0KLTxp
ZnJhbWU+PC9pZnJhbWU+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjI2MTIyZC4uNTRhYzM0MiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQyLDcgKzQyLDcgQEAgQlVHV0sz
NTgyNCBTS0lQIDogaHR0cC90ZXN0cy9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1yZWxheGlu
Zy5odG1sID0gUEFTUwogCiAvLyBDU1MgUmVnaW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZCwg
dHJhY2tpbmcgaW4gYSBzZXBhcmF0ZSBFRkwgYnVnLgogQlVHV0s4Mzg5NyBTS0lQIDogZmFzdC9y
ZWdpb25zID0gUEFTUwotQlVHV0s4Mzg5NyBTS0lQIDogaW5zcGVjdG9yL3N0eWxlcy9wcm90b2Nv
bC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQuaHRtbCA9IFBBU1MKK0JVR1dLODM4OTcg
U0tJUCA6IGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRt
bCA9IFBBU1MKIAogLy8gRXhjbHVzaW9ucyBpbXBsZW1lbnRhdGlvbiBub3QgY29tcGxldGUgeWV0
LgogQlVHV0s4Mzg5OCBTS0lQIDogZmFzdC9leGNsdXNpb25zID0gUEFTUwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQKaW5kZXggOWIyNTc5ZC4uOTg5OGIxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CkBAIC0yNTkwLDcgKzI1OTAsNyBAQCBjc3MyLjEvMjAxMTAzMjMvdGV4dC1pbmRlbnQtaW50cmlu
c2ljLTAwNC5odG0KIAogIyBbUXRdIG5ldyB0ZXN0IGludHJvZHVjZWQgaW4gcjEyMzIwNSBmYWls
cyBvbiBRdAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE5NjcK
LWluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5k
Lmh0bWwKK2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRt
bAogCiAjIFtRdF0gbmV3IHRlc3QgaW50cm9kdWNlZCBpbiByMTIzMjgxIGZhaWxzIG9uIFF0CiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTk2OApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDQ4YTQ2MjYuLjA3MGEyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0w
Ny0yMyAgQW5kcmVpIFBvZW5hcnUgIDxwb2VuYXJ1QGFkb2JlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBQcm90b2NvbCBFeHRlbnNpb246IGFkZCBnZXRGbG93QnlOYW1lIGNvbW1hbmQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxODU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlICJnZXRG
bG93QnlOYW1lIiBjb21tYW5kIHNob3VsZCByZXR1cm4gYSBOYW1lZEZsb3cgZm9yIGEgZ2l2ZW4g
ZG9jdW1lbnQgYW5kIG5hbWUuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3N0eWxlcy9wcm90
b2NvbC1jc3MtcmVnaW9ucy1jb21tYW5kcy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpnZXRGbG93QnlOYW1lKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5o
OgorICAgICAgICAoSW5zcGVjdG9yQ1NTQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvQ1NTU3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsLnByb3RvdHlwZS5nZXRGbG93QnlOYW1lQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hbWVkRmxvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmFtZWRGbG93LnBhcnNlUGF5bG9h
ZCk6CisKIDIwMTItMDctMjMgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmVwbGFjZSBnZXRDdXJyZW50TG9jYWxUaW1lKCkgd2l0aCBHZXRMb2NhbFRp
bWUoKSBpbiBMb2NhbGVXaW4uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24KaW5kZXggNzE3NmFiYi4uZTIzMTcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgpAQCAtMjEyOCw2ICsyMTI4LDE3IEBACiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidG90YWxUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRv
dGFsIHByb2Nlc3NpbmcgdGltZSBmb3IgYWxsIHNlbGVjdG9ycyBpbiB0aGUgcHJvZmlsZSAoaW4g
bWlsbGlzZWNvbmRzLikiIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIs
ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJTZWxlY3RvclByb2ZpbGVFbnRy
eSIgfSwgImRlc2NyaXB0aW9uIjogIkNTUyBzZWxlY3RvciBwcm9maWxlIGVudHJpZXMuIiB9CiAg
ICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAiaWQiOiAiTmFtZWRGbG93IiwKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmpl
Y3QiLAorICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVzY3JpcHRpb24i
OiAiVGhlIGRvY3VtZW50IG5vZGUgaWQuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiTmFtZWQgRmxvdyBp
ZGVudGlmaWVyLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvdmVyc2V0Iiwg
InR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUaGUgXCJvdmVyc2V0XCIgYXR0cmli
dXRlIG9mIGEgTmFtZWQgRmxvdy4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIG9iamVjdCByZXByZXNlbnRzIGEgTmFtZWQgRmxvdy4i
LAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAg
IF0sCiAgICAgICAgICJjb21tYW5kcyI6IFsKQEAgLTIyNzcsMTMgKzIyODgsMjUgQEAKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXROYW1lZEZsb3dDb2xsZWN0aW9u
IiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlkIiwgImRlc2NyaXB0aW9uIjog
IlRoZSBkb2N1bWVudCBub2RlIGlkIGZvciB3aGljaCB0byBnZXQgdGhlIE5hbWVkIEZsb3cgQ29s
bGVjdGlvbi4ifQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVm
IjogIkRPTS5Ob2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGRvY3VtZW50IG5vZGUgaWQgZm9y
IHdoaWNoIHRvIGdldCB0aGUgTmFtZWQgRmxvdyBDb2xsZWN0aW9uLiIgfQogICAgICAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibmFtZWRGbG93cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAidHlw
ZSI6ICJzdHJpbmciIH0sICJkZXNjcmlwdGlvbiI6ICJBbiBhcnJheSBjb250YWluaW5nIHRoZSBO
YW1lZCBGbG93cyBpbiB0aGUgZG9jdW1lbnQuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgTmFtZWQgRmxvd3MgZnJvbSB0
aGUgZG9jdW1lbnQuIiwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRGbG93QnlO
YW1lIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlkIiwgImRlc2NyaXB0aW9u
IjogIlRoZSBkb2N1bWVudCBub2RlIGlkLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk5hbWVkIEZsb3cg
aWRlbnRpZmllci4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1
cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWVkRmxvdyIsICIkcmVm
IjogIk5hbWVkRmxvdyIsICJkZXNjcmlwdGlvbiI6ICJBIE5hbWVkIEZsb3cuIiB9CisgICAgICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUg
TmFtZWQgRmxvdyBpZGVudGlmaWVkIGJ5IHRoZSBnaXZlbiBuYW1lIiwKKyAgICAgICAgICAgICAg
ICAiaGlkZGVuIjogdHJ1ZQogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiZXZl
bnRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKaW5kZXggYjJlYzEwYy4uZTA3NWYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiU3R5
bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hl
ZXRMaXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93LmgiCiAjaW5jbHVkZSAiV2ViS2l0
TmFtZWRGbG93Q29sbGVjdGlvbi5oIgogCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBA
IC04MDMsNiArODA0LDI0IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE5hbWVkRmxvd0Nv
bGxlY3Rpb24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kCiAgICAgcmVzdWx0ID0g
bmFtZWRGbG93cy5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldEZs
b3dCeU5hbWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJp
bmcmIGZsb3dOYW1lLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6TmFtZWRGbG93PiYgcmVzdWx0
KQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZG9tQWdlbnQtPmFzc2VydERvY3VtZW50
KGVycm9yU3RyaW5nLCBub2RlSWQpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93ID0gZG9jdW1lbnQtPm5hbWVkRmxv
d3MoKS0+Zmxvd0J5TmFtZShmbG93TmFtZSk7CisgICAgaWYgKCFuYW1lZEZsb3cpIHsKKyAgICAg
ICAgKmVycm9yU3RyaW5nID0gIk5vIHRhcmdldCBDU1MgTmFtZWQgRmxvdyBmb3VuZCI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZXN1bHQgPSBUeXBlQnVpbGRlcjo6Q1NTOjpOYW1l
ZEZsb3c6OmNyZWF0ZSgpCisgICAgICAgIC5zZXROb2RlSWQobm9kZUlkKQorICAgICAgICAuc2V0
TmFtZShmbG93TmFtZSkKKyAgICAgICAgLnNldE92ZXJzZXQobmFtZWRGbG93LT5vdmVyc2V0KCkp
OworfQorCiB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpzdGFydFNlbGVjdG9yUHJvZmlsZXIoRXJy
b3JTdHJpbmcqKQogewogICAgIG1fY3VycmVudFNlbGVjdG9yUHJvZmlsZSA9IGFkb3B0UHRyKG5l
dyBTZWxlY3RvclByb2ZpbGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oCmluZGV4IDljZWFmM2IuLjYzNTVlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCkBAIC0xMTEsNiArMTExLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBhZGRSdWxlKEVycm9yU3RyaW5nKiwgaW50IGNvbnRleHROb2Rl
SWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NS
dWxlPiYgcmVzdWx0KTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGll
cyhFcnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+JiByZXN1
bHQpOwogICAgIHZpcnR1YWwgdm9pZCBnZXROYW1lZEZsb3dDb2xsZWN0aW9uKEVycm9yU3RyaW5n
KiwgaW50IG5vZGVJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4mIHJlc3Vs
dCk7CisgICAgdmlydHVhbCB2b2lkIGdldEZsb3dCeU5hbWUoRXJyb3JTdHJpbmcqLCBpbnQgbm9k
ZUlkLCBjb25zdCBTdHJpbmcmIGZsb3dOYW1lLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6TmFt
ZWRGbG93PiYgcmVzdWx0KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydFNlbGVjdG9yUHJvZmls
ZXIoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFNlbGVjdG9yUHJvZmlsZXIo
RXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U2VsZWN0b3JQcm9maWxlPiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHls
ZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1v
ZGVsLmpzCmluZGV4IDc3YTVkZWUuLmY4YzQzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTE4Miw2ICsxODIsMjkg
QEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge0RPTUFnZW50Lk5vZGVJZH0gbm9kZUlkCisgICAgICogQHBh
cmFtIHtzdHJpbmd9IGZsb3dOYW1lCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5zcGVj
dG9yLk5hbWVkRmxvdyl9IHVzZXJDYWxsYmFjaworICAgICAqLworICAgIGdldEZsb3dCeU5hbWVB
c3luYzogZnVuY3Rpb24obm9kZUlkLCBmbG93TmFtZSwgdXNlckNhbGxiYWNrKQorICAgIHsKKyAg
ICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1dlYkluc3BlY3Rvci5OYW1l
ZEZsb3cpfSB1c2VyQ2FsbGJhY2sKKyAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9
IGVycm9yCisgICAgICAgICAqIEBwYXJhbSB7P0NTU0FnZW50Lk5hbWVkRmxvdz19IG5hbWVkRmxv
d1BheWxvYWQKKyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHVzZXJDYWxs
YmFjaywgZXJyb3IsIG5hbWVkRmxvd1BheWxvYWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
IChlcnJvciB8fCAhbmFtZWRGbG93UGF5bG9hZCkKKyAgICAgICAgICAgICAgICB1c2VyQ2FsbGJh
Y2sobnVsbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNr
KFdlYkluc3BlY3Rvci5OYW1lZEZsb3cucGFyc2VQYXlsb2FkKG5hbWVkRmxvd1BheWxvYWQpKTsK
KyAgICAgICAgfQorCisgICAgICAgIENTU0FnZW50LmdldEZsb3dCeU5hbWUobm9kZUlkLCBmbG93
TmFtZSwgY2FsbGJhY2suYmluZChudWxsLCB1c2VyQ2FsbGJhY2spKTsKKyAgICB9LAorCisgICAg
LyoqCiAgICAgICogQHBhcmFtIHtDU1NBZ2VudC5DU1NSdWxlSWR9IHJ1bGVJZAogICAgICAqIEBw
YXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3
U2VsZWN0b3IKQEAgLTEyMTksNiArMTI0MiwyNiBAQCBXZWJJbnNwZWN0b3IuQ1NTRGlzcGF0Y2hl
ci5wcm90b3R5cGUgPSB7CiB9CiAKIC8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge0NT
U0FnZW50Lk5hbWVkRmxvd30gcGF5bG9hZAorICovCitXZWJJbnNwZWN0b3IuTmFtZWRGbG93ID0g
ZnVuY3Rpb24ocGF5bG9hZCkKK3sKKyAgICB0aGlzLm5vZGVJZCA9IHBheWxvYWQubm9kZUlkOwor
ICAgIHRoaXMubmFtZSA9IHBheWxvYWQubmFtZTsKKyAgICB0aGlzLm92ZXJzZXQgPSBwYXlsb2Fk
Lm92ZXJzZXQ7Cit9CisKKy8qKgorICogQHBhcmFtIHtDU1NBZ2VudC5OYW1lZEZsb3d9IHBheWxv
YWQKKyAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5OYW1lZEZsb3d9CisgKi8KK1dlYkluc3BlY3Rv
ci5OYW1lZEZsb3cucGFyc2VQYXlsb2FkID0gZnVuY3Rpb24ocGF5bG9hZCkKK3sKKyAgICByZXR1
cm4gbmV3IFdlYkluc3BlY3Rvci5OYW1lZEZsb3cocGF5bG9hZCk7Cit9CisKKy8qKgogICogQHR5
cGUge1dlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsfQogICovCiBXZWJJbnNwZWN0b3IuY3NzTW9k
ZWwgPSBudWxsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153812</attachid>
            <date>2012-07-23 09:36:45 -0700</date>
            <delta_ts>2012-07-24 02:44:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch91855</filename>
            <type>text/plain</type>
            <size>18241</size>
            <attacher name="Andrei Poenaru">andreigpoenaru</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMGM4Mjg4Li45MGM4MTdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDct
MjMgIEFuZHJlaSBQb2VuYXJ1ICA8cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogUHJvdG9jb2wgRXh0ZW5zaW9uOiBhZGQgZ2V0Rmxvd0J5TmFtZSBjb21tYW5kCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTg1NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZWQgYSBz
aW5nbGUgdGVzdCBzdWl0ZSBmb3IgdGhlIFdlYkluc3BlY3RvciBwcm90b2NvbCBleHRlbnNpb24g
Zm9yIENTUyBSZWdpb25zLgorCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1j
c3MtcmVnaW9ucy1jb21tYW5kcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9u
LWNvbW1hbmQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMi0wNy0yMyAgVmluY2VudCBTY2hlaWIgIDxzY2hlaWJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNraXAgaHR0cC90ZXN0cy9wb2ludGVyLWxvY2sgb24g
cG9ydHMgdGhhdCBkbyBub3Qgc3VwcG9ydCBwb2ludGVyIGxvY2suCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJl
Z2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmQ0M2RhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIyIEBACitUZXN0cyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgorCitnZXROYW1lZEZsb3dD
b2xsZWN0aW9uIEJ1ZyA5MTYwNworZ2V0Rmxvd0J5TmFtZSBCdWcgOTE4NTUKKworCitSdW5uaW5n
OiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbgorPT09IENTUyBOYW1lZCBGbG93cyA9PT0KK2Zs
b3cxCitmbG93MgorZmxvdzMKKworUnVubmluZzogdGVzdEdldEZsb3dCeU5hbWUxCis9PT0gTmFt
ZWQgRmxvdyAiZmxvdzIiIGZyb20gbWFpbiBkb2N1bWVudCA9PT0KK25vZGVJZDogMQorbmFtZTog
ZmxvdzIKK292ZXJzZXQ6IGZhbHNlCisKK1J1bm5pbmc6IHRlc3RHZXRGbG93QnlOYW1lMgorPT09
IE5hbWUgRmxvdyAiZmxvdzQiIGZyb20gbWFpbiBkb2N1bWVudCA9PT0KK1RoZXJlIGlzIG5vIE5h
bWVkIEZsb3cgImZsb3c0IiBpbiB0aGUgbWFpbiBkb2N1bWVudAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNv
bW1hbmRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhZmNiOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wt
Y3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRtbApAQCAtMCwwICsxLDEzNSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBjcmVhdGVEeW5hbWljRWxlbWVu
dHMoKQoreworICAgIHZhciBmcmFtZURvYyA9IHdpbmRvdy5mcmFtZXNbMF0uZG9jdW1lbnQ7CisK
KyAgICB2YXIgZWwgPSBmcmFtZURvYy5jcmVhdGVFbGVtZW50KCJhcnRpY2xlIik7CisgICAgZWwu
c3R5bGUud2Via2l0Rmxvd0ludG8gPSAiZmxvdzQiOworICAgIGZyYW1lRG9jLmJvZHkuYXBwZW5k
Q2hpbGQoZWwpOworCisgICAgZWwgPSBmcmFtZURvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICBlbC5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJmbG93NCI7CisgICAgZnJhbWVEb2MuYm9keS5h
cHBlbmRDaGlsZChlbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFdlYkluc3BlY3Rv
ci5zaG93UGFuZWwoImVsZW1lbnRzIik7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgiY3JlYXRlRHluYW1pY0VsZW1lbnRzKCkiLCB0ZXN0U3RlcCk7CisKKyAgICBmdW5jdGlvbiB0
ZXN0U3RlcCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCisg
ICAgICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbihuZXh0KQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG5hbWVkRmxvd0NhbGxiYWNrKG5h
bWVkRmxvd3MpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiPT09IENTUyBOYW1lZCBGbG93cyA9PT0iKTsKKworICAgICAgICAg
ICAgICAgICAgICBpZiAoIW5hbWVkRmxvd3MpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJbIV0gRmFpbGVkIHRv
IGdldCBOYW1lZCBGbG93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIG5hbWVkRmxvd3Muc29ydCgp
OworCisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZWRGbG93cy5s
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KG5hbWVkRmxvd3NbaV0pOworCisgICAgICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBkb2N1bWVudENhbGxiYWNr
KGRvY3VtZW50KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmNzc01vZGVsLmdldE5hbWVkRmxvd0NvbGxlY3Rpb25Bc3luYyhkb2N1bWVudC5pZCwg
bmFtZWRGbG93Q2FsbGJhY2spOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxsYmFjayk7
CisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0Rmxvd0J5TmFt
ZTEobmV4dCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBuYW1lZEZs
b3dDYWxsYmFjayhuYW1lZEZsb3cpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IE5hbWVkIEZsb3cgXCJmbG93MlwiIGZy
b20gbWFpbiBkb2N1bWVudCA9PT0iKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIW5hbWVk
RmxvdykKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gZ2V0IE5hbWVkIEZsb3ciKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgibm9kZUlkOiAiICsgbmFt
ZWRGbG93Lm5vZGVJZCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJuYW1lOiAiICsgbmFtZWRGbG93Lm5hbWUpOworICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgib3ZlcnNldDogIiArIG5hbWVkRmxvdy5vdmVyc2V0KTsKKwor
ICAgICAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgZnVuY3Rpb24gZG9jdW1lbnRDYWxsYmFjayhkb2N1bWVudCkKKyAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRGbG93
QnlOYW1lQXN5bmMoZG9jdW1lbnQuaWQsICJmbG93MiIsIG5hbWVkRmxvd0NhbGxiYWNrKTsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQu
cmVxdWVzdERvY3VtZW50KGRvY3VtZW50Q2FsbGJhY2spOworICAgICAgICAgICAgfSwKKworICAg
ICAgICAgICAgZnVuY3Rpb24gdGVzdEdldEZsb3dCeU5hbWUyKG5leHQpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2FsbGJhY2sobmFtZWRGbG93KQor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIj09PSBOYW1lIEZsb3cgXCJmbG93NFwiIGZyb20gbWFpbiBkb2N1bWVudCA9PT0iKTsK
KworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZWRGbG93KQorICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFd
IEZhaWxlZCIpCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRo
ZXJlIGlzIG5vIE5hbWVkIEZsb3cgXCJmbG93NFwiIGluIHRoZSBtYWluIGRvY3VtZW50Iik7Cisg
ICAgICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBmdW5jdGlvbiBkb2N1bWVudENhbGxiYWNrKGRvY3VtZW50KQorICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldEZsb3dC
eU5hbWVBc3luYyhkb2N1bWVudC5pZCwgImZsb3c0IiwgbmFtZWRGbG93Q2FsbGJhY2spOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5y
ZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxsYmFjayk7CisgICAgICAgICAgICB9LAorICAgICAg
ICBdKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHA+CitUZXN0cyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgorPHVsPgorICAgIDxs
aT5nZXROYW1lZEZsb3dDb2xsZWN0aW9uIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MTYwNyI+QnVnIDkxNjA3PC9hPjwvbGk+CisgICAgPGxpPmdldEZs
b3dCeU5hbWUgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkxODU1Ij5CdWcgOTE4NTU8L2E+PC9saT4KKzwvdWw+Cis8L3A+CisKKzxhcnRpY2xlIHN0eWxl
PSItd2Via2l0LWZsb3ctaW50bzogZmxvdzEiPjwvYXJ0aWNsZT4KKzxkaXYgc3R5bGU9Ii13ZWJr
aXQtZmxvdy1mcm9tOiBmbG93MSI+PC9kaXY+CisKKzxhcnRpY2xlIHN0eWxlPSItd2Via2l0LWZs
b3ctaW50bzogZmxvdzIiPjwvYXJ0aWNsZT4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9t
OiBmbG93MiI+PC9kaXY+CisKKzxhcnRpY2xlIHN0eWxlPSItd2Via2l0LWZsb3ctaW50bzogZmxv
dzMiPjwvYXJ0aWNsZT4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MyI+PC9k
aXY+CisKKzxpZnJhbWU+PC9pZnJhbWU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVj
dGlvbi1jb21tYW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
cHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDYzNGI5Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29t
bWFuZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0cyB0
aGF0IHRoZSAiZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiIgY29tbWFuZCByZXR1cm5zIHRoZSBDU1Mg
TmFtZWQgRmxvd3MgaW4gdGhlIHBhZ2UuIEJ1ZyA5MTYwNwotCi1mbG93MQotZmxvdzIKLWZsb3cz
Ci0KLT09PSBDU1MgTmFtZWQgRmxvd3MgPT09Ci1mbG93MQotZmxvdzIKLWZsb3czCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93
Q29sbGVjdGlvbi1jb21tYW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3By
b3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29tbWFuZC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZGZlNWIwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNFbGVtZW50cygpCi17Ci0gICAg
dmFyIGZyYW1lRG9jID0gd2luZG93LmZyYW1lc1swXS5kb2N1bWVudDsKLQotICAgIHZhciBlbCA9
IGZyYW1lRG9jLmNyZWF0ZUVsZW1lbnQoImFydGljbGUiKTsKLSAgICBlbC5pbm5lclRleHQgPSAi
ZmxvdzQiOwotICAgIGVsLnN0eWxlLndlYmtpdEZsb3dJbnRvID0gImZsb3c0IjsKLSAgICBmcmFt
ZURvYy5ib2R5LmFwcGVuZENoaWxkKGVsKTsKLQotICAgIGVsID0gZnJhbWVEb2MuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Ci0gICAgZWwuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSAiZmxvdzQiOwotICAg
IGZyYW1lRG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImNyZWF0ZUR5bmFtaWNFbGVtZW50cygpIiwgdGVzdFN0ZXApOwot
Ci0gICAgZnVuY3Rpb24gdGVzdFN0ZXAoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gbmFtZWRG
bG93Q2FsbGJhY2sobmFtZWRGbG93cykKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PSBDU1MgTmFtZWQgRmxvd3MgPT09Iik7Ci0KLSAgICAgICAgICAg
IGlmICghbmFtZWRGbG93cykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCB0byBnZXQgTmFtZWQgRmxvd3MiKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbmFtZWRGbG93cy5zb3J0KCk7
Ci0KLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZWRGbG93cy5sZW5ndGg7ICsr
aSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChuYW1lZEZsb3dzW2ld
KTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAg
fQotCi0gICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50Q2FsbGJhY2soZG9jdW1lbnQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXROYW1lZEZsb3dDb2xsZWN0
aW9uQXN5bmMoZG9jdW1lbnQuaWQsIG5hbWVkRmxvd0NhbGxiYWNrKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxs
YmFjayk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCB0aGUgImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iIGNv
bW1hbmQgcmV0dXJucyB0aGUgQ1NTIE5hbWVkIEZsb3dzIGluIHRoZSBwYWdlLgotPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjA3Ij5CdWcgOTE2MDc8
L2E+Ci08L3A+Ci0KLTxhcnRpY2xlIHN0eWxlPSItd2Via2l0LWZsb3ctaW50bzogZmxvdzEiPmZs
b3cxPC9hcnRpY2xlPgotPGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3cxIj48L2Rp
dj4KLQotPGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MiI+ZmxvdzI8L2Fy
dGljbGU+Ci08ZGl2IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzIiPjwvZGl2PgotCi08
YXJ0aWNsZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3czIj5mbG93MzwvYXJ0aWNsZT4K
LTxkaXYgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MyI+PC9kaXY+Ci0KLTxpZnJhbWU+
PC9pZnJhbWU+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMjI2MTIyZC4uNTRhYzM0MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQyLDcgKzQyLDcgQEAgQlVHV0szNTgyNCBT
S0lQIDogaHR0cC90ZXN0cy9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1yZWxheGluZy5odG1s
ID0gUEFTUwogCiAvLyBDU1MgUmVnaW9ucyBzdXBwb3J0IG5vdCB5ZXQgZW5hYmxlZCwgdHJhY2tp
bmcgaW4gYSBzZXBhcmF0ZSBFRkwgYnVnLgogQlVHV0s4Mzg5NyBTS0lQIDogZmFzdC9yZWdpb25z
ID0gUEFTUwotQlVHV0s4Mzg5NyBTS0lQIDogaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXRO
YW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQuaHRtbCA9IFBBU1MKK0JVR1dLODM4OTcgU0tJUCA6
IGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRtbCA9IFBB
U1MKIAogLy8gRXhjbHVzaW9ucyBpbXBsZW1lbnRhdGlvbiBub3QgY29tcGxldGUgeWV0LgogQlVH
V0s4Mzg5OCBTS0lQIDogZmFzdC9leGNsdXNpb25zID0gUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKaW5kZXggOTJiZGY2Yi4uZmRjMTFkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0y
NTkxLDYgKzI1OTEsMTAgQEAgY3NzMi4xLzIwMTEwMzIzL3RleHQtaW5kZW50LWludHJpbnNpYy0w
MDIuaHRtCiBjc3MyLjEvMjAxMTAzMjMvdGV4dC1pbmRlbnQtaW50cmluc2ljLTAwMy5odG0KIGNz
czIuMS8yMDExMDMyMy90ZXh0LWluZGVudC1pbnRyaW5zaWMtMDA0Lmh0bQogCisjIFtRdF0gbmV3
IHRlc3QgaW50cm9kdWNlZCBpbiByMTIzMjA1IGZhaWxzIG9uIFF0CisjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTk2NworaW5zcGVjdG9yL3N0eWxlcy9wcm90b2Nv
bC1jc3MtcmVnaW9ucy1jb21tYW5kcy5odG1sCisKICMgW1F0XSBuZXcgdGVzdCBpbnRyb2R1Y2Vk
IGluIHIxMjMyODEgZmFpbHMgb24gUXQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkxOTY4CiBmYXN0L3N1Yi1waXhlbC90YWJsZS1yb3dzLWhhdmUtc3RhYmxlLWhl
aWdodC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQyMDBmOS4uNzcxYmE0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDEyLTA3LTIzICBBbmRyZWkgUG9lbmFydSAgPHBvZW5hcnVAYWRvYmUu
Y29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3RvY29sIEV4dGVuc2lvbjogYWRkIGdl
dEZsb3dCeU5hbWUgY29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTE4NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgImdldEZsb3dCeU5hbWUiIGNvbW1hbmQgc2hvdWxkIHJldHVybiBhIE5h
bWVkRmxvdyBmb3IgYSBnaXZlbiBkb2N1bWVudCBhbmQgbmFtZS4KKworICAgICAgICBUZXN0OiBp
bnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWwKKworICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6
OmdldEZsb3dCeU5hbWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JDU1NBZ2VudCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLmdldEZsb3dCeU5hbWVBc3luYyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTmFtZWRGbG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
YW1lZEZsb3cucGFyc2VQYXlsb2FkKToKKwogMjAxMi0wNy0yMyAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjEyMzMzOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA3
MTc2YWJiLi5lMjMxNzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CkBAIC0yMTI4LDYgKzIxMjgsMTcgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0
b3RhbFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiVG90YWwgcHJvY2Vz
c2luZyB0aW1lIGZvciBhbGwgc2VsZWN0b3JzIGluIHRoZSBwcm9maWxlIChpbiBtaWxsaXNlY29u
ZHMuKSIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhIiwgInR5cGUiOiAi
YXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIlNlbGVjdG9yUHJvZmlsZUVudHJ5IiB9LCAiZGVz
Y3JpcHRpb24iOiAiQ1NTIHNlbGVjdG9yIHByb2ZpbGUgZW50cmllcy4iIH0KICAgICAgICAgICAg
ICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJp
ZCI6ICJOYW1lZEZsb3ciLAorICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAg
ICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAibm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgZG9j
dW1lbnQgbm9kZSBpZC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIs
ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBGbG93IGlkZW50aWZpZXIu
IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm92ZXJzZXQiLCAidHlwZSI6ICJi
b29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRoZSBcIm92ZXJzZXRcIiBhdHRyaWJ1dGUgb2YgYSBO
YW1lZCBGbG93LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlRoaXMgb2JqZWN0IHJlcHJlc2VudHMgYSBOYW1lZCBGbG93LiIsCisgICAgICAg
ICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAg
ICAgImNvbW1hbmRzIjogWwpAQCAtMjI3NywxMyArMjI4OCwyNSBAQAogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICJuYW1lIjogImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iLAogICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGRvY3Vt
ZW50IG5vZGUgaWQgZm9yIHdoaWNoIHRvIGdldCB0aGUgTmFtZWQgRmxvdyBDb2xsZWN0aW9uLiJ9
CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5v
ZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgZG9jdW1lbnQgbm9kZSBpZCBmb3Igd2hpY2ggdG8g
Z2V0IHRoZSBOYW1lZCBGbG93IENvbGxlY3Rpb24uIiB9CiAgICAgICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJuYW1lZEZsb3dzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmlu
ZyIgfSwgImRlc2NyaXB0aW9uIjogIkFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIE5hbWVkIEZsb3dz
IGluIHRoZSBkb2N1bWVudC4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBOYW1lZCBGbG93cyBmcm9tIHRoZSBkb2N1bWVu
dC4iLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdldEZsb3dCeU5hbWUiLAorICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGRv
Y3VtZW50IG5vZGUgaWQuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUi
LCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiTmFtZWQgRmxvdyBpZGVudGlmaWVy
LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZWRGbG93IiwgIiRyZWYiOiAiTmFtZWRG
bG93IiwgImRlc2NyaXB0aW9uIjogIkEgTmFtZWQgRmxvdy4iIH0KKyAgICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBOYW1lZCBGbG93
IGlkZW50aWZpZWQgYnkgdGhlIGdpdmVuIG5hbWUiLAorICAgICAgICAgICAgICAgICJoaWRkZW4i
OiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBi
MmVjMTBjLi5lMDc1ZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIK
KyNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cuaCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3dD
b2xsZWN0aW9uLmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTgwMyw2ICs4
MDQsMjQgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0TmFtZWRGbG93Q29sbGVjdGlvbihF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2QKICAgICByZXN1bHQgPSBuYW1lZEZsb3dz
LnJlbGVhc2UoKTsKIH0KIAordm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0Rmxvd0J5TmFtZShF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgZmxvd05h
bWUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpOYW1lZEZsb3c+JiByZXN1bHQpCit7CisgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gbV9kb21BZ2VudC0+YXNzZXJ0RG9jdW1lbnQoZXJyb3JTdHJp
bmcsIG5vZGVJZCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
V2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cgPSBkb2N1bWVudC0+bmFtZWRGbG93cygpLT5mbG93
QnlOYW1lKGZsb3dOYW1lKTsKKyAgICBpZiAoIW5hbWVkRmxvdykgeworICAgICAgICAqZXJyb3JT
dHJpbmcgPSAiTm8gdGFyZ2V0IENTUyBOYW1lZCBGbG93IGZvdW5kIjsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHJlc3VsdCA9IFR5cGVCdWlsZGVyOjpDU1M6Ok5hbWVkRmxvdzo6Y3Jl
YXRlKCkKKyAgICAgICAgLnNldE5vZGVJZChub2RlSWQpCisgICAgICAgIC5zZXROYW1lKGZsb3dO
YW1lKQorICAgICAgICAuc2V0T3ZlcnNldChuYW1lZEZsb3ctPm92ZXJzZXQoKSk7Cit9CisKIHZv
aWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OnN0YXJ0U2VsZWN0b3JQcm9maWxlcihFcnJvclN0cmluZyop
CiB7CiAgICAgbV9jdXJyZW50U2VsZWN0b3JQcm9maWxlID0gYWRvcHRQdHIobmV3IFNlbGVjdG9y
UHJvZmlsZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmgKaW5kZXggOWNlYWYzYi4uNjM1NWU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGFkZFJ1bGUoRXJyb3JTdHJpbmcqLCBpbnQgY29udGV4dE5vZGVJZCwgY29uc3Qg
U3RyaW5nJiBzZWxlY3RvciwgUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNTU1J1bGU+JiByZXN1
bHQpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKEVycm9yU3Ry
aW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4mIHJlc3VsdCk7CiAgICAg
dmlydHVhbCB2b2lkIGdldE5hbWVkRmxvd0NvbGxlY3Rpb24oRXJyb3JTdHJpbmcqLCBpbnQgbm9k
ZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiYgcmVzdWx0KTsKKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0Rmxvd0J5TmFtZShFcnJvclN0cmluZyosIGludCBub2RlSWQsIGNvbnN0
IFN0cmluZyYgZmxvd05hbWUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpOYW1lZEZsb3c+JiBy
ZXN1bHQpOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2VsZWN0b3JQcm9maWxlcihFcnJvclN0
cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wU2VsZWN0b3JQcm9maWxlcihFcnJvclN0cmlu
ZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpTZWxlY3RvclByb2ZpbGU+Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKaW5k
ZXggNzdhNWRlZS4uZjhjNDM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwpAQCAtMTgyLDYgKzE4MiwyOSBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gZmxvd05hbWUKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9XZWJJbnNwZWN0b3IuTmFtZWRG
bG93KX0gdXNlckNhbGxiYWNrCisgICAgICovCisgICAgZ2V0Rmxvd0J5TmFtZUFzeW5jOiBmdW5j
dGlvbihub2RlSWQsIGZsb3dOYW1lLCB1c2VyQ2FsbGJhY2spCisgICAgeworICAgICAgICAvKioK
KyAgICAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5zcGVjdG9yLk5hbWVkRmxvdyl9IHVz
ZXJDYWxsYmFjaworICAgICAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKKyAg
ICAgICAgICogQHBhcmFtIHs/Q1NTQWdlbnQuTmFtZWRGbG93PX0gbmFtZWRGbG93UGF5bG9hZAor
ICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sodXNlckNhbGxiYWNrLCBlcnJv
ciwgbmFtZWRGbG93UGF5bG9hZCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yIHx8
ICFuYW1lZEZsb3dQYXlsb2FkKQorICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhudWxsKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2soV2ViSW5zcGVj
dG9yLk5hbWVkRmxvdy5wYXJzZVBheWxvYWQobmFtZWRGbG93UGF5bG9hZCkpOworICAgICAgICB9
CisKKyAgICAgICAgQ1NTQWdlbnQuZ2V0Rmxvd0J5TmFtZShub2RlSWQsIGZsb3dOYW1lLCBjYWxs
YmFjay5iaW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOworICAgIH0sCisKKyAgICAvKioKICAgICAg
KiBAcGFyYW0ge0NTU0FnZW50LkNTU1J1bGVJZH0gcnVsZUlkCiAgICAgICogQHBhcmFtIHtET01B
Z2VudC5Ob2RlSWR9IG5vZGVJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdTZWxlY3RvcgpA
QCAtMTIxOSw2ICsxMjQyLDI2IEBAIFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyLnByb3RvdHlw
ZSA9IHsKIH0KIAogLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7Q1NTQWdlbnQuTmFt
ZWRGbG93fSBwYXlsb2FkCisgKi8KK1dlYkluc3BlY3Rvci5OYW1lZEZsb3cgPSBmdW5jdGlvbihw
YXlsb2FkKQoreworICAgIHRoaXMubm9kZUlkID0gcGF5bG9hZC5ub2RlSWQ7CisgICAgdGhpcy5u
YW1lID0gcGF5bG9hZC5uYW1lOworICAgIHRoaXMub3ZlcnNldCA9IHBheWxvYWQub3ZlcnNldDsK
K30KKworLyoqCisgKiBAcGFyYW0ge0NTU0FnZW50Lk5hbWVkRmxvd30gcGF5bG9hZAorICogQHJl
dHVybiB7V2ViSW5zcGVjdG9yLk5hbWVkRmxvd30KKyAqLworV2ViSW5zcGVjdG9yLk5hbWVkRmxv
dy5wYXJzZVBheWxvYWQgPSBmdW5jdGlvbihwYXlsb2FkKQoreworICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLk5hbWVkRmxvdyhwYXlsb2FkKTsKK30KKworLyoqCiAgKiBAdHlwZSB7V2ViSW5z
cGVjdG9yLkNTU1N0eWxlTW9kZWx9CiAgKi8KIFdlYkluc3BlY3Rvci5jc3NNb2RlbCA9IG51bGw7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153998</attachid>
            <date>2012-07-24 02:44:31 -0700</date>
            <delta_ts>2012-07-24 05:00:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-91855-20120724124421.patch</filename>
            <type>text/plain</type>
            <size>18828</size>
            <attacher name="Andrei Poenaru">andreigpoenaru</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODM5ODFkMTFjNGRhZWRm
Yjg3MjA1YzI1ODhkMDI4OTgxYTY1N2U0MC4uNjZlNThmMGY2OWFiM2YzZGUxNzExYWFhZDE0NjAx
ZTcyY2NlZTc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA3LTI0ICBBbmRy
ZWkgUG9lbmFydSAgPHBvZW5hcnVAYWRvYmUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFByb3RvY29sIEV4dGVuc2lvbjogYWRkIGdldEZsb3dCeU5hbWUgY29tbWFuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE4NTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgorCisgICAgICAgIFRoZSAiZ2V0Rmxvd0J5TmFtZSIg
Y29tbWFuZCBzaG91bGQgcmV0dXJuIGEgTmFtZWRGbG93IGZvciBhIGdpdmVuIGRvY3VtZW50IGFu
ZCBuYW1lLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJl
Z2lvbnMtY29tbWFuZHMuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0Rmxvd0J5TmFtZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAg
KEluc3BlY3RvckNTU0FnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0
eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5
cGUuZ2V0TmFtZWRGbG93Q29sbGVjdGlvbkFzeW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsLnByb3RvdHlwZS5nZXRGbG93QnlOYW1lQXN5bmMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5hbWVkRmxvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmFtZWRGbG93LnBh
cnNlUGF5bG9hZCk6CisKIDIwMTItMDctMjQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJlcGxhY2Ugc29tZSBjYWxsc2l0ZXMgb2Ygc2hhZG93QW5jZXN0b3JO
b2RlKCkgd2l0aCBzaGFkb3dIb3N0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbgppbmRleCA3MTc2YWJiOGM2YzNjZDNhYzBhZTJkYzYxNDcwYWZmMjU3ZjE3MGQyLi5lMjMx
NzI3NjQwZGJlYjgxNTI5YzVkZTJhNjUzMTVkMTc1Y2FjZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0yMTI4LDYgKzIxMjgsMTcgQEAKICAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ0b3RhbFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3Jp
cHRpb24iOiAiVG90YWwgcHJvY2Vzc2luZyB0aW1lIGZvciBhbGwgc2VsZWN0b3JzIGluIHRoZSBw
cm9maWxlIChpbiBtaWxsaXNlY29uZHMuKSIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJkYXRhIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIlNlbGVjdG9y
UHJvZmlsZUVudHJ5IiB9LCAiZGVzY3JpcHRpb24iOiAiQ1NTIHNlbGVjdG9yIHByb2ZpbGUgZW50
cmllcy4iIH0KICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJpZCI6ICJOYW1lZEZsb3ciLAorICAgICAgICAgICAgICAgICJ0
eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgZG9jdW1lbnQgbm9kZSBpZC4iIH0sCisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJO
YW1lZCBGbG93IGlkZW50aWZpZXIuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im92ZXJzZXQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRoZSBcIm92ZXJz
ZXRcIiBhdHRyaWJ1dGUgb2YgYSBOYW1lZCBGbG93LiIgfQorICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgb2JqZWN0IHJlcHJlc2VudHMgYSBO
YW1lZCBGbG93LiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAg
IH0KICAgICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjogWwpAQCAtMjI3NywxMyArMjI4OCwy
NSBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImdldE5hbWVkRmxv
d0NvbGxlY3Rpb24iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVz
Y3JpcHRpb24iOiAiVGhlIGRvY3VtZW50IG5vZGUgaWQgZm9yIHdoaWNoIHRvIGdldCB0aGUgTmFt
ZWQgRmxvdyBDb2xsZWN0aW9uLiJ9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9k
ZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgZG9jdW1lbnQg
bm9kZSBpZCBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBOYW1lZCBGbG93IENvbGxlY3Rpb24uIiB9CiAg
ICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lZEZsb3dzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRl
bXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwgImRlc2NyaXB0aW9uIjogIkFuIGFycmF5IGNvbnRh
aW5pbmcgdGhlIE5hbWVkIEZsb3dzIGluIHRoZSBkb2N1bWVudC4iIH0KICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBOYW1lZCBG
bG93cyBmcm9tIHRoZSBkb2N1bWVudC4iLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVl
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjog
ImdldEZsb3dCeU5hbWUiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIGRvY3VtZW50IG5vZGUgaWQuIiB9LAorICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
TmFtZWQgRmxvdyBpZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZWRG
bG93IiwgIiRyZWYiOiAiTmFtZWRGbG93IiwgImRlc2NyaXB0aW9uIjogIkEgTmFtZWQgRmxvdy4i
IH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJS
ZXR1cm5zIHRoZSBOYW1lZCBGbG93IGlkZW50aWZpZWQgYnkgdGhlIGdpdmVuIG5hbWUiLAorICAg
ICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAg
ICAgICAgICJldmVudHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcAppbmRleCBiMmVjMTBjZGNiZWE2MmNlNDg5NWZjY2E2ODZkMDBkYjM1ZTRj
NGUyLi5lMDc1ZjMxNzFhMDQ5ODhmMjhiOWVhNzdhN2VmNDY5NzY4YjM4MDY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTUxLDYgKzUx
LDcgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgi
CiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKKyNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cu
aCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmgiCiAKICNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KQEAgLTgwMyw2ICs4MDQsMjQgQEAgdm9pZCBJbnNwZWN0b3JDU1NB
Z2VudDo6Z2V0TmFtZWRGbG93Q29sbGVjdGlvbihFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGlu
dCBub2QKICAgICByZXN1bHQgPSBuYW1lZEZsb3dzLnJlbGVhc2UoKTsKIH0KIAordm9pZCBJbnNw
ZWN0b3JDU1NBZ2VudDo6Z2V0Rmxvd0J5TmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGlu
dCBub2RlSWQsIGNvbnN0IFN0cmluZyYgZmxvd05hbWUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NT
OjpOYW1lZEZsb3c+JiByZXN1bHQpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9kb21B
Z2VudC0+YXNzZXJ0RG9jdW1lbnQoZXJyb3JTdHJpbmcsIG5vZGVJZCk7CisgICAgaWYgKCFkb2N1
bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cg
PSBkb2N1bWVudC0+bmFtZWRGbG93cygpLT5mbG93QnlOYW1lKGZsb3dOYW1lKTsKKyAgICBpZiAo
IW5hbWVkRmxvdykgeworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gdGFyZ2V0IENTUyBOYW1l
ZCBGbG93IGZvdW5kIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlc3VsdCA9IFR5
cGVCdWlsZGVyOjpDU1M6Ok5hbWVkRmxvdzo6Y3JlYXRlKCkKKyAgICAgICAgLnNldE5vZGVJZChu
b2RlSWQpCisgICAgICAgIC5zZXROYW1lKGZsb3dOYW1lKQorICAgICAgICAuc2V0T3ZlcnNldChu
YW1lZEZsb3ctPm92ZXJzZXQoKSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OnN0YXJ0
U2VsZWN0b3JQcm9maWxlcihFcnJvclN0cmluZyopCiB7CiAgICAgbV9jdXJyZW50U2VsZWN0b3JQ
cm9maWxlID0gYWRvcHRQdHIobmV3IFNlbGVjdG9yUHJvZmlsZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKaW5kZXggOWNlYWYzYjI0N2FjMTY5NjBl
YjMxMGQ1ZTgyY2ZhMjRjYzM1NWVhZS4uNjM1NWU1MDgxYjAyNjZhZTk3YjNhMWQ1MjhjYjcxNjU3
ZTMyZWQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZFJ1bGUo
RXJyb3JTdHJpbmcqLCBpbnQgY29udGV4dE5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3Rvciwg
UmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpOwogICAgIHZpcnR1YWwg
dm9pZCBnZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVC
dWlsZGVyOjpBcnJheTxTdHJpbmc+ID4mIHJlc3VsdCk7CiAgICAgdmlydHVhbCB2b2lkIGdldE5h
bWVkRmxvd0NvbGxlY3Rpb24oRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFN0cmluZz4gPiYgcmVzdWx0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0Rmxv
d0J5TmFtZShFcnJvclN0cmluZyosIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgZmxvd05hbWUs
IFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpOYW1lZEZsb3c+JiByZXN1bHQpOwogCiAgICAgdmly
dHVhbCB2b2lkIHN0YXJ0U2VsZWN0b3JQcm9maWxlcihFcnJvclN0cmluZyopOwogICAgIHZpcnR1
YWwgdm9pZCBzdG9wU2VsZWN0b3JQcm9maWxlcihFcnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVp
bGRlcjo6Q1NTOjpTZWxlY3RvclByb2ZpbGU+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKaW5kZXggNzdhNWRlZWE4OTA0N2Zk
YTJiMGVhMGNkNzU3YTZlNTlmMTQ5M2M5OS4uNGM3NmUzZjAyN2Y5Yzg5ZjRkNjJkMGZhMWQ3Y2Qw
MGJkMTE2MDdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9DU1NTdHlsZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ1NTU3R5bGVNb2RlbC5qcwpAQCAtMTc4LDcgKzE3OCwzMCBAQCBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG5h
bWVkRmxvd1BheWxvYWQpOwogICAgICAgICB9CiAKLSAgICAgICAgQ1NTQWdlbnQuZ2V0TmFtZWRG
bG93Q29sbGVjdGlvbihub2RlSWQsIGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7
CisgICAgICAgIENTU0FnZW50LmdldE5hbWVkRmxvd0NvbGxlY3Rpb24obm9kZUlkLCBjYWxsYmFj
ay5iaW5kKHRoaXMsIHVzZXJDYWxsYmFjaykpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge0RPTUFnZW50Lk5vZGVJZH0gbm9kZUlkCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGZs
b3dOYW1lCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5zcGVjdG9yLk5hbWVkRmxvdyl9
IHVzZXJDYWxsYmFjaworICAgICAqLworICAgIGdldEZsb3dCeU5hbWVBc3luYzogZnVuY3Rpb24o
bm9kZUlkLCBmbG93TmFtZSwgdXNlckNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLyoqCisgICAg
ICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1dlYkluc3BlY3Rvci5OYW1lZEZsb3cpfSB1c2VyQ2Fs
bGJhY2sKKyAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9yCisgICAgICAg
ICAqIEBwYXJhbSB7P0NTU0FnZW50Lk5hbWVkRmxvdz19IG5hbWVkRmxvd1BheWxvYWQKKyAgICAg
ICAgICovCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHVzZXJDYWxsYmFjaywgZXJyb3IsIG5h
bWVkRmxvd1BheWxvYWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhbmFt
ZWRGbG93UGF5bG9hZCkKKyAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKFdlYkluc3BlY3Rvci5O
YW1lZEZsb3cucGFyc2VQYXlsb2FkKG5hbWVkRmxvd1BheWxvYWQpKTsKKyAgICAgICAgfQorCisg
ICAgICAgIENTU0FnZW50LmdldEZsb3dCeU5hbWUobm9kZUlkLCBmbG93TmFtZSwgY2FsbGJhY2su
YmluZCh0aGlzLCB1c2VyQ2FsbGJhY2spKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xMjE5LDYg
KzEyNDIsMjYgQEAgV2ViSW5zcGVjdG9yLkNTU0Rpc3BhdGNoZXIucHJvdG90eXBlID0gewogfQog
CiAvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtDU1NBZ2VudC5OYW1lZEZsb3d9IHBh
eWxvYWQKKyAqLworV2ViSW5zcGVjdG9yLk5hbWVkRmxvdyA9IGZ1bmN0aW9uKHBheWxvYWQpCit7
CisgICAgdGhpcy5ub2RlSWQgPSBwYXlsb2FkLm5vZGVJZDsKKyAgICB0aGlzLm5hbWUgPSBwYXls
b2FkLm5hbWU7CisgICAgdGhpcy5vdmVyc2V0ID0gcGF5bG9hZC5vdmVyc2V0OworfQorCisvKioK
KyAqIEBwYXJhbSB7Q1NTQWdlbnQuTmFtZWRGbG93fSBwYXlsb2FkCisgKiBAcmV0dXJuIHtXZWJJ
bnNwZWN0b3IuTmFtZWRGbG93fQorICovCitXZWJJbnNwZWN0b3IuTmFtZWRGbG93LnBhcnNlUGF5
bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCit7CisgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3Iu
TmFtZWRGbG93KHBheWxvYWQpOworfQorCisvKioKICAqIEB0eXBlIHtXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVNb2RlbH0KICAqLwogV2ViSW5zcGVjdG9yLmNzc01vZGVsID0gbnVsbDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5
ZGIyMzIxNDY3MDJkY2U0ZjYzZDM1NzMwNjE2YWMzNTQ0NDFhYTdjLi4wMjRhZWFkN2Q3NTRjMWE0
YmNmZmVmMDM3ZGExNDVmZjY3OTQyNTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDct
MjQgIEFuZHJlaSBQb2VuYXJ1ICA8cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogUHJvdG9jb2wgRXh0ZW5zaW9uOiBhZGQgZ2V0Rmxvd0J5TmFtZSBjb21tYW5kCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTg1NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCisKKyAgICAgICAgQ3JlYXRlZCBhIHNp
bmdsZSB0ZXN0IHN1aXRlIGZvciB0aGUgV2ViSW5zcGVjdG9yIHByb3RvY29sIGV4dGVuc2lvbiBm
b3IgQ1NTIFJlZ2lvbnMuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNz
cy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3N0eWxlcy9wcm90b2NvbC1jc3MtcmVnaW9ucy1jb21tYW5kcy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24t
Y29tbWFuZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDEyLTA3LTI0ICBKw6Fub3MgQmFkaWNzICA8amJhZGljc0Bp
bmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZyBhZnRl
ciByMTIzMzc5LiBOZXdseSBhZGRlZCBmYXN0L2Nzcy9zdGlja3kvcGFyc2luZy1wb3NpdGlvbi1z
dGlja3kuaHRtbCBmYWlscy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1jc3MtcmVnaW9ucy1jb21tYW5kcy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGIwYzNlNzg5YzU1ZGMwNThmN2UyNzc1MDgzZGE2OGE5OGFjMjU1
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9j
b2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1Rl
c3RzIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6CisKK2dldE5hbWVkRmxvd0NvbGxlY3Rpb24gQnVn
IDkxNjA3CitnZXRGbG93QnlOYW1lIEJ1ZyA5MTg1NQorCisKK1J1bm5pbmc6IHRlc3RHZXROYW1l
ZEZsb3dDb2xsZWN0aW9uCis9PT0gQ1NTIE5hbWVkIEZsb3dzID09PQorZmxvdzEKK2Zsb3cyCitm
bG93MworCitSdW5uaW5nOiB0ZXN0R2V0Rmxvd0J5TmFtZTEKKz09PSBOYW1lZCBGbG93ICJmbG93
MiIgZnJvbSBtYWluIGRvY3VtZW50ID09PQorbmFtZTogZmxvdzIKK292ZXJzZXQ6IGZhbHNlCisK
K1J1bm5pbmc6IHRlc3RHZXRGbG93QnlOYW1lMgorPT09IE5hbWUgRmxvdyAiZmxvdzQiIGZyb20g
bWFpbiBkb2N1bWVudCA9PT0KK1RoZXJlIGlzIG5vIE5hbWVkIEZsb3cgImZsb3c0IiBpbiB0aGUg
bWFpbiBkb2N1bWVudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTM5NjZhNGIyMmVjZjNhZjA4ZmI4NzFmYzNlNDQ1OTMzZWMxZGM0NwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29t
bWFuZHMuaHRtbApAQCAtMCwwICsxLDEyOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitmdW5jdGlvbiBjcmVhdGVEeW5hbWljRWxlbWVudHMoKQoreworICAgIHZh
ciBmcmFtZURvYyA9IHdpbmRvdy5mcmFtZXNbMF0uZG9jdW1lbnQ7CisKKyAgICB2YXIgZWwgPSBm
cmFtZURvYy5jcmVhdGVFbGVtZW50KCJhcnRpY2xlIik7CisgICAgZWwuc3R5bGUud2Via2l0Rmxv
d0ludG8gPSAiZmxvdzQiOworICAgIGZyYW1lRG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWwpOworCisg
ICAgZWwgPSBmcmFtZURvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBlbC5zdHlsZS53ZWJr
aXRGbG93RnJvbSA9ICJmbG93NCI7CisgICAgZnJhbWVEb2MuYm9keS5hcHBlbmRDaGlsZChlbCk7
CisKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFdlYkluc3Bl
Y3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7CisgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3Vp
dGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbihuZXh0KQor
ICAgICAgICB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVxdWVzdERvY3Vt
ZW50KGRvY3VtZW50Q2FsbGJhY2spOworCisgICAgICAgICAgICBmdW5jdGlvbiBkb2N1bWVudENh
bGxiYWNrKGRvY3VtZW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5jc3NNb2RlbC5nZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5bmMoZG9jdW1lbnQuaWQsIG5h
bWVkRmxvd0NhbGxiYWNrKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
bmFtZWRGbG93Q2FsbGJhY2sobmFtZWRGbG93cykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IENTUyBOYW1lZCBGbG93cyA9PT0iKTsK
KworICAgICAgICAgICAgICAgIGlmICghbmFtZWRGbG93cykgeworICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCB0byBnZXQgTmFtZWQgRmxvd3Mi
KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIG5hbWVkRmxvd3Muc29ydCgpOworCisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBuYW1lZEZsb3dzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChuYW1lZEZsb3dzW2ldKTsKKworICAgICAgICAgICAgICAgIG5l
eHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0
R2V0Rmxvd0J5TmFtZTEobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRvbUFnZW50LnJlcXVlc3REb2N1bWVudChkb2N1bWVudENhbGxiYWNrKTsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gZG9jdW1lbnRDYWxsYmFjayhkb2N1bWVudCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0Rmxvd0J5TmFtZUFzeW5jKGRv
Y3VtZW50LmlkLCAiZmxvdzIiLCBuYW1lZEZsb3dDYWxsYmFjayk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIG5hbWVkRmxvd0NhbGxiYWNrKG5hbWVkRmxvdykKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IE5h
bWVkIEZsb3cgXCJmbG93MlwiIGZyb20gbWFpbiBkb2N1bWVudCA9PT0iKTsKKworICAgICAgICAg
ICAgICAgIGlmICghbmFtZWRGbG93KSB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJbIV0gRmFpbGVkIHRvIGdldCBOYW1lZCBGbG93Iik7CisgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgibmFtZTogIiArIG5hbWVkRmxvdy5uYW1lKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgib3ZlcnNldDogIiArIG5hbWVkRmxvdy5vdmVy
c2V0KTsKKworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0Rmxvd0J5TmFtZTIobmV4dCkKKyAgICAgICAg
eworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnJlcXVlc3REb2N1bWVudChkb2N1
bWVudENhbGxiYWNrKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gZG9jdW1lbnRDYWxsYmFjayhk
b2N1bWVudCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3Nz
TW9kZWwuZ2V0Rmxvd0J5TmFtZUFzeW5jKGRvY3VtZW50LmlkLCAiZmxvdzQiLCBuYW1lZEZsb3dD
YWxsYmFjayk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIG5hbWVkRmxv
d0NhbGxiYWNrKG5hbWVkRmxvdykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IE5hbWUgRmxvdyBcImZsb3c0XCIgZnJvbSBtYWluIGRv
Y3VtZW50ID09PSIpOworCisgICAgICAgICAgICAgICAgaWYgKG5hbWVkRmxvdykgeworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCIpCisgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGhlcmUgaXMgbm8gTmFtZWQgRmxvdyBcImZsb3c0XCIg
aW4gdGhlIG1haW4gZG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0sCisgICAgXSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJv
ZHkgb25sb2FkPSJjcmVhdGVEeW5hbWljRWxlbWVudHMoKSI+Cis8cD4KK1Rlc3RzIHRoZSBmb2xs
b3dpbmcgY29tbWFuZHM6Cis8dWw+CisgICAgPGxpPmdldE5hbWVkRmxvd0NvbGxlY3Rpb24gPGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjA3Ij5CdWcg
OTE2MDc8L2E+PC9saT4KKyAgICA8bGk+Z2V0Rmxvd0J5TmFtZSA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE4NTUiPkJ1ZyA5MTg1NTwvYT48L2xpPgor
PC91bD4KKzwvcD4KKworPGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MSI+
PC9hcnRpY2xlPgorPGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3cxIj48L2Rpdj4K
KworPGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MiI+PC9hcnRpY2xlPgor
PGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3cyIj48L2Rpdj4KKworPGFydGljbGUg
c3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MyI+PC9hcnRpY2xlPgorPGRpdiBzdHlsZT0i
LXdlYmtpdC1mbG93LWZyb206IGZsb3czIj48L2Rpdj4KKworPGlmcmFtZT48L2lmcmFtZT4KKwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0
aW9uLWNvbW1hbmQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
NjM0Yjk2NDQ1YmZkZGJjMmVlMmJkZTU4NmUwNzFlZDI1NDI1Mjg5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRlc3RzIHRoYXQgdGhlICJnZXROYW1lZEZs
b3dDb2xsZWN0aW9uIiBjb21tYW5kIHJldHVybnMgdGhlIENTUyBOYW1lZCBGbG93cyBpbiB0aGUg
cGFnZS4gQnVnIDkxNjA3Ci0KLWZsb3cxCi1mbG93MgotZmxvdzMKLQotPT09IENTUyBOYW1lZCBG
bG93cyA9PT0KLWZsb3cxCi1mbG93MgotZmxvdzMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93
Q29sbGVjdGlvbi1jb21tYW5kLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFk
ZmU1YjA1MTRjNTMzNjYyMDk3ZWVlNzU2MDZmNmQ5OGFmYzRiZjMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDc1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLQotZnVuY3Rpb24gY3JlYXRlRHluYW1pY0VsZW1lbnRzKCkKLXsKLSAgICB2YXIgZnJhbWVE
b2MgPSB3aW5kb3cuZnJhbWVzWzBdLmRvY3VtZW50OwotCi0gICAgdmFyIGVsID0gZnJhbWVEb2Mu
Y3JlYXRlRWxlbWVudCgiYXJ0aWNsZSIpOwotICAgIGVsLmlubmVyVGV4dCA9ICJmbG93NCI7Ci0g
ICAgZWwuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAiZmxvdzQiOwotICAgIGZyYW1lRG9jLmJvZHku
YXBwZW5kQ2hpbGQoZWwpOwotCi0gICAgZWwgPSBmcmFtZURvYy5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKLSAgICBlbC5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJmbG93NCI7Ci0gICAgZnJhbWVEb2Mu
Ym9keS5hcHBlbmRDaGlsZChlbCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYklu
c3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgiY3JlYXRlRHluYW1pY0VsZW1lbnRzKCkiLCB0ZXN0U3RlcCk7Ci0KLSAgICBmdW5j
dGlvbiB0ZXN0U3RlcCgpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBuYW1lZEZsb3dDYWxsYmFj
ayhuYW1lZEZsb3dzKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiPT09IENTUyBOYW1lZCBGbG93cyA9PT0iKTsKLQotICAgICAgICAgICAgaWYgKCFuYW1l
ZEZsb3dzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJbIV0gRmFpbGVkIHRvIGdldCBOYW1lZCBGbG93cyIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBuYW1lZEZsb3dzLnNvcnQoKTsKLQotICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lZEZsb3dzLmxlbmd0aDsgKytpKQotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KG5hbWVkRmxvd3NbaV0pOwotCi0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgZnVuY3Rpb24gZG9jdW1lbnRDYWxsYmFjayhkb2N1bWVudCkKLSAgICAgICAgewotICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldE5hbWVkRmxvd0NvbGxlY3Rpb25Bc3luYyhk
b2N1bWVudC5pZCwgbmFtZWRGbG93Q2FsbGJhY2spOwotICAgICAgICB9Ci0KLSAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbUFnZW50LnJlcXVlc3REb2N1bWVudChkb2N1bWVudENhbGxiYWNrKTsKLSAg
ICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+Ci1UZXN0cyB0aGF0IHRoZSAiZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiIgY29tbWFuZCByZXR1
cm5zIHRoZSBDU1MgTmFtZWQgRmxvd3MgaW4gdGhlIHBhZ2UuCi08YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE2MDciPkJ1ZyA5MTYwNzwvYT4KLTwvcD4K
LQotPGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MSI+ZmxvdzE8L2FydGlj
bGU+Ci08ZGl2IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzEiPjwvZGl2PgotCi08YXJ0
aWNsZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3cyIj5mbG93MjwvYXJ0aWNsZT4KLTxk
aXYgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MiI+PC9kaXY+Ci0KLTxhcnRpY2xlIHN0
eWxlPSItd2Via2l0LWZsb3ctaW50bzogZmxvdzMiPmZsb3czPC9hcnRpY2xlPgotPGRpdiBzdHls
ZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3czIj48L2Rpdj4KLQotPGlmcmFtZT48L2lmcmFtZT4K
LQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBiZjcxYmIwZDYyNmM1ZGUxNzlhMjMwZjg1YmI5ZTQyN2RhMzVlYzlmLi4wYTZm
MTQ4ZDY4ZDEwYTYxYWRiOGY2ZjI1Mjc2MmE4OGFlZjQ2NzVmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDIsNyArNDIsNyBAQCBCVUdXSzM1ODI0IFNL
SVAgOiBodHRwL3Rlc3RzL2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLXJlbGF4aW5nLmh0bWwg
PSBQQVNTCiAKIC8vIENTUyBSZWdpb25zIHN1cHBvcnQgbm90IHlldCBlbmFibGVkLCB0cmFja2lu
ZyBpbiBhIHNlcGFyYXRlIEVGTCBidWcuCiBCVUdXSzgzODk3IFNLSVAgOiBmYXN0L3JlZ2lvbnMg
PSBQQVNTCi1CVUdXSzgzODk3IFNLSVAgOiBpbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5h
bWVkRmxvd0NvbGxlY3Rpb24tY29tbWFuZC5odG1sID0gUEFTUworQlVHV0s4Mzg5NyBTS0lQIDog
aW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1jc3MtcmVnaW9ucy1jb21tYW5kcy5odG1sID0gUEFT
UwogCiAvLyBFeGNsdXNpb25zIGltcGxlbWVudGF0aW9uIG5vdCBjb21wbGV0ZSB5ZXQuCiBCVUdX
SzgzODk4IFNLSVAgOiBmYXN0L2V4Y2x1c2lvbnMgPSBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZAppbmRleCAyZDQxZGMxZmUyZDRiZmNkYzRkMGJmMDllMWI4ZGUwNTE1Nzk2YWM5Li40MjMwZTU4
ZmM2ZTU4NmI2OGQ4MTYyZDVkNDI4ZWYxNjdiOWEwNDAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKQEAgLTI2MDEsNiArMjYwMSwxMCBAQCBjc3MyLjEvMjAxMTAzMjMvdGV4dC1pbmRlbnQtaW50
cmluc2ljLTAwMi5odG0KIGNzczIuMS8yMDExMDMyMy90ZXh0LWluZGVudC1pbnRyaW5zaWMtMDAz
Lmh0bQogY3NzMi4xLzIwMTEwMzIzL3RleHQtaW5kZW50LWludHJpbnNpYy0wMDQuaHRtCiAKKyMg
W1F0XSBuZXcgdGVzdCBpbnRyb2R1Y2VkIGluIHIxMjMyMDUgZmFpbHMgb24gUXQKKyMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxOTY3CitpbnNwZWN0b3Ivc3R5bGVz
L3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWwKKwogIyBbUXRdIG5ldyB0ZXN0IGlu
dHJvZHVjZWQgaW4gcjEyMzI4MSBmYWlscyBvbiBRdAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTE5NjgKIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3MtaGF2ZS1z
dGFibGUtaGVpZ2h0Lmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>