<?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>68978</bug_id>
          
          <creation_ts>2011-09-28 00:09:24 -0700</creation_ts>
          <short_desc>message-event-constructor.html crashes and fails</short_desc>
          <delta_ts>2011-10-19 23:01:57 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dominicc</cc>
    
    <cc>japhet</cc>
    
    <cc>morrita</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>474553</commentid>
    <comment_count>0</comment_count>
      <attachid>108975</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-09-28 00:09:24 -0700</bug_when>
    <thetext>Created attachment 108975
Failed test cases

I added message-event-constructor.html in the bug 68883, but some tests are crashing or failing. This bug is similar to the bug 68345.

- The following test cases are failing, as you can see in the attached file. The IDL type of MessageEvent.data should be &apos;any&apos; (http://www.whatwg.org/specs/web-apps/current-work/#messageevent), and the IDL spec of &apos;any&apos; (http://www.w3.org/TR/WebIDL/#es-any) says that the following test cases should pass.

    shouldBe(&quot;new MessageEvent(&apos;eventType&apos;, { data: test_object }).data&quot;, &quot;test_object&quot;);
    shouldBe(&quot;new MessageEvent(&apos;eventType&apos;, { bubbles: true, cancelable: true, data: test_object, origin: &apos;wonderful&apos;, lastEventId: &apos;excellent&apos;, source: window, ports: [channel.port1, channel.port2, channel.port2] }).data&quot;, &quot;test_object&quot;);

- When we pass a DOM object (i.e. an unserializable object) as follows, then DRT crashes. This crash happens only in DRT.

    shouldBe(&quot;new MessageEvent(&apos;eventType&apos;, { data: document }).data&quot;, &quot;document&quot;);

The reason for these failures and crash is that MessageEvent.data is implemented just as SerializedScriptValue, and thus it cannot handle ScriptValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474591</commentid>
    <comment_count>1</comment_count>
      <attachid>108982</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-09-28 01:17:43 -0700</bug_when>
    <thetext>Created attachment 108982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476798</commentid>
    <comment_count>2</comment_count>
      <attachid>108982</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-10-02 23:06:29 -0700</bug_when>
    <thetext>Comment on attachment 108982
Patch

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

&gt; Source/WebCore/dom/MessageEvent.h:128
&gt;      RefPtr&lt;SerializedScriptValue&gt; m_dataAsSerializedScriptValue;

Do we need this even after introducing m_dataAsScriptValue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476807</commentid>
    <comment_count>3</comment_count>
      <attachid>108982</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-02 23:19:19 -0700</bug_when>
    <thetext>Comment on attachment 108982
Patch

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

&gt;&gt; Source/WebCore/dom/MessageEvent.h:128
&gt;&gt;      RefPtr&lt;SerializedScriptValue&gt; m_dataAsSerializedScriptValue;
&gt; 
&gt; Do we need this even after introducing m_dataAsScriptValue?

Yes. We need to keep the following factory method, which stores MessageEvent.data into m_dataAsSerializedScriptValue.

static PassRefPtr&lt;MessageEvent&gt; create(PassOwnPtr&lt;MessagePortArray&gt; ports, PassRefPtr&lt;SerializedScriptValue&gt; data\
, const String&amp; origin = &quot;&quot;, const String&amp; lastEventId = &quot;&quot;, PassRefPtr&lt;DOMWindow&gt; source = 0);

This API can be called from the context that has SerializedScriptValue but cannot convert it into ScriptValue since the context does not have ExecState. For example, WebCore/workers/WorkerMessagingProxy.cpp and WebKit/chromium/src/WebWorkerImpl.cpp are using this API. In this case, we convert the SerializedScriptValue into ScriptValue when MessageEvent.data is called (At this point, we have ExecState).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478951</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-10-05 22:31:13 -0700</bug_when>
    <thetext>&gt; static PassRefPtr&lt;MessageEvent&gt; create(PassOwnPtr&lt;MessagePortArray&gt; ports, PassRefPtr&lt;SerializedScriptValue&gt; data\
&gt; , const String&amp; origin = &quot;&quot;, const String&amp; lastEventId = &quot;&quot;, PassRefPtr&lt;DOMWindow&gt; source = 0);
&gt; 
&gt; This API can be called from the context that has SerializedScriptValue but cannot convert it into ScriptValue since the context does not have ExecState. For example, WebCore/workers/WorkerMessagingProxy.cpp and WebKit/chromium/src/WebWorkerImpl.cpp are using this API. In this case, we convert the SerializedScriptValue into ScriptValue when MessageEvent.data is called (At this point, we have ExecState).
I got it.
So it looks we should have a test that create and send an MessageEvent with non-serializable object data
to worker thread, which enforces a tricky serialization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481523</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-11 02:13:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; static PassRefPtr&lt;MessageEvent&gt; create(PassOwnPtr&lt;MessagePortArray&gt; ports, PassRefPtr&lt;SerializedScriptValue&gt; data\
&gt; &gt; , const String&amp; origin = &quot;&quot;, const String&amp; lastEventId = &quot;&quot;, PassRefPtr&lt;DOMWindow&gt; source = 0);
&gt; &gt; 
&gt; &gt; This API can be called from the context that has SerializedScriptValue but cannot convert it into ScriptValue since the context does not have ExecState. For example, WebCore/workers/WorkerMessagingProxy.cpp and WebKit/chromium/src/WebWorkerImpl.cpp are using this API. In this case, we convert the SerializedScriptValue into ScriptValue when MessageEvent.data is called (At this point, we have ExecState).
&gt; I got it.
&gt; So it looks we should have a test that create and send an MessageEvent with non-serializable object data
&gt; to worker thread, which enforces a tricky serialization.

I guess that it is impossible to write test cases where we send non-serializable data to a worker thread by postMessage() and then the worker thread constructs MessageEvent with SerializedScriptValue. This is because if we pass non-serializable data to postMessage(), postMessage() tries to serialize the non-serializable data, resulting in TypeError in browser or a crash in DRT. In other words, we cannot send non-serializable data to the worker thread by postMessage() in the first place, which makes impossible to write the test cases we want. 

Instead, I added ASSERT() to MessageEvent.dataXXXX() in order to guarantee that MessageEvent.dataXXXX() is not called for wrong type of data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481524</commentid>
    <comment_count>6</comment_count>
      <attachid>110488</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-11 02:14:24 -0700</bug_when>
    <thetext>Created attachment 110488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485074</commentid>
    <comment_count>7</comment_count>
      <attachid>111249</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-17 05:31:52 -0700</bug_when>
    <thetext>Created attachment 111249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485727</commentid>
    <comment_count>8</comment_count>
      <attachid>111249</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 18:49:15 -0700</bug_when>
    <thetext>Comment on attachment 111249
Patch

Clearing flags on attachment: 111249

Committed r97697: &lt;http://trac.webkit.org/changeset/97697&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485728</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 18:49:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485872</commentid>
    <comment_count>10</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-18 00:19:37 -0700</bug_when>
    <thetext>Reverted r97697 for reason:

some tests are broken

Committed r97725: &lt;http://trac.webkit.org/changeset/97725&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486656</commentid>
    <comment_count>11</comment_count>
      <attachid>111586</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-19 03:25:25 -0700</bug_when>
    <thetext>Created attachment 111586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486657</commentid>
    <comment_count>12</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-19 03:27:11 -0700</bug_when>
    <thetext>I am sorry for the reversion.

The reason for failures is that the change for JSMessageEvent::handleInitMessageEvent() in JSMessageEventCustom.cpp and V8MessageEvent::initMessageEventCallback() in V8MessageEventCustom.cpp was not enough. 

- I fixed these two methods.
- I removed a &apos;doTransfer&apos; parameter from JSMessageEvent::handleInitMessageEvent(), since the &apos;doTransfer&apos; is no longer used.

I confirmed that the failing tests (fast/dom/message-port-deleted-by-accessor.html, fast/events/init-events.html, fast/eventsource/eventsource-attribute-listeners.html) pass both on JSC and on V8. Would you please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487319</commentid>
    <comment_count>13</comment_count>
      <attachid>111586</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-10-19 21:54:12 -0700</bug_when>
    <thetext>Comment on attachment 111586
Patch

let&apos;s retry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487342</commentid>
    <comment_count>14</comment_count>
      <attachid>111586</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-19 23:01:51 -0700</bug_when>
    <thetext>Comment on attachment 111586
Patch

Clearing flags on attachment: 111586

Committed r97939: &lt;http://trac.webkit.org/changeset/97939&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487343</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-19 23:01:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>108975</attachid>
            <date>2011-09-28 00:09:24 -0700</date>
            <delta_ts>2011-09-28 00:09:24 -0700</delta_ts>
            <desc>Failed test cases</desc>
            <filename>testcase.html</filename>
            <type>text/html</type>
            <size>10171</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgo8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CjxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgo8c2NyaXB0
PgoKZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIGNvbnN0cnVjdG9yIGZvciB0aGUgTWVzc2Fn
ZUV2ZW50IERPTSBjbGFzcy4iKTsKCnZhciB0ZXN0X29iamVjdCA9IHtueWFubnlhbjogMTIzfTsK
Ci8vIE5vIGluaXRpYWxpemVyIGlzIHBhc3NlZC4Kc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQo
J2V2ZW50VHlwZScpLmJ1YmJsZXMiLCAiZmFsc2UiKTsKc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZl
bnQoJ2V2ZW50VHlwZScpLmNhbmNlbGFibGUiLCAiZmFsc2UiKTsKc2hvdWxkQmUoIm5ldyBNZXNz
YWdlRXZlbnQoJ2V2ZW50VHlwZScpLmRhdGEiLCAibnVsbCIpOwpzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScpLm9yaWdpbiIsICIiKTsKc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnKS5sYXN0RXZlbnRJZCIs
ICIiKTsKc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScpLnNvdXJjZSIsICJu
dWxsIik7CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnKS5wb3J0cyIsICJb
XSIpOwoKLy8gYnViYmxlcyBpcyBwYXNzZWQuCnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdl
dmVudFR5cGUnLCB7IGJ1YmJsZXM6IGZhbHNlIH0pLmJ1YmJsZXMiLCAiZmFsc2UiKTsKc2hvdWxk
QmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSB9KS5idWJi
bGVzIiwgInRydWUiKTsKCi8vIGNhbmNlbGFibGUgaXMgcGFzc2VkLgpzaG91bGRCZSgibmV3IE1l
c3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBjYW5jZWxhYmxlOiBmYWxzZSB9KS5jYW5jZWxhYmxl
IiwgImZhbHNlIik7CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGNh
bmNlbGFibGU6IHRydWUgfSkuY2FuY2VsYWJsZSIsICJ0cnVlIik7CgovLyBkYXRhIGlzIHBhc3Nl
ZC4KLy8gRklYTUUoaGFyYWtlbik6IFRoaXMgZmFpbHMgYmVjYXVzZSBNZXNzYWdlRXZlbnQuZGF0
YSBjYW5ub3QgaGFuZGxlIFNjcmlwdFZhbHVlLgpzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgn
ZXZlbnRUeXBlJywgeyBkYXRhOiB0ZXN0X29iamVjdCB9KS5kYXRhIiwgInRlc3Rfb2JqZWN0Iik7
Ci8vIEZJWE1FKGhhcmFrZW4pOiBXaGVuIHdlIHBhc3MgYSBET00gb2JqZWN0LCBpdCBjcmFzaGVz
IGluIERSVCAoaXQgcmV0dXJucyBUeXBlRXJyb3IgaW4gbm9uLURSVCBidWlsZCkuCi8vIHNob3Vs
ZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IGRvY3VtZW50IH0pLmRh
dGEiLCAiZG9jdW1lbnQiKTsKc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScs
IHsgZGF0YTogdW5kZWZpbmVkIH0pLmRhdGEiLCAidW5kZWZpbmVkIik7CnNob3VsZEJlKCJuZXcg
TWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IG51bGwgfSkuZGF0YSIsICJudWxsIik7
CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IGZhbHNlIH0p
LmRhdGEiLCAiZmFsc2UiKTsKc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScs
IHsgZGF0YTogdHJ1ZSB9KS5kYXRhIiwgInRydWUiKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJu
ZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6ICcnIH0pLmRhdGEiLCAiIik7CnNo
b3VsZEJlRXF1YWxUb1N0cmluZygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRh
OiAnY2hvY29sYXRlJyB9KS5kYXRhIiwgImNob2NvbGF0ZSIpOwpzaG91bGRCZSgibmV3IE1lc3Nh
Z2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiAxMjM0NSB9KS5kYXRhIiwgIjEyMzQ1Iik7CnNo
b3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IDE4NDQ2NzQ0MDcz
NzA5NTUxNjE1IH0pLmRhdGEiLCAiMTg0NDY3NDQwNzM3MDk1NTIwMDAiKTsKc2hvdWxkQmUoIm5l
dyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogTmFOIH0pLmRhdGEiLCAiTmFOIik7
Ci8vIE5vdGUgdGhhdCB2YWx1ZU9mKCkgaXMgbm90IGNhbGxlZCwgd2hlbiB0aGUgbGVmdCBoYW5k
IHNpZGUgaXMgZXZhbHVhdGVkLgpzaG91bGRCZUZhbHNlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVu
dFR5cGUnLCB7IGRhdGE6IHt2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXN0X29iamVj
dDsgfSB9IH0pLmRhdGEgPT0gdGVzdF9vYmplY3QiKTsKc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZl
bnQoJ2V2ZW50VHlwZScsIHsgZ2V0IGRhdGEoKSB7IHJldHVybiAxMjM7IH0gfSkuZGF0YSIsICIx
MjMiKTsKc2hvdWxkVGhyb3coIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZ2V0IGRh
dGEoKSB7IHRocm93ICdNZXNzYWdlRXZlbnQgRXJyb3InOyB9IH0pIik7CgovLyBvcmlnaW4gb3Ig
bGFzdEV2ZW50SWQgaXMgcGFzc2VkLgpbIm9yaWdpbiIsICJsYXN0RXZlbnRJZCJdLmZvckVhY2go
ZnVuY3Rpb24gKGF0dHIpIHsKICAgIC8vIFN0cmluZ3MuCiAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgIiArIGF0dHIgKyAiOiAnbWVsYW5j
aG9seScgfSkuIiArIGF0dHIsICJtZWxhbmNob2x5Iik7CiAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgIiArIGF0dHIgKyAiOiAnJyB9KS4i
ICsgYXR0ciwgIiIpOwoKICAgIC8vIE5vbi1zdHJpbmdzLgogICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7ICIgKyBhdHRyICsgIjogdW5kZWZp
bmVkIH0pLiIgKyBhdHRyLCAidW5kZWZpbmVkIik7CiAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
Im5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgIiArIGF0dHIgKyAiOiBudWxsIH0pLiIg
KyBhdHRyLCAibnVsbCIpOwogICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuZXcgTWVzc2FnZUV2
ZW50KCdldmVudFR5cGUnLCB7ICIgKyBhdHRyICsgIjogZmFsc2UgfSkuIiArIGF0dHIsICJmYWxz
ZSIpOwogICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5
cGUnLCB7ICIgKyBhdHRyICsgIjogdHJ1ZSB9KS4iICsgYXR0ciwgInRydWUiKTsKICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyAiICsgYXR0
ciArICI6IDEyMzQ1IH0pLiIgKyBhdHRyLCAiMTIzNDUiKTsKICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyAiICsgYXR0ciArICI6IDE4NDQ2
NzQ0MDczNzA5NTUxNjE1IH0pLiIgKyBhdHRyLCAiMTg0NDY3NDQwNzM3MDk1NTIwMDAiKTsKICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyAi
ICsgYXR0ciArICI6IE5hTiB9KS4iICsgYXR0ciwgIk5hTiIpOwogICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7ICIgKyBhdHRyICsgIjogW10g
fSkuIiArIGF0dHIsICIiKTsKICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibmV3IE1lc3NhZ2VF
dmVudCgnZXZlbnRUeXBlJywgeyAiICsgYXR0ciArICI6IFsxLCAyLCAzXSB9KS4iICsgYXR0ciwg
IjEsMiwzIik7CiAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2
ZW50VHlwZScsIHsgIiArIGF0dHIgKyAiOiB7bWVsYW5jaG9seTogMTIzNDV9IH0pLiIgKyBhdHRy
LCAiW29iamVjdCBPYmplY3RdIik7CiAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm5ldyBNZXNz
YWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgIiArIGF0dHIgKyAiOiB7dmFsdWVPZjogZnVuY3Rpb24g
KCkgeyByZXR1cm4gJ21lbGFuY2hvbHknOyB9IH0gfSkuIiArIGF0dHIsICJbb2JqZWN0IE9iamVj
dF0iKTsKICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRU
eXBlJywgeyBnZXQgIiArIGF0dHIgKyAiKCkgeyByZXR1cm4gMTIzOyB9IH0pLiIgKyBhdHRyLCAi
MTIzIik7CiAgICBzaG91bGRUaHJvdygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBn
ZXQgIiArIGF0dHIgKyAiKCkgeyB0aHJvdyAnTWVzc2FnZUV2ZW50IEVycm9yJzsgfSB9KSIpOwp9
KTsKCi8vIHNvdXJjZSBpcyBwYXNzZWQuCi8vIFdpbmRvdyBvYmplY3RzLgpzaG91bGRCZSgibmV3
IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBzb3VyY2U6IHdpbmRvdyB9KS5zb3VyY2UiLCAi
d2luZG93Iik7CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IHNvdXJj
ZTogdGhpcyB9KS5zb3VyY2UiLCAidGhpcyIpOwoKLy8gTm9uLXdpbmRvdyBvYmplY3RzLgpzaG91
bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBzb3VyY2U6IHRlc3Rfb2JqZWN0
IH0pLnNvdXJjZSIsICJudWxsIik7CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5
cGUnLCB7IHNvdXJjZTogZG9jdW1lbnQgfSkuc291cmNlIiwgIm51bGwiKTsKc2hvdWxkQmUoIm5l
dyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgc291cmNlOiB1bmRlZmluZWQgfSkuc291cmNl
IiwgIm51bGwiKTsKc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgc291
cmNlOiBudWxsIH0pLnNvdXJjZSIsICJudWxsIik7CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50
KCdldmVudFR5cGUnLCB7IHNvdXJjZTogZmFsc2UgfSkuc291cmNlIiwgIm51bGwiKTsKc2hvdWxk
QmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgc291cmNlOiB0cnVlIH0pLnNvdXJj
ZSIsICJudWxsIik7CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IHNv
dXJjZTogJycgfSkuc291cmNlIiwgIm51bGwiKTsKc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQo
J2V2ZW50VHlwZScsIHsgc291cmNlOiAnY2hvY29sYXRlJyB9KS5zb3VyY2UiLCAibnVsbCIpOwpz
aG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBzb3VyY2U6IDEyMzQ1IH0p
LnNvdXJjZSIsICJudWxsIik7CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUn
LCB7IHNvdXJjZTogMTg0NDY3NDQwNzM3MDk1NTE2MTUgfSkuc291cmNlIiwgIm51bGwiKTsKc2hv
dWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgc291cmNlOiBOYU4gfSkuc291
cmNlIiwgIm51bGwiKTsKLy8gTm90ZSB0aGF0IHZhbHVlT2YoKSBpcyBub3QgY2FsbGVkLCB3aGVu
IHRoZSBsZWZ0IGhhbmQgc2lkZSBpcyBldmFsdWF0ZWQuCnNob3VsZEJlRmFsc2UoIm5ldyBNZXNz
YWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgc291cmNlOiB7dmFsdWVPZjogZnVuY3Rpb24gKCkgeyBy
ZXR1cm4gd2luZG93OyB9IH0gfSkuc291cmNlID09IHdpbmRvdyIpOwpzaG91bGRCZSgibmV3IE1l
c3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBnZXQgc291cmNlKCkgeyByZXR1cm4gMTIzOyB9IH0p
LnNvdXJjZSIsICJudWxsIik7CnNob3VsZFRocm93KCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5
cGUnLCB7IGdldCBzb3VyY2UoKSB7IHRocm93ICdNZXNzYWdlRXZlbnQgRXJyb3InOyB9IH0pIik7
CgovLyBwb3J0cyBpcyBwYXNzZWQuCi8vIFZhbGlkIG1lc3NhZ2UgcG9ydHMuCnZhciBjaGFubmVs
ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVu
dFR5cGUnLCB7IHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5w
b3J0Ml0gfSkucG9ydHNbMF0iLCAiY2hhbm5lbC5wb3J0MSIpOwpzaG91bGRCZSgibmV3IE1lc3Nh
Z2VFdmVudCgnZXZlbnRUeXBlJywgeyBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9y
dDIsIGNoYW5uZWwucG9ydDJdIH0pLnBvcnRzWzFdIiwgImNoYW5uZWwucG9ydDIiKTsKc2hvdWxk
QmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgcG9ydHM6IFtjaGFubmVsLnBvcnQx
LCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXSB9KS5wb3J0c1syXSIsICJjaGFubmVsLnBv
cnQyIik7CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IHBvcnRzOiBb
XSB9KS5wb3J0cyIsICJbXSIpOwpzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBl
JywgeyBwb3J0czogdW5kZWZpbmVkIH0pLnBvcnRzIiwgIltdIik7CnNob3VsZEJlKCJuZXcgTWVz
c2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IHBvcnRzOiBudWxsIH0pLnBvcnRzIiwgIltdIik7Cgov
LyBJbnZhbGlkIG1lc3NhZ2UgcG9ydHMuCnNob3VsZFRocm93KCJuZXcgTWVzc2FnZUV2ZW50KCdl
dmVudFR5cGUnLCB7IHBvcnRzOiBbMSwgMiwgM10gfSkucG9ydHNbMl0iKTsKc2hvdWxkVGhyb3co
Im5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgcG9ydHM6IHRlc3Rfb2JqZWN0IH0pLnBv
cnRzIik7CnNob3VsZFRocm93KCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IHBvcnRz
OiBkb2N1bWVudCB9KS5wb3J0cyIpOwpzaG91bGRUaHJvdygibmV3IE1lc3NhZ2VFdmVudCgnZXZl
bnRUeXBlJywgeyBwb3J0czogZmFsc2UgfSkucG9ydHMiKTsKc2hvdWxkVGhyb3coIm5ldyBNZXNz
YWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgcG9ydHM6IHRydWUgfSkucG9ydHMiKTsKc2hvdWxkVGhy
b3coIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgcG9ydHM6ICcnIH0pLnBvcnRzIik7
CnNob3VsZFRocm93KCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IHBvcnRzOiAnY2hv
Y29sYXRlJyB9KS5wb3J0cyIpOwpzaG91bGRUaHJvdygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRU
eXBlJywgeyBwb3J0czogMTIzNDUgfSkucG9ydHMiKTsKc2hvdWxkVGhyb3coIm5ldyBNZXNzYWdl
RXZlbnQoJ2V2ZW50VHlwZScsIHsgcG9ydHM6IDE4NDQ2NzQ0MDczNzA5NTUxNjE1IH0pLnBvcnRz
Iik7CnNob3VsZFRocm93KCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IHBvcnRzOiBO
YU4gfSkucG9ydHMiKTsKc2hvdWxkVGhyb3coIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScs
IHsgZ2V0IHBvcnRzKCkgeyByZXR1cm4gMTIzOyB9IH0pLnBvcnRzIik7CnNob3VsZFRocm93KCJu
ZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGdldCBwb3J0cygpIHsgdGhyb3cgJ01lc3Nh
Z2VFdmVudCBFcnJvcic7IH0gfSkiKTsKLy8gTm90ZSB0aGF0IHZhbHVlT2YoKSBpcyBub3QgY2Fs
bGVkLCB3aGVuIHRoZSBsZWZ0IGhhbmQgc2lkZSBpcyBldmFsdWF0ZWQuCnNob3VsZFRocm93KCJu
ZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IHBvcnRzOiB7dmFsdWVPZjogZnVuY3Rpb24g
KCkgeyByZXR1cm4gW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJd
OyB9IH0gfSkucG9ydHNbMF0iKTsKCi8vIEFsbCBpbml0aWFsaXplcnMgYXJlIHBhc3NlZC4Kc2hv
dWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2Fu
Y2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxh
c3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNlOiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5w
b3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0gfSkuYnViYmxlcyIsICJ0cnVlIik7
CnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUs
IGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwn
LCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5u
ZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLmNhbmNlbGFibGUiLCAi
dHJ1ZSIpOwovLyBGSVhNRShoYXJha2VuKTogVGhpcyBmYWlscyBiZWNhdXNlIE1lc3NhZ2VFdmVu
dC5kYXRhIGNhbm5vdCBoYW5kbGUgU2NyaXB0VmFsdWUuCnNob3VsZEJlKCJuZXcgTWVzc2FnZUV2
ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6
IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVu
dCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIs
IGNoYW5uZWwucG9ydDJdIH0pLmRhdGEiLCAidGVzdF9vYmplY3QiKTsKc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNh
bmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBs
YXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwu
cG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLm9yaWdpbiIsICJ3b25kZXJm
dWwiKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUn
LCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBv
cmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2lu
ZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJd
IH0pLmxhc3RFdmVudElkIiwgImV4Y2VsbGVudCIpOwpzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVu
dCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0
ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQn
LCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBj
aGFubmVsLnBvcnQyXSB9KS5zb3VyY2UiLCAid2luZG93Iik7CnNob3VsZEJlKCJuZXcgTWVzc2Fn
ZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRh
dGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2Vs
bGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9y
dDIsIGNoYW5uZWwucG9ydDJdIH0pLnBvcnRzWzBdIiwgImNoYW5uZWwucG9ydDEiKTsKc2hvdWxk
QmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2Vs
YWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RF
dmVudElkOiAnZXhjZWxsZW50Jywgc291cmNlOiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0
MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0gfSkucG9ydHNbMV0iLCAiY2hhbm5lbC5w
b3J0MiIpOwpzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVz
OiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVjdCwgb3JpZ2luOiAnd29u
ZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6
IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXSB9KS5wb3J0c1sy
XSIsICJjaGFubmVsLnBvcnQyIik7Cgp2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKPC9z
Y3JpcHQ+CjxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108982</attachid>
            <date>2011-09-28 01:17:43 -0700</date>
            <delta_ts>2011-10-11 02:14:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68978-20110928171741.patch</filename>
            <type>text/plain</type>
            <size>24280</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYxODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYWMwZGRlMmI4M2QwNjNhMzA2Njlk
YjAyMDgzZGQ1MzgzZmZhYzJmLi5jOWY3NmYwNjhkOTYzNGZiZDc4MmMwNmFiZTE5MDkwZGNlZjY0
ZjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMjcgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1lc3NhZ2VFdmVudC5kYXRhIGNhbiBiZSBz
dG9yZWQgYXMgU2NyaXB0VmFsdWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02ODk3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZWQgZmFpbHVyZXMgYW5kIGNyYXNoZXMuCisKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQt
Y29uc3RydWN0b3IuaHRtbDoKKwogMjAxMS0wOS0yNyAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBj
aHJvbWl1bS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGEgUGFnZVRyYW5zaXRpb25FdmVudCBj
b25zdHJ1Y3RvciBmb3IgVjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Nv
bnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9y
LWV4cGVjdGVkLnR4dAppbmRleCA1ZmNjNGQyYTZkZTliZmY1OWQ5NmM2NTZmMmM5YTI5OWYxMjU1
MDQwLi43MzNhZTRjMjVkYWQyZTE4OTUyNGMxYTFlNDU5NWQ3MWM0ZjVhYmMzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25z
dHJ1Y3Rvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvY29uc3Ry
dWN0b3JzL21lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CkBAIC0xNCw3ICsx
NCw4IEBAIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiBmYWxz
ZSB9KS5idWJibGVzIGlzIGZhbHNlCiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScs
IHsgYnViYmxlczogdHJ1ZSB9KS5idWJibGVzIGlzIHRydWUKIFBBU1MgbmV3IE1lc3NhZ2VFdmVu
dCgnZXZlbnRUeXBlJywgeyBjYW5jZWxhYmxlOiBmYWxzZSB9KS5jYW5jZWxhYmxlIGlzIGZhbHNl
CiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9
KS5jYW5jZWxhYmxlIGlzIHRydWUKLUZBSUwgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywg
eyBkYXRhOiB0ZXN0X29iamVjdCB9KS5kYXRhIHNob3VsZCBiZSBbb2JqZWN0IE9iamVjdF0uIFdh
cyBbb2JqZWN0IE9iamVjdF0uCitQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsg
ZGF0YTogdGVzdF9vYmplY3QgfSkuZGF0YSBpcyB0ZXN0X29iamVjdAorUEFTUyBuZXcgTWVzc2Fn
ZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IGRvY3VtZW50IH0pLmRhdGEgaXMgZG9jdW1lbnQK
IFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiB1bmRlZmluZWQgfSku
ZGF0YSBpcyB1bmRlZmluZWQKIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBk
YXRhOiBudWxsIH0pLmRhdGEgaXMgbnVsbAogUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5
cGUnLCB7IGRhdGE6IGZhbHNlIH0pLmRhdGEgaXMgZmFsc2UKQEAgLTk0LDcgKzk1LDcgQEAgUEFT
UyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGdldCBwb3J0cygpIHsgdGhyb3cgJ01l
c3NhZ2VFdmVudCBFcnJvcic7IH0KIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywg
eyBwb3J0czoge3ZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtjaGFubmVsLnBvcnQxLCBj
aGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXTsgfSB9IH0pLnBvcnRzWzBdIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50
VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmpl
Y3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNl
OiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5w
b3J0Ml0gfSkuYnViYmxlcyBpcyB0cnVlCiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlw
ZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmplY3Qs
IG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNlOiB3
aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0
Ml0gfSkuY2FuY2VsYWJsZSBpcyB0cnVlCi1GQUlMIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlw
ZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmplY3Qs
IG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNlOiB3
aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0
Ml0gfSkuZGF0YSBzaG91bGQgYmUgW29iamVjdCBPYmplY3RdLiBXYXMgW29iamVjdCBPYmplY3Rd
LgorUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNh
bmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBs
YXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwu
cG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLmRhdGEgaXMgdGVzdF9vYmpl
Y3QKIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVlLCBj
YW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVsJywg
bGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFubmVs
LnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXSB9KS5vcmlnaW4gaXMgIndvbmRl
cmZ1bCIKIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVl
LCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVs
JywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFu
bmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXSB9KS5sYXN0RXZlbnRJZCBp
cyAiZXhjZWxsZW50IgogUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJs
ZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3
b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0
czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLnNvdXJj
ZSBpcyB3aW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVj
dG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sCmluZGV4IDZk
ZmI2ZjFhMGVkNGUyZTdhYzY4MDJhYTliNzUwMWQwM2U5Y2IxMGYuLjE2MzU0NTY2MWE2ZDFkY2Q2
OTU1ZjRhYWIwNWYxMWVhMjRhZTE3YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29uc3RydWN0
b3IuaHRtbApAQCAtMzEsMTAgKzMxLDggQEAgc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2
ZW50VHlwZScsIHsgY2FuY2VsYWJsZTogZmFsc2UgfSkuY2FuY2VsYWJsZSIsICJmYWwKIHNob3Vs
ZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGNhbmNlbGFibGU6IHRydWUgfSku
Y2FuY2VsYWJsZSIsICJ0cnVlIik7CiAKIC8vIGRhdGEgaXMgcGFzc2VkLgotLy8gRklYTUUoaGFy
YWtlbik6IFRoaXMgZmFpbHMgYmVjYXVzZSBNZXNzYWdlRXZlbnQuZGF0YSBjYW5ub3QgaGFuZGxl
IFNjcmlwdFZhbHVlLgogc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsg
ZGF0YTogdGVzdF9vYmplY3QgfSkuZGF0YSIsICJ0ZXN0X29iamVjdCIpOwotLy8gRklYTUUoaGFy
YWtlbik6IFdoZW4gd2UgcGFzcyBhIERPTSBvYmplY3QsIGl0IGNyYXNoZXMgaW4gRFJUIChpdCBy
ZXR1cm5zIFR5cGVFcnJvciBpbiBub24tRFJUIGJ1aWxkKS4KLS8vIHNob3VsZEJlKCJuZXcgTWVz
c2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IGRvY3VtZW50IH0pLmRhdGEiLCAiZG9jdW1l
bnQiKTsKK3Nob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IGRv
Y3VtZW50IH0pLmRhdGEiLCAiZG9jdW1lbnQiKTsKIHNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50
KCdldmVudFR5cGUnLCB7IGRhdGE6IHVuZGVmaW5lZCB9KS5kYXRhIiwgInVuZGVmaW5lZCIpOwog
c2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogbnVsbCB9KS5k
YXRhIiwgIm51bGwiKTsKIHNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7
IGRhdGE6IGZhbHNlIH0pLmRhdGEiLCAiZmFsc2UiKTsKQEAgLTEyMiw3ICsxMjAsNiBAQCBzaG91
bGRUaHJvdygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBwb3J0czoge3ZhbHVlT2Y6
IGZ1bmN0aW9uICgpIHsgcmV0dQogLy8gQWxsIGluaXRpYWxpemVycyBhcmUgcGFzc2VkLgogc2hv
dWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2Fu
Y2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxh
c3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNlOiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5w
b3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0gfSkuYnViYmxlcyIsICJ0cnVlIik7
CiBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVl
LCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVs
JywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFu
bmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXSB9KS5jYW5jZWxhYmxlIiwg
InRydWUiKTsKLS8vIEZJWE1FKGhhcmFrZW4pOiBUaGlzIGZhaWxzIGJlY2F1c2UgTWVzc2FnZUV2
ZW50LmRhdGEgY2Fubm90IGhhbmRsZSBTY3JpcHRWYWx1ZS4KIHNob3VsZEJlKCJuZXcgTWVzc2Fn
ZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRh
dGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2Vs
bGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9y
dDIsIGNoYW5uZWwucG9ydDJdIH0pLmRhdGEiLCAidGVzdF9vYmplY3QiKTsKIHNob3VsZEJlRXF1
YWxUb1N0cmluZygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVl
LCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVs
JywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFu
bmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXSB9KS5vcmlnaW4iLCAid29u
ZGVyZnVsIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50
VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmpl
Y3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNl
OiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5w
b3J0Ml0gfSkubGFzdEV2ZW50SWQiLCAiZXhjZWxsZW50Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU1NDU2
N2NjOTE4MjI0MDI1MzFjNTZiNGI3YjgyYjY2MzhmZWJhNi4uM2M5OTQ2YmE2MzY3MjM0MTYwOTI5
YTk5YTdjYmNkODUzOWY0ZmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTA5
LTI3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNZXNz
YWdlRXZlbnQuZGF0YSBjYW4gYmUgc3RvcmVkIGFzIFNjcmlwdFZhbHVlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5NzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHRoZSBmb2xsb3dp
bmcgdGVzdCBjYXNlcyBmYWlsIG9yIGNyYXNoOgorCisgICAgICAgIC0gc2hvdWxkQmUoIm5ldyBN
ZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogdGVzdF9vYmplY3QgfSkuZGF0YSIsICJ0
ZXN0X29iamVjdCIpIC0+IEZBSUwKKyAgICAgICAgLSBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5
cGUnLCB7IGRhdGE6IGRvY3VtZW50IH0pLmRhdGEgLT4gQ1JBU0gKKworICAgICAgICBUaGlzIGlz
IGJlY2F1c2UgTWVzc2FnZUV2ZW50LmRhdGEgaXMgaW1wbGVtZW50ZWQganVzdCBhcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWUKKyAgICAgICAgYW5kIGl0IGNhbm5vdCBrZWVwIFNjcmlwdFZhbHVlIHBh
c3NlZCBieSBKYXZhU2NyaXB0LiBUaGlzIHBhdGNoIG1ha2VzIHRoZSBmb2xsb3dpbmcgY2hhbmdl
czoKKworICAgICAgICAtIElmIE1lc3NhZ2VFdmVudCBpcyBjb25zdHJ1Y3RlZCB3aXRoIFNjcmlw
dFZhbHVlLCBpdCBpcyBzdG9yZWQgYXMgU2NyaXB0VmFsdWUgaW50ZXJuYWxseS4KKyAgICAgICAg
V2hlbiBNZXNzYWdlRXZlbnQuZGF0YSBpcyBjYWxsZWQsIHRoZSBTY3JpcHRWYWx1ZSBpcyByZXR1
cm5lZC4KKyAgICAgICAgLSBJZiBNZXNzYWdlRXZlbnQgaXMgY29uc3RydWN0ZWQgd2l0aCBTZXJp
YWxpemVkU2NyaXB0VmFsdWUsIGl0IGlzIHN0b3JlZCBhcworICAgICAgICBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUgaW50ZXJuYWxseSAoc2luY2Ugd2UgY2Fubm90IGRlc2VyaWFsaXplIGl0IGludG8g
U2NyaXB0VmFsdWUKKyAgICAgICAgYXQgdGhpcyBwb2ludCBiZWNhdXNlIG9mIGxhY2sgb2YgRXhl
Y1N0YXRlKS4gV2hlbiBNZXNzYWdlRXZlbnQuZGF0YSBpcyBjYWxsZWQsCisgICAgICAgIHRoZSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgaXMgZGVzZXJpYWxpemVkIGludG8gdGhlIGNvcnJlc3BvbmRp
bmcgU2NyaXB0VmFsdWUsCisgICAgICAgIGFuZCB0aGUgU2NyaXB0VmFsdWUgaXMgcmV0dXJuZWQu
CisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIG5vdCBtYWtlIGEgZml4IGZvciBPYmpDIGJpbmRp
bmdzIGNvZGUsIHNpbmNlIHdlIG5lZWQgdG8gZmlyc3QgZml4CisgICAgICAgIHRoZSBidWcgMjg3
NzQsIGFzIGNvbW1lbnRlZCBpbiBkb20vTWVzc2FnZUV2ZW50LmggYW5kIGRvbS9NZXNzYWdlRXZl
bnQuY3BwLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdl
LWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZUV2ZW50OjpkYXRh
KTogQ3VzdG9tIGdldHRlciBmb3IgTWVzc2FnZUV2ZW50LmRhdGEuIFN1cHBvcnRlZCBTY3JpcHRW
YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50
KTogQ2hhbmdlZCBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdG8gU2NyaXB0VmFsdWUuCisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4TWVzc2FnZUV2ZW50OjpkYXRhQWNjZXNzb3JHZXR0ZXIpOiBDdXN0b20gZ2V0
dGVyIGZvciBNZXNzYWdlRXZlbnQuZGF0YS4gU3VwcG9ydGVkIFNjcmlwdFZhbHVlLgorICAgICAg
ICAoV2ViQ29yZTo6VjhNZXNzYWdlRXZlbnQ6OnBvcnRzQWNjZXNzb3JHZXR0ZXIpOiBSZW1vdmVk
IGV4dHJhIHNwYWNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUV2ZW50Ojppbml0TWVz
c2FnZUV2ZW50Q2FsbGJhY2spOiBDaGFuZ2VkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0byBTY3Jp
cHRWYWx1ZS4KKyAgICAgICAgKiBkb20vTWVzc2FnZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KTogU3VwcG9ydGVkIFNjcmlwdFZhbHVlLgor
ICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KTogU3VwcG9y
dGVkIFNjcmlwdFZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50Ojppc01lc3Nh
Z2VFdmVudCk6IFJlbW92ZWQgZXh0cmEgc3BhY2VzLgorICAgICAgICAqIGRvbS9NZXNzYWdlRXZl
bnQuaDogQWRkZWQgRGF0YVR5cGU6OkRhdGFUeXBlU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJD
b3JlOjpNZXNzYWdlRXZlbnQ6OmNyZWF0ZSk6IFN1cHBvcnRlZCBTY3JpcHRWYWx1ZS4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6ZGF0YUFzU2NyaXB0VmFsdWUpOiBHZXR0ZXIgZm9y
IGRhdGEuIFN1cHBvcnRlZCBTY3JpcHRWYWx1ZS4KKyAgICAgICAgKiBkb20vTWVzc2FnZUV2ZW50
LmlkbDogQ2hhbmdlZCBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdG8gRE9NT2JqZWN0IChpLmUuIFNj
cmlwdFZhbHVlKS4gVGhpcyBwYXRjaCBkb2VzIG5vdCB0b3VjaCBhbiBPYmpDIHBhcnQuCisKIDIw
MTEtMDktMjcgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0uY29tPgogCiAgICAgICAg
IEltcGxlbWVudCBhIFBhZ2VUcmFuc2l0aW9uRXZlbnQgY29uc3RydWN0b3IgZm9yIFY4CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAK
aW5kZXggZTc0OGNmZmJlNzAzMzdmNzk4N2ExNjAwNzYxNGVhNTExYTE1MWM1YS4uMjU3OTUyMjhl
MWM5MGE1MjcyOGRlYzU4NjZkMzFiY2Y2Zjg2ZGQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtNTIsNiArNTIsMTUg
QEAgSlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAg
ICAgTWVzc2FnZUV2ZW50KiBldmVudCA9IHN0YXRpY19jYXN0PE1lc3NhZ2VFdmVudCo+KGltcGwo
KSk7CiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgc3dpdGNoIChldmVudC0+ZGF0YVR5cGUoKSkg
eworICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZVNjcmlwdFZhbHVlOiB7CisgICAgICAg
IFNjcmlwdFZhbHVlIHNjcmlwdFZhbHVlID0gZXZlbnQtPmRhdGFBc1NjcmlwdFZhbHVlKCk7Cisg
ICAgICAgIGlmIChzY3JpcHRWYWx1ZS5oYXNOb1ZhbHVlKCkpCisgICAgICAgICAgICByZXN1bHQg
PSBqc051bGwoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gc2NyaXB0VmFs
dWUuanNWYWx1ZSgpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIE1lc3NhZ2VF
dmVudDo6RGF0YVR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWU6CiAgICAgICAgIGlmIChTZXJpYWxp
emVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRWYWx1ZSA9IGV2ZW50LT5kYXRhQXNTZXJpYWxpemVk
U2NyaXB0VmFsdWUoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVz
ZXJpYWxpemUoZXhlYywgZ2xvYmFsT2JqZWN0KCksIE5vblRocm93aW5nKTsKQEAgLTk0LDkgKzEw
Myw3IEBAIEpTQzo6SlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChKU0M6
OkV4ZWNTdGF0ZSogZXhlYykKICAgICBjb25zdCBVU3RyaW5nJiB0eXBlQXJnID0gZXhlYy0+YXJn
dW1lbnQoMCkudG9TdHJpbmcoZXhlYyk7CiAgICAgYm9vbCBjYW5CdWJibGVBcmcgPSBleGVjLT5h
cmd1bWVudCgxKS50b0Jvb2xlYW4oZXhlYyk7CiAgICAgYm9vbCBjYW5jZWxhYmxlQXJnID0gZXhl
Yy0+YXJndW1lbnQoMikudG9Cb29sZWFuKGV4ZWMpOwotICAgIFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IGRhdGFBcmcgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShleGVjLCBl
eGVjLT5hcmd1bWVudCgzKSk7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICBTY3JpcHRWYWx1ZSBkYXRhQXJnID0gU2NyaXB0
VmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5hcmd1bWVudCgzKSk7CiAgICAgY29uc3Qg
VVN0cmluZyYgb3JpZ2luQXJnID0gZXhlYy0+YXJndW1lbnQoNCkudG9TdHJpbmcoZXhlYyk7CiAg
ICAgY29uc3QgVVN0cmluZyYgbGFzdEV2ZW50SWRBcmcgPSBleGVjLT5hcmd1bWVudCg1KS50b1N0
cmluZyhleGVjKTsKICAgICBET01XaW5kb3cqIHNvdXJjZUFyZyA9IHRvRE9NV2luZG93KGV4ZWMt
PmFyZ3VtZW50KDYpKTsKQEAgLTEwOSw3ICsxMTYsNyBAQCBKU0M6OkpTVmFsdWUgSlNNZXNzYWdl
RXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgfQogCiAg
ICAgTWVzc2FnZUV2ZW50KiBldmVudCA9IHN0YXRpY19jYXN0PE1lc3NhZ2VFdmVudCo+KHRoaXMt
PmltcGwoKSk7Ci0gICAgZXZlbnQtPmluaXRNZXNzYWdlRXZlbnQodXN0cmluZ1RvQXRvbWljU3Ry
aW5nKHR5cGVBcmcpLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIGRhdGFBcmcucmVsZWFz
ZSgpLCB1c3RyaW5nVG9TdHJpbmcob3JpZ2luQXJnKSwgdXN0cmluZ1RvU3RyaW5nKGxhc3RFdmVu
dElkQXJnKSwgc291cmNlQXJnLCBtZXNzYWdlUG9ydHMucmVsZWFzZSgpKTsKKyAgICBldmVudC0+
aW5pdE1lc3NhZ2VFdmVudCh1c3RyaW5nVG9BdG9taWNTdHJpbmcodHlwZUFyZyksIGNhbkJ1YmJs
ZUFyZywgY2FuY2VsYWJsZUFyZywgZGF0YUFyZywgdXN0cmluZ1RvU3RyaW5nKG9yaWdpbkFyZyks
IHVzdHJpbmdUb1N0cmluZyhsYXN0RXZlbnRJZEFyZyksIHNvdXJjZUFyZywgbWVzc2FnZVBvcnRz
LnJlbGVhc2UoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgaWYgKFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSogc2VyaWFsaXplZFZhbHVlID0gZXZlbnQtPmRhdGFBc1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSgpKQogICAgICAgICByZXN1bHQgPSBzZXJpYWxpemVkVmFsdWUtPmRlc2VyaWFsaXplKGV4
ZWMsIGdsb2JhbE9iamVjdCgpLCBOb25UaHJvd2luZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAppbmRl
eCA2MDQ3Y2RkNzNiNjcxNWVhMWEzYjFhNWYzMDIwOTZmODQ4NDA5MTY3Li42MTFkZDk3MjY2MTFl
MzIzYjRmNTMxODVhM2JhZjdjMjdiMThlNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTUx
LDYgKzUxLDE1IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE1lc3NhZ2VFdmVudDo6ZGF0YUFj
Y2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuCiAKICAgICB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gcmVzdWx0OwogICAgIHN3aXRjaCAoZXZlbnQtPmRhdGFUeXBlKCkpIHsKKyAgICBj
YXNlIE1lc3NhZ2VFdmVudDo6RGF0YVR5cGVTY3JpcHRWYWx1ZTogeworICAgICAgICBTY3JpcHRW
YWx1ZSBzY3JpcHRWYWx1ZSA9IGV2ZW50LT5kYXRhQXNTY3JpcHRWYWx1ZSgpOworICAgICAgICBp
ZiAoc2NyaXB0VmFsdWUuaGFzTm9WYWx1ZSgpKQorICAgICAgICAgICAgcmVzdWx0ID0gdjg6Ok51
bGwoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gc2NyaXB0VmFsdWUudjhW
YWx1ZSgpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIE1lc3NhZ2VFdmVudDo6
RGF0YVR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWU6CiAgICAgICAgIGlmIChTZXJpYWxpemVkU2Ny
aXB0VmFsdWUqIHNlcmlhbGl6ZWRWYWx1ZSA9IGV2ZW50LT5kYXRhQXNTZXJpYWxpemVkU2NyaXB0
VmFsdWUoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVzZXJpYWxp
emUoKTsKQEAgLTg4LDcgKzk3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TWVzc2FnZUV2
ZW50Ojpwb3J0c0FjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPgogICAgIE1lc3Nh
Z2VQb3J0QXJyYXkqIHBvcnRzID0gZXZlbnQtPnBvcnRzKCk7CiAgICAgaWYgKCFwb3J0cykKICAg
ICAgICAgcmV0dXJuIHY4OjpBcnJheTo6TmV3KDApOwotICAgIAorCiAgICAgTWVzc2FnZVBvcnRB
cnJheSBwb3J0c0NvcHkoKnBvcnRzKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IHBvcnRB
cnJheSA9IHY4OjpBcnJheTo6TmV3KHBvcnRzQ29weS5zaXplKCkpOwpAQCAtMTA1LDcgKzExNCw3
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVu
dENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVuCiAgICAgU3RyaW5nIHR5cGVBcmcgPSB2OFZhbHVl
VG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pOwogICAgIGJvb2wgY2FuQnViYmxlQXJnID0gYXJnc1sx
XS0+Qm9vbGVhblZhbHVlKCk7CiAgICAgYm9vbCBjYW5jZWxhYmxlQXJnID0gYXJnc1syXS0+Qm9v
bGVhblZhbHVlKCk7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YUFyZyA9
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbM10pOworICAgIFNjcmlwdFZhbHVl
IGRhdGFBcmcgPSBTY3JpcHRWYWx1ZShhcmdzWzNdKTsKICAgICBTdHJpbmcgb3JpZ2luQXJnID0g
djhWYWx1ZVRvV2ViQ29yZVN0cmluZyhhcmdzWzRdKTsKICAgICBTdHJpbmcgbGFzdEV2ZW50SWRB
cmcgPSB2OFZhbHVlVG9XZWJDb3JlU3RyaW5nKGFyZ3NbNV0pOwogCkBAIC0xMjMsNyArMTMyLDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW4KICAgICAgICAgaWYgKCFnZXRNZXNzYWdlUG9ydEFy
cmF5KGFyZ3NbN10sICpwb3J0QXJyYXkpKQogICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKICAgICB9Ci0gICAgZXZlbnQtPmluaXRNZXNzYWdlRXZlbnQodHlwZUFyZywgY2FuQnVi
YmxlQXJnLCBjYW5jZWxhYmxlQXJnLCBkYXRhQXJnLnJlbGVhc2UoKSwgb3JpZ2luQXJnLCBsYXN0
RXZlbnRJZEFyZywgc291cmNlQXJnLCBwb3J0QXJyYXkucmVsZWFzZSgpKTsKKyAgICBldmVudC0+
aW5pdE1lc3NhZ2VFdmVudCh0eXBlQXJnLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIGRh
dGFBcmcsIG9yaWdpbkFyZywgbGFzdEV2ZW50SWRBcmcsIHNvdXJjZUFyZywgcG9ydEFycmF5LnJl
bGVhc2UoKSk7CiAgICAgdjg6OlByb3BlcnR5QXR0cmlidXRlIGRhdGFBdHRyID0gc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6RG9udERlbGV0ZSB8IHY4OjpSZWFkT25seSk7
CiAgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZUFuZFNldFByb3BlcnR5KGFy
Z3MuSG9sZGVyKCksICJkYXRhIiwgZGF0YUF0dHIsIGV2ZW50LT5kYXRhQXNTZXJpYWxpemVkU2Ny
aXB0VmFsdWUoKSk7CiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01l
c3NhZ2VFdmVudC5jcHAKaW5kZXggNmI5NTY0YmE1NDZjM2U1NjJjYjEzMzc2NjZjMzNjZTNlYTIz
YjBkNS4uNDgyMTllMjNhMzBkODFiNTY4ZTZjNjVlN2Q3MzNiNGEwMWY1OGJkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VFdmVudC5jcHAKQEAgLTM0LDIwICszNCwxOCBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBNZXNzYWdlRXZlbnRJbml0OjpNZXNzYWdlRXZlbnRJbml0KCkKLSAgICA6IGRh
dGEoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoKSkKIHsKIH0KIAogTWVzc2FnZUV2ZW50
OjpNZXNzYWdlRXZlbnQoKQotICAgIDogbV9kYXRhVHlwZShEYXRhVHlwZVNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSkKLSAgICAsIG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlKFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlKCkpCisgICAgOiBtX2RhdGFUeXBlKERhdGFUeXBlU2NyaXB0VmFs
dWUpCiB7CiB9CiAKIE1lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgY29uc3QgTWVzc2FnZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCiAgICAgOiBFdmVu
dCh0eXBlLCBpbml0aWFsaXplcikKLSAgICAsIG1fZGF0YVR5cGUoRGF0YVR5cGVTZXJpYWxpemVk
U2NyaXB0VmFsdWUpCi0gICAgLCBtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShpbml0aWFs
aXplci5kYXRhKQorICAgICwgbV9kYXRhVHlwZShEYXRhVHlwZVNjcmlwdFZhbHVlKQorICAgICwg
bV9kYXRhQXNTY3JpcHRWYWx1ZShpbml0aWFsaXplci5kYXRhKQogICAgICwgbV9vcmlnaW4oaW5p
dGlhbGl6ZXIub3JpZ2luKQogICAgICwgbV9sYXN0RXZlbnRJZChpbml0aWFsaXplci5sYXN0RXZl
bnRJZCkKICAgICAsIG1fc291cmNlKGluaXRpYWxpemVyLnNvdXJjZSkKQEAgLTU1LDYgKzUzLDE3
IEBAIE1lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Y29uc3QgTWVzc2FnZUV2ZW50SW5pdCYgaW5pCiB7CiB9CiAKK01lc3NhZ2VFdmVudDo6TWVzc2Fn
ZUV2ZW50KGNvbnN0IFNjcmlwdFZhbHVlJiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29u
c3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSwgUGFz
c093blB0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0cykKKyAgICA6IEV2ZW50KGV2ZW50TmFtZXMo
KS5tZXNzYWdlRXZlbnQsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fZGF0YVR5cGUoRGF0YVR5cGVT
Y3JpcHRWYWx1ZSkKKyAgICAsIG1fZGF0YUFzU2NyaXB0VmFsdWUoZGF0YSkKKyAgICAsIG1fb3Jp
Z2luKG9yaWdpbikKKyAgICAsIG1fbGFzdEV2ZW50SWQobGFzdEV2ZW50SWQpCisgICAgLCBtX3Nv
dXJjZShzb3VyY2UpCisgICAgLCBtX3BvcnRzKHBvcnRzKQoreworfQorCiBNZXNzYWdlRXZlbnQ6
Ok1lc3NhZ2VFdmVudChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YSwgY29u
c3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIFBhc3NSZWZQdHI8
RE9NV2luZG93PiBzb3VyY2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMpCiAg
ICAgOiBFdmVudChldmVudE5hbWVzKCkubWVzc2FnZUV2ZW50LCBmYWxzZSwgZmFsc2UpCiAgICAg
LCBtX2RhdGFUeXBlKERhdGFUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVlKQpAQCAtOTcsNiArMTA2
LDIxIEBAIE1lc3NhZ2VFdmVudDo6fk1lc3NhZ2VFdmVudCgpCiB7CiB9CiAKK3ZvaWQgTWVzc2Fn
ZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgU2NyaXB0VmFsdWUmIGRhdGEsIGNvbnN0
IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBET01XaW5kb3cqIHNv
dXJjZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0cykKK3sKKyAgICBpZiAoZGlz
cGF0Y2hlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbml0RXZlbnQodHlwZSwgY2FuQnVi
YmxlLCBjYW5jZWxhYmxlKTsKKworICAgIG1fZGF0YVR5cGUgPSBEYXRhVHlwZVNjcmlwdFZhbHVl
OworICAgIG1fZGF0YUFzU2NyaXB0VmFsdWUgPSBkYXRhOworICAgIG1fb3JpZ2luID0gb3JpZ2lu
OworICAgIG1fbGFzdEV2ZW50SWQgPSBsYXN0RXZlbnRJZDsKKyAgICBtX3NvdXJjZSA9IHNvdXJj
ZTsKKyAgICBtX3BvcnRzID0gcG9ydHM7Cit9CisKIHZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVz
c2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEsIGNvbnN0
IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBET01XaW5kb3cqIHNv
dXJjZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0cykKIHsKICAgICBpZiAoZGlz
cGF0Y2hlZCgpKQpAQCAtMTI5LDYgKzE1Myw3IEBAIE1lc3NhZ2VQb3J0KiBNZXNzYWdlRXZlbnQ6
Om1lc3NhZ2VQb3J0KCkKICAgICByZXR1cm4gKCptX3BvcnRzKVswXS5nZXQoKTsKIH0KIAorLy8g
RklYTUU6IHJlbW92ZSB0aGlzIHdoZW4gd2UgdXBkYXRlIHRoZSBPYmpDIGJpbmRpbmdzIChidWcg
IzI4Nzc0KS4KIHZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25z
dCBTdHJpbmcmIGxhc3RFdmVudElkLCBET01XaW5kb3cqIHNvdXJjZSwgTWVzc2FnZVBvcnQqIHBv
cnQpCiB7CiAgICAgT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRzOwpAQCAtMTM5LDcgKzE2
NCw3IEBAIHZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvCiAgICAgaW5pdE1lc3NhZ2VFdmVudCh0eXBl
LCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIGRhdGEsIG9yaWdpbiwgbGFzdEV2ZW50SWQsIHNvdXJj
ZSwgcG9ydHMucmVsZWFzZSgpKTsKIH0KIAotYm9vbCBNZXNzYWdlRXZlbnQ6OmlzTWVzc2FnZUV2
ZW50KCkgY29uc3QgCitib29sIE1lc3NhZ2VFdmVudDo6aXNNZXNzYWdlRXZlbnQoKSBjb25zdAog
ewogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01l
c3NhZ2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCmluZGV4IDZh
YzRkZGUzZDNlZTYyNzk1MjE0YmY3NDY2ZTI0NDEzNDljNTljNzQuLmI5NjJmNjU0OWQ1NzVlNmQw
MjBjMjY2NzI1Y2RkMjcyMWNjZTc0ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
ZXNzYWdlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmgKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNp
bmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDIsNyArNDMsNyBAQCBjbGFzcyBET01XaW5kb3c7CiBzdHJ1Y3QgTWVzc2FnZUV2ZW50SW5p
dCA6IHB1YmxpYyBFdmVudEluaXQgewogICAgIE1lc3NhZ2VFdmVudEluaXQoKTsKIAotICAgIFJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGE7CisgICAgU2NyaXB0VmFsdWUgZGF0YTsK
ICAgICBTdHJpbmcgb3JpZ2luOwogICAgIFN0cmluZyBsYXN0RXZlbnRJZDsKICAgICBSZWZQdHI8
RE9NV2luZG93PiBzb3VyY2U7CkBAIC01NSw3ICs1NiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lc3NhZ2VFdmVudCk7CiAgICAgfQotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlKFBhc3NPd25QdHI8TWVzc2FnZVBvcnRB
cnJheT4gcG9ydHMsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhID0gMCwg
Y29uc3QgU3RyaW5nJiBvcmlnaW4gPSAiIiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCA9ICIi
LCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291cmNlID0gMCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZXNzYWdlRXZlbnQ+IGNyZWF0ZShQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRz
LCBjb25zdCBTY3JpcHRWYWx1ZSYgZGF0YSA9IFNjcmlwdFZhbHVlKCksIGNvbnN0IFN0cmluZyYg
b3JpZ2luID0gIiIsIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQgPSAiIiwgUGFzc1JlZlB0cjxE
T01XaW5kb3c+IHNvdXJjZSA9IDApCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE1lc3NhZ2VFdmVudChkYXRhLCBvcmlnaW4sIGxhc3RFdmVudElkLCBzb3VyY2UsIHBvcnRzKSk7
CisgICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlKFBhc3NP
d25QdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiA9ICIiLCBjb25zdCBTdHJpbmcmIGxh
c3RFdmVudElkID0gIiIsIFBhc3NSZWZQdHI8RE9NV2luZG93PiBzb3VyY2UgPSAwKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXNzYWdlRXZlbnQoZGF0YSwgb3JpZ2luLCBs
YXN0RXZlbnRJZCwgc291cmNlLCBwb3J0cykpOwogICAgIH0KQEAgLTc3LDYgKzgyLDcgQEAgcHVi
bGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5NZXNzYWdlRXZlbnQoKTsKIAorICAgIHZvaWQgaW5p
dE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBi
b29sIGNhbmNlbGFibGUsIGNvbnN0IFNjcmlwdFZhbHVlJiBkYXRhLCBjb25zdCBTdHJpbmcmIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgRE9NV2luZG93KiBzb3VyY2UsIFBhc3NP
d25QdHI8TWVzc2FnZVBvcnRBcnJheT4pOwogICAgIHZvaWQgaW5pdE1lc3NhZ2VFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdp
biwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgRE9NV2luZG93KiBzb3VyY2UsIFBhc3NPd25Q
dHI8TWVzc2FnZVBvcnRBcnJheT4pOwogCiAgICAgY29uc3QgU3RyaW5nJiBvcmlnaW4oKSBjb25z
dCB7IHJldHVybiBtX29yaWdpbjsgfQpAQCAtODYsNyArOTIsNiBAQCBwdWJsaWM6CiAKICAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiB3ZSBoYXZlIGN1c3RvbSBPYmpDIGJpbmRpbmcgc3Vw
cG9ydC4KICAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUqIGRhdGEoKSBjb25zdDsKLQogICAgIC8v
IEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlIHVwZGF0ZSB0aGUgT2JqQyBiaW5kaW5ncyAoYnVn
ICMyODc3NCkuCiAgICAgTWVzc2FnZVBvcnQqIG1lc3NhZ2VQb3J0KCk7CiAgICAgLy8gRklYTUU6
IHJlbW92ZSB0aGlzIHdoZW4gd2UgdXBkYXRlIHRoZSBPYmpDIGJpbmRpbmdzIChidWcgIzI4Nzc0
KS4KQEAgLTk1LDEyICsxMDAsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01lc3Nh
Z2VFdmVudCgpIGNvbnN0OwogCiAgICAgZW51bSBEYXRhVHlwZSB7CisgICAgICAgIERhdGFUeXBl
U2NyaXB0VmFsdWUsCiAgICAgICAgIERhdGFUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVlLAogICAg
ICAgICBEYXRhVHlwZVN0cmluZywKICAgICAgICAgRGF0YVR5cGVCbG9iLAogICAgICAgICBEYXRh
VHlwZUFycmF5QnVmZmVyCiAgICAgfTsKICAgICBEYXRhVHlwZSBkYXRhVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YVR5cGU7IH0KKyAgICBTY3JpcHRWYWx1ZSBkYXRhQXNTY3JpcHRWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YUFzU2NyaXB0VmFsdWU7IH0KICAgICBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUqIGRhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlLmdldCgpOyB9CiAgICAgU3RyaW5nIGRhdGFBc1N0
cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YUFzU3RyaW5nOyB9CiAgICAgQmxvYiogZGF0YUFz
QmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YUFzQmxvYi5nZXQoKTsgfQpAQCAtMTA5LDYgKzEx
Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVzc2FnZUV2ZW50KCk7CiAgICAgTWVzc2Fn
ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IE1lc3NhZ2VFdmVudEluaXQmKTsKKyAg
ICBNZXNzYWdlRXZlbnQoY29uc3QgU2NyaXB0VmFsdWUmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291
cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+KTsKICAgICBNZXNzYWdlRXZlbnQoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291cmNl
LCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+KTsKIAogICAgIGV4cGxpY2l0IE1lc3NhZ2VF
dmVudChjb25zdCBTdHJpbmcmIGRhdGEpOwpAQCAtMTE2LDYgKzEyNCw3IEBAIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgTWVzc2FnZUV2ZW50KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGRhdGEpOwog
CiAgICAgRGF0YVR5cGUgbV9kYXRhVHlwZTsKKyAgICBTY3JpcHRWYWx1ZSBtX2RhdGFBc1Njcmlw
dFZhbHVlOwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fZGF0YUFzU2VyaWFs
aXplZFNjcmlwdFZhbHVlOwogICAgIFN0cmluZyBtX2RhdGFBc1N0cmluZzsKICAgICBSZWZQdHI8
QmxvYj4gbV9kYXRhQXNCbG9iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3Nh
Z2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmlkbAppbmRleCAx
YzU2MzI2MjU3NjMxNzJkZTExNWY5MGJlN2M5MDNkMmY2NGVkMTM0Li5iYTA0NmQ1ZDc1NjhjMTAx
ZDE5N2Q1OGM3OWQ1YzIwZTU4NzI2MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZUV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50Lmlk
bApAQCAtMzYsMTMgKzM2LDEzIEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGxhc3RFdmVudElkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NV2luZG93IHNvdXJjZTsKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYm
IExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDYWNoZWRB
dHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0gYW55IGRhdGE7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ2FjaGVkQXR0cmlidXRlLCBDdXN0b21HZXR0ZXJdIERPTU9iamVjdCBkYXRhOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gQXJyYXkgcG9ydHM7CiAKICAg
ICAgICAgW0N1c3RvbV0gdm9pZCBpbml0TWVzc2FnZUV2ZW50KGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHR5cGVBcmcsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBib29s
ZWFuIGNhbkJ1YmJsZUFyZywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGJvb2xlYW4gY2FuY2VsYWJsZUFy
ZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkYXRhQXJnLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gRE9NT2JqZWN0IGRhdGFBcmcsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01T
dHJpbmcgb3JpZ2luQXJnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGxhc3RFdmVudElk
QXJnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NV2luZG93IHNvdXJjZUFyZywgCkBAIC01MSw3ICs1
MSw3IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICBbQ3VzdG9tXSB2b2lkIHdlYmtpdEluaXRN
ZXNzYWdlRXZlbnQoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcg
dHlwZUFyZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gYm9vbGVhbiBjYW5CdWJibGVBcmcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERl
ZmF1bHRWYWx1ZV0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGRhdGFBcmcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZh
dWx0VmFsdWVdIERPTU9iamVjdCBkYXRhQXJnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01T
dHJpbmcgb3JpZ2luQXJnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbGFzdEV2
ZW50SWRBcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVdpbmRvdyBzb3VyY2VBcmcsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110488</attachid>
            <date>2011-10-11 02:14:24 -0700</date>
            <delta_ts>2011-10-17 05:31:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68978-20111011181422.patch</filename>
            <type>text/plain</type>
            <size>25214</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxMDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYWVkZTc4YWRjMTRhMGIxNjliMmIy
NzMzZmQyZDIwMzExYWY0Y2NkLi4zNDU1N2M2MWZiYTc4OTdiMjIxYmM3NTY0MjA3NGU0NWRjMTIy
OWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMTAgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1lc3NhZ2VFdmVudC5kYXRhIGNhbiBiZSBz
dG9yZWQgYXMgU2NyaXB0VmFsdWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02ODk3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZWQgZmFpbHVyZXMgYW5kIGNyYXNoZXMuCisKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQt
Y29uc3RydWN0b3IuaHRtbDoKKwogMjAxMS0xMC0xMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHI5Njg3MCk6IGVkaXRpbmcvcGFzdGVib2Fy
ZC9zbWFydC1wYXN0ZS0wMDguaHRtbCBmYWlscyBvbiBub24tTWFjCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rv
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVz
c2FnZS1ldmVudC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKaW5kZXggNWZjYzRkMmE2ZGU5YmZm
NTlkOTZjNjU2ZjJjOWEyOTlmMTI1NTA0MC4uNzMzYWU0YzI1ZGFkMmUxODk1MjRjMWExZTQ1OTVk
NzFjNGY1YWJjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvY29uc3RydWN0
b3JzL21lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9yLWV4
cGVjdGVkLnR4dApAQCAtMTQsNyArMTQsOCBAQCBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50
VHlwZScsIHsgYnViYmxlczogZmFsc2UgfSkuYnViYmxlcyBpcyBmYWxzZQogUEFTUyBuZXcgTWVz
c2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUgfSkuYnViYmxlcyBpcyB0cnVl
CiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgY2FuY2VsYWJsZTogZmFsc2Ug
fSkuY2FuY2VsYWJsZSBpcyBmYWxzZQogUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUn
LCB7IGNhbmNlbGFibGU6IHRydWUgfSkuY2FuY2VsYWJsZSBpcyB0cnVlCi1GQUlMIG5ldyBNZXNz
YWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogdGVzdF9vYmplY3QgfSkuZGF0YSBzaG91bGQg
YmUgW29iamVjdCBPYmplY3RdLiBXYXMgW29iamVjdCBPYmplY3RdLgorUEFTUyBuZXcgTWVzc2Fn
ZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IHRlc3Rfb2JqZWN0IH0pLmRhdGEgaXMgdGVzdF9v
YmplY3QKK1BBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiBkb2N1bWVu
dCB9KS5kYXRhIGlzIGRvY3VtZW50CiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScs
IHsgZGF0YTogdW5kZWZpbmVkIH0pLmRhdGEgaXMgdW5kZWZpbmVkCiBQQVNTIG5ldyBNZXNzYWdl
RXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogbnVsbCB9KS5kYXRhIGlzIG51bGwKIFBBU1MgbmV3
IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiBmYWxzZSB9KS5kYXRhIGlzIGZhbHNl
CkBAIC05NCw3ICs5NSw3IEBAIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBn
ZXQgcG9ydHMoKSB7IHRocm93ICdNZXNzYWdlRXZlbnQgRXJyb3InOyB9CiBQQVNTIG5ldyBNZXNz
YWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgcG9ydHM6IHt2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJl
dHVybiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml07IH0gfSB9
KS5wb3J0c1swXSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBu
ZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6
IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJ
ZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNo
YW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLmJ1YmJsZXMgaXMgdHJ1ZQogUEFTUyBuZXcg
TWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRy
dWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJZDog
J2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5u
ZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLmNhbmNlbGFibGUgaXMgdHJ1ZQotRkFJTCBuZXcg
TWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRy
dWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJZDog
J2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5u
ZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLmRhdGEgc2hvdWxkIGJlIFtvYmplY3QgT2JqZWN0
XS4gV2FzIFtvYmplY3QgT2JqZWN0XS4KK1BBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBl
JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVjdCwg
b3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6IHdp
bmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQy
XSB9KS5kYXRhIGlzIHRlc3Rfb2JqZWN0CiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlw
ZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmplY3Qs
IG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNlOiB3
aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0
Ml0gfSkub3JpZ2luIGlzICJ3b25kZXJmdWwiCiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50
VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmpl
Y3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNl
OiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5w
b3J0Ml0gfSkubGFzdEV2ZW50SWQgaXMgImV4Y2VsbGVudCIKIFBBU1MgbmV3IE1lc3NhZ2VFdmVu
dCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0
ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQn
LCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBj
aGFubmVsLnBvcnQyXSB9KS5zb3VyY2UgaXMgd2luZG93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29u
c3RydWN0b3IuaHRtbAppbmRleCA2ZGZiNmYxYTBlZDRlMmU3YWM2ODAyYWE5Yjc1MDFkMDNlOWNi
MTBmLi4xNjM1NDU2NjFhNmQxZGNkNjk1NWY0YWFiMDVmMTFlYTI0YWUxN2EwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25z
dHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9t
ZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKQEAgLTMxLDEwICszMSw4IEBAIHNob3VsZEJl
KCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGNhbmNlbGFibGU6IGZhbHNlIH0pLmNh
bmNlbGFibGUiLCAiZmFsCiBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywg
eyBjYW5jZWxhYmxlOiB0cnVlIH0pLmNhbmNlbGFibGUiLCAidHJ1ZSIpOwogCiAvLyBkYXRhIGlz
IHBhc3NlZC4KLS8vIEZJWE1FKGhhcmFrZW4pOiBUaGlzIGZhaWxzIGJlY2F1c2UgTWVzc2FnZUV2
ZW50LmRhdGEgY2Fubm90IGhhbmRsZSBTY3JpcHRWYWx1ZS4KIHNob3VsZEJlKCJuZXcgTWVzc2Fn
ZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IHRlc3Rfb2JqZWN0IH0pLmRhdGEiLCAidGVzdF9v
YmplY3QiKTsKLS8vIEZJWE1FKGhhcmFrZW4pOiBXaGVuIHdlIHBhc3MgYSBET00gb2JqZWN0LCBp
dCBjcmFzaGVzIGluIERSVCAoaXQgcmV0dXJucyBUeXBlRXJyb3IgaW4gbm9uLURSVCBidWlsZCku
Ci0vLyBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiBkb2N1
bWVudCB9KS5kYXRhIiwgImRvY3VtZW50Iik7CitzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgn
ZXZlbnRUeXBlJywgeyBkYXRhOiBkb2N1bWVudCB9KS5kYXRhIiwgImRvY3VtZW50Iik7CiBzaG91
bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiB1bmRlZmluZWQgfSku
ZGF0YSIsICJ1bmRlZmluZWQiKTsKIHNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5
cGUnLCB7IGRhdGE6IG51bGwgfSkuZGF0YSIsICJudWxsIik7CiBzaG91bGRCZSgibmV3IE1lc3Nh
Z2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiBmYWxzZSB9KS5kYXRhIiwgImZhbHNlIik7CkBA
IC0xMjIsNyArMTIwLDYgQEAgc2hvdWxkVGhyb3coIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlw
ZScsIHsgcG9ydHM6IHt2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHUKIC8vIEFsbCBpbml0aWFs
aXplcnMgYXJlIHBhc3NlZC4KIHNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUn
LCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBv
cmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2lu
ZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJd
IH0pLmJ1YmJsZXMiLCAidHJ1ZSIpOwogc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50
VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmpl
Y3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNl
OiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5w
b3J0Ml0gfSkuY2FuY2VsYWJsZSIsICJ0cnVlIik7Ci0vLyBGSVhNRShoYXJha2VuKTogVGhpcyBm
YWlscyBiZWNhdXNlIE1lc3NhZ2VFdmVudC5kYXRhIGNhbm5vdCBoYW5kbGUgU2NyaXB0VmFsdWUu
CiBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVl
LCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVs
JywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFu
bmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXSB9KS5kYXRhIiwgInRlc3Rf
b2JqZWN0Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50
VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmpl
Y3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNl
OiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5w
b3J0Ml0gfSkub3JpZ2luIiwgIndvbmRlcmZ1bCIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJu
ZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6
IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJ
ZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNo
YW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLmxhc3RFdmVudElkIiwgImV4Y2VsbGVudCIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGE0YWIxMzA2ZTdiNzA4MjllZTdjODNjZTc3YTJlOGNiOWQ2ZDhmZDMu
LjJmYmUxMmU1NDllNTBmNzEwZTQzMzExYzY2NzBiZjc4YzBhNzA0NTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1MSBAQAorMjAxMS0xMC0xMCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgTWVzc2FnZUV2ZW50LmRhdGEgY2FuIGJlIHN0b3JlZCBhcyBTY3Jp
cHRWYWx1ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY4OTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q3VycmVudGx5LCB0aGUgZm9sbG93aW5nIHRlc3QgY2FzZXMgZmFpbCBvciBjcmFzaDoKKworICAg
ICAgICAtIHNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IHRl
c3Rfb2JqZWN0IH0pLmRhdGEiLCAidGVzdF9vYmplY3QiKSAtPiBGQUlMCisgICAgICAgIC0gbmV3
IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiBkb2N1bWVudCB9KS5kYXRhIC0+IENS
QVNICisKKyAgICAgICAgVGhpcyBpcyBiZWNhdXNlIE1lc3NhZ2VFdmVudC5kYXRhIGlzIGltcGxl
bWVudGVkIGp1c3QgYXMgU2VyaWFsaXplZFNjcmlwdFZhbHVlCisgICAgICAgIGFuZCBpdCBjYW5u
b3Qga2VlcCBTY3JpcHRWYWx1ZSBwYXNzZWQgYnkgSmF2YVNjcmlwdC4gVGhpcyBwYXRjaCBtYWtl
cyB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CisKKyAgICAgICAgLSBJZiBNZXNzYWdlRXZlbnQgaXMg
Y29uc3RydWN0ZWQgd2l0aCBTY3JpcHRWYWx1ZSwgaXQgaXMgc3RvcmVkIGFzIFNjcmlwdFZhbHVl
IGludGVybmFsbHkuCisgICAgICAgIFdoZW4gTWVzc2FnZUV2ZW50LmRhdGEgaXMgY2FsbGVkLCB0
aGUgU2NyaXB0VmFsdWUgaXMgcmV0dXJuZWQuCisgICAgICAgIC0gSWYgTWVzc2FnZUV2ZW50IGlz
IGNvbnN0cnVjdGVkIHdpdGggU2VyaWFsaXplZFNjcmlwdFZhbHVlLCBpdCBpcyBzdG9yZWQgYXMK
KyAgICAgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGludGVybmFsbHkgKHNpbmNlIHdlIGNhbm5v
dCBkZXNlcmlhbGl6ZSBpdCBpbnRvIFNjcmlwdFZhbHVlCisgICAgICAgIGF0IHRoaXMgcG9pbnQg
YmVjYXVzZSBvZiBsYWNrIG9mIEV4ZWNTdGF0ZSkuIFdoZW4gTWVzc2FnZUV2ZW50LmRhdGEgaXMg
Y2FsbGVkLAorICAgICAgICB0aGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGlzIGRlc2VyaWFsaXpl
ZCBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIFNjcmlwdFZhbHVlLAorICAgICAgICBhbmQgdGhlIFNj
cmlwdFZhbHVlIGlzIHJldHVybmVkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3QgbWFr
ZSBhIGZpeCBmb3IgT2JqQyBiaW5kaW5ncyBjb2RlLCBzaW5jZSB3ZSBuZWVkIHRvIGZpcnN0IGZp
eAorICAgICAgICB0aGUgYnVnIDI4Nzc0LCBhcyBjb21tZW50ZWQgaW4gZG9tL01lc3NhZ2VFdmVu
dC5oIGFuZCBkb20vTWVzc2FnZUV2ZW50LmNwcC4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50
cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU01lc3NhZ2VFdmVudDo6ZGF0YSk6IEN1c3RvbSBnZXR0ZXIgZm9yIE1lc3NhZ2VFdmVudC5k
YXRhLiBTdXBwb3J0ZWQgU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VF
dmVudDo6aW5pdE1lc3NhZ2VFdmVudCk6IENoYW5nZWQgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHRv
IFNjcmlwdFZhbHVlLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVu
dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE1lc3NhZ2VFdmVudDo6ZGF0YUFjY2Vz
c29yR2V0dGVyKTogQ3VzdG9tIGdldHRlciBmb3IgTWVzc2FnZUV2ZW50LmRhdGEuIFN1cHBvcnRl
ZCBTY3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUV2ZW50Ojpwb3J0c0Fj
Y2Vzc29yR2V0dGVyKTogUmVtb3ZlZCBleHRyYSBzcGFjZXMuCisgICAgICAgIChXZWJDb3JlOjpW
OE1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudENhbGxiYWNrKTogQ2hhbmdlZCBTZXJpYWxp
emVkU2NyaXB0VmFsdWUgdG8gU2NyaXB0VmFsdWUuCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudCk6IFN1
cHBvcnRlZCBTY3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6aW5p
dE1lc3NhZ2VFdmVudCk6IFN1cHBvcnRlZCBTY3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lc3NhZ2VFdmVudDo6aXNNZXNzYWdlRXZlbnQpOiBSZW1vdmVkIGV4dHJhIHNwYWNlcy4KKyAg
ICAgICAgKiBkb20vTWVzc2FnZUV2ZW50Lmg6IEFkZGVkIERhdGFUeXBlOjpEYXRhVHlwZVNjcmlw
dFZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50OjpjcmVhdGUpOiBTdXBwb3J0
ZWQgU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmRhdGFBc1Nj
cmlwdFZhbHVlKTogR2V0dGVyIGZvciBkYXRhLiBJbnNlcnQgQVNTRVJUKCkgdG8gZ3VhcmFudGVl
IHRoYXQgdGhpcyBhY2Nlc3NvciBpcyBub3QgY2FsbGVkIGZvciB1bmludGVuZGVkIHR5cGUgb2Yg
ZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6ZGF0YUFzU2VyaWFsaXplZFNj
cmlwdFZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmRhdGFB
c1N0cmluZyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50OjpkYXRhQXNC
bG9iKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmRhdGFBc0FycmF5
QnVmZmVyKTogRGl0dG8uCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVudC5pZGw6IENoYW5nZWQg
U2VyaWFsaXplZFNjcmlwdFZhbHVlIHRvIERPTU9iamVjdCAoaS5lLiBTY3JpcHRWYWx1ZSkuIFRo
aXMgcGF0Y2ggZG9lcyBub3QgdG91Y2ggYW4gT2JqQyBwYXJ0LgorCiAyMDExLTEwLTEwICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjk2ODcw
KTogZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwOC5odG1sIGZhaWxzIG9uIG5vbi1N
YWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcAppbmRleCBlNzQ4Y2ZmYmU3MDMzN2Y3OTg3YTE2MDA3NjE0ZWE1MTFhMTUxYzVhLi4y
NTc5NTIyOGUxYzkwYTUyNzI4ZGVjNTg2NmQzMWJjZjZmODZkZDk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC01Miw2
ICs1MiwxNSBAQCBKU1ZhbHVlIEpTTWVzc2FnZUV2ZW50OjpkYXRhKEV4ZWNTdGF0ZSogZXhlYykg
Y29uc3QKICAgICBNZXNzYWdlRXZlbnQqIGV2ZW50ID0gc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50
Kj4oaW1wbCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICBzd2l0Y2ggKGV2ZW50LT5kYXRh
VHlwZSgpKSB7CisgICAgY2FzZSBNZXNzYWdlRXZlbnQ6OkRhdGFUeXBlU2NyaXB0VmFsdWU6IHsK
KyAgICAgICAgU2NyaXB0VmFsdWUgc2NyaXB0VmFsdWUgPSBldmVudC0+ZGF0YUFzU2NyaXB0VmFs
dWUoKTsKKyAgICAgICAgaWYgKHNjcmlwdFZhbHVlLmhhc05vVmFsdWUoKSkKKyAgICAgICAgICAg
IHJlc3VsdCA9IGpzTnVsbCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBz
Y3JpcHRWYWx1ZS5qc1ZhbHVlKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2Ug
TWVzc2FnZUV2ZW50OjpEYXRhVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZToKICAgICAgICAgaWYg
KFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFZhbHVlID0gZXZlbnQtPmRhdGFBc1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSgpKQogICAgICAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplZFZh
bHVlLT5kZXNlcmlhbGl6ZShleGVjLCBnbG9iYWxPYmplY3QoKSwgTm9uVGhyb3dpbmcpOwpAQCAt
OTQsOSArMTAzLDcgQEAgSlNDOjpKU1ZhbHVlIEpTTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2
ZW50KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgIGNvbnN0IFVTdHJpbmcmIHR5cGVBcmcgPSBl
eGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKTsKICAgICBib29sIGNhbkJ1YmJsZUFyZyA9
IGV4ZWMtPmFyZ3VtZW50KDEpLnRvQm9vbGVhbihleGVjKTsKICAgICBib29sIGNhbmNlbGFibGVB
cmcgPSBleGVjLT5hcmd1bWVudCgyKS50b0Jvb2xlYW4oZXhlYyk7Ci0gICAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YUFyZyA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDMpKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIFNjcmlwdFZhbHVlIGRhdGFBcmcg
PSBTY3JpcHRWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmFyZ3VtZW50KDMpKTsKICAg
ICBjb25zdCBVU3RyaW5nJiBvcmlnaW5BcmcgPSBleGVjLT5hcmd1bWVudCg0KS50b1N0cmluZyhl
eGVjKTsKICAgICBjb25zdCBVU3RyaW5nJiBsYXN0RXZlbnRJZEFyZyA9IGV4ZWMtPmFyZ3VtZW50
KDUpLnRvU3RyaW5nKGV4ZWMpOwogICAgIERPTVdpbmRvdyogc291cmNlQXJnID0gdG9ET01XaW5k
b3coZXhlYy0+YXJndW1lbnQoNikpOwpAQCAtMTA5LDcgKzExNiw3IEBAIEpTQzo6SlNWYWx1ZSBK
U01lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKICAg
ICB9CiAKICAgICBNZXNzYWdlRXZlbnQqIGV2ZW50ID0gc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50
Kj4odGhpcy0+aW1wbCgpKTsKLSAgICBldmVudC0+aW5pdE1lc3NhZ2VFdmVudCh1c3RyaW5nVG9B
dG9taWNTdHJpbmcodHlwZUFyZyksIGNhbkJ1YmJsZUFyZywgY2FuY2VsYWJsZUFyZywgZGF0YUFy
Zy5yZWxlYXNlKCksIHVzdHJpbmdUb1N0cmluZyhvcmlnaW5BcmcpLCB1c3RyaW5nVG9TdHJpbmco
bGFzdEV2ZW50SWRBcmcpLCBzb3VyY2VBcmcsIG1lc3NhZ2VQb3J0cy5yZWxlYXNlKCkpOworICAg
IGV2ZW50LT5pbml0TWVzc2FnZUV2ZW50KHVzdHJpbmdUb0F0b21pY1N0cmluZyh0eXBlQXJnKSwg
Y2FuQnViYmxlQXJnLCBjYW5jZWxhYmxlQXJnLCBkYXRhQXJnLCB1c3RyaW5nVG9TdHJpbmcob3Jp
Z2luQXJnKSwgdXN0cmluZ1RvU3RyaW5nKGxhc3RFdmVudElkQXJnKSwgc291cmNlQXJnLCBtZXNz
YWdlUG9ydHMucmVsZWFzZSgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICBpZiAoU2VyaWFs
aXplZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVkVmFsdWUgPSBldmVudC0+ZGF0YUFzU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKCkpCiAgICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVzZXJp
YWxpemUoZXhlYywgZ2xvYmFsT2JqZWN0KCksIE5vblRocm93aW5nKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwCmluZGV4IDYwNDdjZGQ3M2I2NzE1ZWExYTNiMWE1ZjMwMjA5NmY4NDg0MDkxNjcuLjYxMWRk
OTcyNjYxMWUzMjNiNGY1MzE4NWEzYmFmN2MyN2IxOGU0MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cApAQCAtNTEsNiArNTEsMTUgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TWVzc2FnZUV2ZW50
OjpkYXRhQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG4KIAogICAgIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiByZXN1bHQ7CiAgICAgc3dpdGNoIChldmVudC0+ZGF0YVR5cGUoKSkg
eworICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZVNjcmlwdFZhbHVlOiB7CisgICAgICAg
IFNjcmlwdFZhbHVlIHNjcmlwdFZhbHVlID0gZXZlbnQtPmRhdGFBc1NjcmlwdFZhbHVlKCk7Cisg
ICAgICAgIGlmIChzY3JpcHRWYWx1ZS5oYXNOb1ZhbHVlKCkpCisgICAgICAgICAgICByZXN1bHQg
PSB2ODo6TnVsbCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBzY3JpcHRW
YWx1ZS52OFZhbHVlKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgTWVzc2Fn
ZUV2ZW50OjpEYXRhVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZToKICAgICAgICAgaWYgKFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFZhbHVlID0gZXZlbnQtPmRhdGFBc1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSgpKQogICAgICAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplZFZhbHVlLT5k
ZXNlcmlhbGl6ZSgpOwpAQCAtODgsNyArOTcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhN
ZXNzYWdlRXZlbnQ6OnBvcnRzQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+CiAg
ICAgTWVzc2FnZVBvcnRBcnJheSogcG9ydHMgPSBldmVudC0+cG9ydHMoKTsKICAgICBpZiAoIXBv
cnRzKQogICAgICAgICByZXR1cm4gdjg6OkFycmF5OjpOZXcoMCk7Ci0gICAgCisKICAgICBNZXNz
YWdlUG9ydEFycmF5IHBvcnRzQ29weSgqcG9ydHMpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpBcnJh
eT4gcG9ydEFycmF5ID0gdjg6OkFycmF5OjpOZXcocG9ydHNDb3B5LnNpemUoKSk7CkBAIC0xMDUs
NyArMTE0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TWVzc2FnZUV2ZW50Ojppbml0TWVz
c2FnZUV2ZW50Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW4KICAgICBTdHJpbmcgdHlwZUFyZyA9
IHY4VmFsdWVUb1dlYkNvcmVTdHJpbmcoYXJnc1swXSk7CiAgICAgYm9vbCBjYW5CdWJibGVBcmcg
PSBhcmdzWzFdLT5Cb29sZWFuVmFsdWUoKTsKICAgICBib29sIGNhbmNlbGFibGVBcmcgPSBhcmdz
WzJdLT5Cb29sZWFuVmFsdWUoKTsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBk
YXRhQXJnID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoYXJnc1szXSk7CisgICAgU2Ny
aXB0VmFsdWUgZGF0YUFyZyA9IFNjcmlwdFZhbHVlKGFyZ3NbM10pOwogICAgIFN0cmluZyBvcmln
aW5BcmcgPSB2OFZhbHVlVG9XZWJDb3JlU3RyaW5nKGFyZ3NbNF0pOwogICAgIFN0cmluZyBsYXN0
RXZlbnRJZEFyZyA9IHY4VmFsdWVUb1dlYkNvcmVTdHJpbmcoYXJnc1s1XSk7CiAKQEAgLTEyMyw3
ICsxMzIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNZXNzYWdlRXZlbnQ6OmluaXRNZXNz
YWdlRXZlbnRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbgogICAgICAgICBpZiAoIWdldE1lc3Nh
Z2VQb3J0QXJyYXkoYXJnc1s3XSwgKnBvcnRBcnJheSkpCiAgICAgICAgICAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOwogICAgIH0KLSAgICBldmVudC0+aW5pdE1lc3NhZ2VFdmVudCh0eXBlQXJn
LCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIGRhdGFBcmcucmVsZWFzZSgpLCBvcmlnaW5B
cmcsIGxhc3RFdmVudElkQXJnLCBzb3VyY2VBcmcsIHBvcnRBcnJheS5yZWxlYXNlKCkpOworICAg
IGV2ZW50LT5pbml0TWVzc2FnZUV2ZW50KHR5cGVBcmcsIGNhbkJ1YmJsZUFyZywgY2FuY2VsYWJs
ZUFyZywgZGF0YUFyZywgb3JpZ2luQXJnLCBsYXN0RXZlbnRJZEFyZywgc291cmNlQXJnLCBwb3J0
QXJyYXkucmVsZWFzZSgpKTsKICAgICB2ODo6UHJvcGVydHlBdHRyaWJ1dGUgZGF0YUF0dHIgPSBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpEb250RGVsZXRlIHwgdjg6OlJl
YWRPbmx5KTsKICAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplQW5kU2V0UHJv
cGVydHkoYXJncy5Ib2xkZXIoKSwgImRhdGEiLCBkYXRhQXR0ciwgZXZlbnQtPmRhdGFBc1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSgpKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZUV2ZW50LmNwcAppbmRleCA2Yjk1NjRiYTU0NmMzZTU2MmNiMTMzNzY2NmMz
M2NlM2VhMjNiMGQ1Li40ODIxOWUyM2EzMGQ4MWI1NjhlNmM2NWU3ZDczM2I0YTAxZjU4YmRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcApAQCAtMzQsMjAgKzM0LDE4IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIE1lc3NhZ2VFdmVudEluaXQ6Ok1lc3NhZ2VFdmVudEluaXQoKQot
ICAgIDogZGF0YShTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSgpKQogewogfQogCiBNZXNz
YWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudCgpCi0gICAgOiBtX2RhdGFUeXBlKERhdGFUeXBlU2VyaWFs
aXplZFNjcmlwdFZhbHVlKQotICAgICwgbV9kYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUoU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoKSkKKyAgICA6IG1fZGF0YVR5cGUoRGF0YVR5cGVT
Y3JpcHRWYWx1ZSkKIHsKIH0KIAogTWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBjb25zdCBNZXNzYWdlRXZlbnRJbml0JiBpbml0aWFsaXplcikKICAg
ICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKQotICAgICwgbV9kYXRhVHlwZShEYXRhVHlwZVNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSkKLSAgICAsIG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVl
KGluaXRpYWxpemVyLmRhdGEpCisgICAgLCBtX2RhdGFUeXBlKERhdGFUeXBlU2NyaXB0VmFsdWUp
CisgICAgLCBtX2RhdGFBc1NjcmlwdFZhbHVlKGluaXRpYWxpemVyLmRhdGEpCiAgICAgLCBtX29y
aWdpbihpbml0aWFsaXplci5vcmlnaW4pCiAgICAgLCBtX2xhc3RFdmVudElkKGluaXRpYWxpemVy
Lmxhc3RFdmVudElkKQogICAgICwgbV9zb3VyY2UoaW5pdGlhbGl6ZXIuc291cmNlKQpAQCAtNTUs
NiArNTMsMTcgQEAgTWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBjb25zdCBNZXNzYWdlRXZlbnRJbml0JiBpbmkKIHsKIH0KIAorTWVzc2FnZUV2ZW50
OjpNZXNzYWdlRXZlbnQoY29uc3QgU2NyaXB0VmFsdWUmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291
cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRzKQorICAgIDogRXZlbnQoZXZl
bnROYW1lcygpLm1lc3NhZ2VFdmVudCwgZmFsc2UsIGZhbHNlKQorICAgICwgbV9kYXRhVHlwZShE
YXRhVHlwZVNjcmlwdFZhbHVlKQorICAgICwgbV9kYXRhQXNTY3JpcHRWYWx1ZShkYXRhKQorICAg
ICwgbV9vcmlnaW4ob3JpZ2luKQorICAgICwgbV9sYXN0RXZlbnRJZChsYXN0RXZlbnRJZCkKKyAg
ICAsIG1fc291cmNlKHNvdXJjZSkKKyAgICAsIG1fcG9ydHMocG9ydHMpCit7Cit9CisKIE1lc3Nh
Z2VFdmVudDo6TWVzc2FnZUV2ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBk
YXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgUGFz
c1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5PiBw
b3J0cykKICAgICA6IEV2ZW50KGV2ZW50TmFtZXMoKS5tZXNzYWdlRXZlbnQsIGZhbHNlLCBmYWxz
ZSkKICAgICAsIG1fZGF0YVR5cGUoRGF0YVR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWUpCkBAIC05
Nyw2ICsxMDYsMjEgQEAgTWVzc2FnZUV2ZW50Ojp+TWVzc2FnZUV2ZW50KCkKIHsKIH0KIAordm9p
ZCBNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBjb25zdCBTY3JpcHRWYWx1ZSYgZGF0
YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIERPTVdp
bmRvdyogc291cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRzKQoreworICAg
IGlmIChkaXNwYXRjaGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRFdmVudCh0eXBl
LCBjYW5CdWJibGUsIGNhbmNlbGFibGUpOworCisgICAgbV9kYXRhVHlwZSA9IERhdGFUeXBlU2Ny
aXB0VmFsdWU7CisgICAgbV9kYXRhQXNTY3JpcHRWYWx1ZSA9IGRhdGE7CisgICAgbV9vcmlnaW4g
PSBvcmlnaW47CisgICAgbV9sYXN0RXZlbnRJZCA9IGxhc3RFdmVudElkOworICAgIG1fc291cmNl
ID0gc291cmNlOworICAgIG1fcG9ydHMgPSBwb3J0czsKK30KKwogdm9pZCBNZXNzYWdlRXZlbnQ6
OmluaXRNZXNzYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0
YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIERPTVdp
bmRvdyogc291cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRzKQogewogICAg
IGlmIChkaXNwYXRjaGVkKCkpCkBAIC0xMjksNiArMTUzLDcgQEAgTWVzc2FnZVBvcnQqIE1lc3Nh
Z2VFdmVudDo6bWVzc2FnZVBvcnQoKQogICAgIHJldHVybiAoKm1fcG9ydHMpWzBdLmdldCgpOwog
fQogCisvLyBGSVhNRTogcmVtb3ZlIHRoaXMgd2hlbiB3ZSB1cGRhdGUgdGhlIE9iakMgYmluZGlu
Z3MgKGJ1ZyAjMjg3NzQpLgogdm9pZCBNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YSwgY29uc3QgU3RyaW5nJiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIERPTVdpbmRvdyogc291cmNlLCBNZXNzYWdl
UG9ydCogcG9ydCkKIHsKICAgICBPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHM7CkBAIC0x
MzksNyArMTY0LDcgQEAgdm9pZCBNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm8KICAgICBpbml0TWVzc2FnZUV2
ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJ
ZCwgc291cmNlLCBwb3J0cy5yZWxlYXNlKCkpOwogfQogCi1ib29sIE1lc3NhZ2VFdmVudDo6aXNN
ZXNzYWdlRXZlbnQoKSBjb25zdCAKK2Jvb2wgTWVzc2FnZUV2ZW50Ojppc01lc3NhZ2VFdmVudCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmgK
aW5kZXggNmFjNGRkZTNkM2VlNjI3OTUyMTRiZjc0NjZlMjQ0MTM0OWM1OWM3NC4uNDc4YTA3Zjk1
MzU0NmY5YzVlN2VlZjY0MDIyYmY5NDI4OWUxY2Q5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZl
bnQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUg
IkV2ZW50LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1
ZS5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00Miw3ICs0Myw3IEBAIGNsYXNzIERPTVdpbmRvdzsKIHN0cnVjdCBNZXNzYWdl
RXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CiAgICAgTWVzc2FnZUV2ZW50SW5pdCgpOwog
Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YTsKKyAgICBTY3JpcHRWYWx1
ZSBkYXRhOwogICAgIFN0cmluZyBvcmlnaW47CiAgICAgU3RyaW5nIGxhc3RFdmVudElkOwogICAg
IFJlZlB0cjxET01XaW5kb3c+IHNvdXJjZTsKQEAgLTU1LDcgKzU2LDExIEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVzc2FnZUV2ZW50KTsKICAgICB9Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGUoUGFzc093blB0cjxNZXNz
YWdlUG9ydEFycmF5PiBwb3J0cywgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRh
dGEgPSAwLCBjb25zdCBTdHJpbmcmIG9yaWdpbiA9ICIiLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVu
dElkID0gIiIsIFBhc3NSZWZQdHI8RE9NV2luZG93PiBzb3VyY2UgPSAwKQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlKFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJh
eT4gcG9ydHMsIGNvbnN0IFNjcmlwdFZhbHVlJiBkYXRhID0gU2NyaXB0VmFsdWUoKSwgY29uc3Qg
U3RyaW5nJiBvcmlnaW4gPSAiIiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCA9ICIiLCBQYXNz
UmVmUHRyPERPTVdpbmRvdz4gc291cmNlID0gMCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTWVzc2FnZUV2ZW50KGRhdGEsIG9yaWdpbiwgbGFzdEV2ZW50SWQsIHNvdXJjZSwg
cG9ydHMpKTsKKyAgICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVh
dGUoUGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0cywgUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luID0gIiIsIGNvbnN0IFN0
cmluZyYgbGFzdEV2ZW50SWQgPSAiIiwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSA9IDAp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lc3NhZ2VFdmVudChkYXRhLCBv
cmlnaW4sIGxhc3RFdmVudElkLCBzb3VyY2UsIHBvcnRzKSk7CiAgICAgfQpAQCAtNzcsNiArODIs
NyBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwgfk1lc3NhZ2VFdmVudCgpOwogCisgICAg
dm9pZCBpbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgU2NyaXB0VmFsdWUmIGRhdGEsIGNvbnN0IFN0
cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBET01XaW5kb3cqIHNvdXJj
ZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5Pik7CiAgICAgdm9pZCBpbml0TWVzc2FnZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBET01XaW5kb3cqIHNvdXJjZSwg
UGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5Pik7CiAKICAgICBjb25zdCBTdHJpbmcmIG9yaWdp
bigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luOyB9CkBAIC04Niw3ICs5Miw2IEBAIHB1YmxpYzoK
IAogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB3aGVuIHdlIGhhdmUgY3VzdG9tIE9iakMgYmlu
ZGluZyBzdXBwb3J0LgogICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogZGF0YSgpIGNvbnN0Owot
CiAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIHdoZW4gd2UgdXBkYXRlIHRoZSBPYmpDIGJpbmRp
bmdzIChidWcgIzI4Nzc0KS4KICAgICBNZXNzYWdlUG9ydCogbWVzc2FnZVBvcnQoKTsKICAgICAv
LyBGSVhNRTogcmVtb3ZlIHRoaXMgd2hlbiB3ZSB1cGRhdGUgdGhlIE9iakMgYmluZGluZ3MgKGJ1
ZyAjMjg3NzQpLgpAQCAtOTUsMjAgKzEwMCwyMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGlzTWVzc2FnZUV2ZW50KCkgY29uc3Q7CiAKICAgICBlbnVtIERhdGFUeXBlIHsKKyAgICAgICAg
RGF0YVR5cGVTY3JpcHRWYWx1ZSwKICAgICAgICAgRGF0YVR5cGVTZXJpYWxpemVkU2NyaXB0VmFs
dWUsCiAgICAgICAgIERhdGFUeXBlU3RyaW5nLAogICAgICAgICBEYXRhVHlwZUJsb2IsCiAgICAg
ICAgIERhdGFUeXBlQXJyYXlCdWZmZXIKICAgICB9OwogICAgIERhdGFUeXBlIGRhdGFUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9kYXRhVHlwZTsgfQotICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSog
ZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhQXNTZXJp
YWxpemVkU2NyaXB0VmFsdWUuZ2V0KCk7IH0KLSAgICBTdHJpbmcgZGF0YUFzU3RyaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhQXNTdHJpbmc7IH0KLSAgICBCbG9iKiBkYXRhQXNCbG9iKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhQXNCbG9iLmdldCgpOyB9Ci0gICAgQXJyYXlCdWZmZXIqIGRhdGFB
c0FycmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhQXNBcnJheUJ1ZmZlci5nZXQoKTsg
fQorICAgIFNjcmlwdFZhbHVlIGRhdGFBc1NjcmlwdFZhbHVlKCkgY29uc3QgeyBBU1NFUlQobV9k
YXRhVHlwZSA9PSBEYXRhVHlwZVNjcmlwdFZhbHVlKTsgcmV0dXJuIG1fZGF0YUFzU2NyaXB0VmFs
dWU7IH0KKyAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUqIGRhdGFBc1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSgpIGNvbnN0IHsgQVNTRVJUKG1fZGF0YVR5cGUgPT0gRGF0YVR5cGVTZXJpYWxpemVkU2Ny
aXB0VmFsdWUpOyByZXR1cm4gbV9kYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUuZ2V0KCk7IH0K
KyAgICBTdHJpbmcgZGF0YUFzU3RyaW5nKCkgY29uc3QgeyBBU1NFUlQobV9kYXRhVHlwZSA9PSBE
YXRhVHlwZVN0cmluZyk7IHJldHVybiBtX2RhdGFBc1N0cmluZzsgfQorICAgIEJsb2IqIGRhdGFB
c0Jsb2IoKSBjb25zdCB7IEFTU0VSVChtX2RhdGFUeXBlID09IERhdGFUeXBlQmxvYik7IHJldHVy
biBtX2RhdGFBc0Jsb2IuZ2V0KCk7IH0KKyAgICBBcnJheUJ1ZmZlciogZGF0YUFzQXJyYXlCdWZm
ZXIoKSBjb25zdCB7IEFTU0VSVChtX2RhdGFUeXBlID09IERhdGFUeXBlQXJyYXlCdWZmZXIpOyBy
ZXR1cm4gbV9kYXRhQXNBcnJheUJ1ZmZlci5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIE1lc3Nh
Z2VFdmVudCgpOwogICAgIE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBN
ZXNzYWdlRXZlbnRJbml0Jik7CisgICAgTWVzc2FnZUV2ZW50KGNvbnN0IFNjcmlwdFZhbHVlJiBk
YXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgUGFz
c1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5Pik7
CiAgICAgTWVzc2FnZUV2ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRh
LCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgUGFzc1Jl
ZlB0cjxET01XaW5kb3c+IHNvdXJjZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5Pik7CiAK
ICAgICBleHBsaWNpdCBNZXNzYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBkYXRhKTsKQEAgLTExNiw2
ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lc3NhZ2VFdmVudChQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiBkYXRhKTsKIAogICAgIERhdGFUeXBlIG1fZGF0YVR5cGU7CisgICAgU2Ny
aXB0VmFsdWUgbV9kYXRhQXNTY3JpcHRWYWx1ZTsKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKICAgICBTdHJpbmcgbV9kYXRh
QXNTdHJpbmc7CiAgICAgUmVmUHRyPEJsb2I+IG1fZGF0YUFzQmxvYjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL01l
c3NhZ2VFdmVudC5pZGwKaW5kZXggOTIzOTYwZTE0NTkyNDk4MzY1OWIyM2Q5MjcwNjVjZjllZDRh
OWZiNS4uMzIwZGI0ODY5N2JhYzlmZDJjM2Y5MjA4ODViMDYxMWU2MDk3NjI2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VFdmVudC5pZGwKQEAgLTM2LDEzICszNiwxMyBAQCBtb2R1bGUgZXZlbnRz
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXN0RXZlbnRJZDsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVdpbmRvdyBzb3VyY2U7CiAjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0cmlidXRlLCBDdXN0b21HZXR0ZXJdIGFueSBkYXRhOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NhY2hlZEF0dHJpYnV0ZSwgQ3VzdG9tR2V0dGVy
XSBET01PYmplY3QgZGF0YTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0
ZXJdIEFycmF5IHBvcnRzOwogCiAgICAgICAgIFtDdXN0b21dIHZvaWQgaW5pdE1lc3NhZ2VFdmVu
dChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyB0eXBlQXJnLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gYm9vbGVhbiBjYW5CdWJibGVBcmcsIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVl
XSBib29sZWFuIGNhbmNlbGFibGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUgZGF0YUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTU9iamVjdCBkYXRhQXJnLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG9yaWdpbkFyZywgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IERPTVN0cmluZyBsYXN0RXZlbnRJZEFyZywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVdpbmRvdyBz
b3VyY2VBcmcsIApAQCAtNTEsNyArNTEsNyBAQCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgW0N1
c3RvbV0gdm9pZCB3ZWJraXRJbml0TWVzc2FnZUV2ZW50KGluIFtPcHRpb25hbD1DYWxsV2l0aERl
ZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHR5cGVBcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGJv
b2xlYW4gY2FuQnViYmxlQXJnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBib29sZWFuIGNhbmNl
bGFibGVBcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBk
YXRhQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01PYmplY3QgZGF0YUFyZywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG9yaWdpbkFyZywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRW
YWx1ZV0gRE9NU3RyaW5nIGxhc3RFdmVudElkQXJnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBE
T01XaW5kb3cgc291cmNlQXJnLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111249</attachid>
            <date>2011-10-17 05:31:52 -0700</date>
            <delta_ts>2011-10-19 03:25:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68978-20111017213151.patch</filename>
            <type>text/plain</type>
            <size>23770</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc2MDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZjFkOGIxMWQ2YWE5Yzky
NGFlYTA4OTlhMDc5NzA3M2ExMTU0YjMxLi4wMzMxNDE2ODY4MGU0NTAxY2M5OTFhMmMzM2VkNjI4
OTMwOTc2ZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMTAtMTcgIEtlbnRh
cm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1lc3NhZ2VFdmVudC5k
YXRhIGNhbiBiZSBzdG9yZWQgYXMgU2NyaXB0VmFsdWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyB0ZXN0IGNh
c2VzIGZhaWwgb3IgY3Jhc2g6CisKKyAgICAgICAgLSBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVu
dCgnZXZlbnRUeXBlJywgeyBkYXRhOiB0ZXN0X29iamVjdCB9KS5kYXRhIiwgInRlc3Rfb2JqZWN0
IikgLT4gRkFJTAorICAgICAgICAtIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0
YTogZG9jdW1lbnQgfSkuZGF0YSAtPiBDUkFTSAorCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBN
ZXNzYWdlRXZlbnQuZGF0YSBpcyBpbXBsZW1lbnRlZCBqdXN0IGFzIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZQorICAgICAgICBhbmQgaXQgY2Fubm90IGtlZXAgU2NyaXB0VmFsdWUgcGFzc2VkIGJ5IEph
dmFTY3JpcHQuIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgorCisgICAg
ICAgIC0gSWYgTWVzc2FnZUV2ZW50IGlzIGNvbnN0cnVjdGVkIHdpdGggU2NyaXB0VmFsdWUsIGl0
IGlzIHN0b3JlZCBhcyBTY3JpcHRWYWx1ZSBpbnRlcm5hbGx5LgorICAgICAgICBXaGVuIE1lc3Nh
Z2VFdmVudC5kYXRhIGlzIGNhbGxlZCwgdGhlIFNjcmlwdFZhbHVlIGlzIHJldHVybmVkLgorICAg
ICAgICAtIElmIE1lc3NhZ2VFdmVudCBpcyBjb25zdHJ1Y3RlZCB3aXRoIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSwgaXQgaXMgc3RvcmVkIGFzCisgICAgICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBp
bnRlcm5hbGx5IChzaW5jZSB3ZSBjYW5ub3QgZGVzZXJpYWxpemUgaXQgaW50byBTY3JpcHRWYWx1
ZQorICAgICAgICBhdCB0aGlzIHBvaW50IGJlY2F1c2Ugb2YgbGFjayBvZiBFeGVjU3RhdGUpLiBX
aGVuIE1lc3NhZ2VFdmVudC5kYXRhIGlzIGNhbGxlZCwKKyAgICAgICAgdGhlIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSBpcyBkZXNlcmlhbGl6ZWQgaW50byB0aGUgY29ycmVzcG9uZGluZyBTY3JpcHRW
YWx1ZSwKKyAgICAgICAgYW5kIHRoZSBTY3JpcHRWYWx1ZSBpcyByZXR1cm5lZC4KKworICAgICAg
ICBUaGlzIHBhdGNoIGRvZXMgbm90IG1ha2UgYSBmaXggZm9yIE9iakMgYmluZGluZ3MgY29kZSwg
c2luY2Ugd2UgbmVlZCB0byBmaXJzdCBmaXgKKyAgICAgICAgdGhlIGJ1ZyAyODc3NCwgYXMgY29t
bWVudGVkIGluIGRvbS9NZXNzYWdlRXZlbnQuaCBhbmQgZG9tL01lc3NhZ2VFdmVudC5jcHAuCisK
KyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29u
c3RydWN0b3IuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OmRhdGEpOiBDdXN0b20g
Z2V0dGVyIGZvciBNZXNzYWdlRXZlbnQuZGF0YS4gU3VwcG9ydGVkIFNjcmlwdFZhbHVlLgorICAg
ICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQpOiBDaGFuZ2Vk
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0byBTY3JpcHRWYWx1ZS4KKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhNZXNzYWdlRXZlbnQ6OmRhdGFBY2Nlc3NvckdldHRlcik6IEN1c3RvbSBnZXR0ZXIgZm9yIE1l
c3NhZ2VFdmVudC5kYXRhLiBTdXBwb3J0ZWQgU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJDb3Jl
OjpWOE1lc3NhZ2VFdmVudDo6cG9ydHNBY2Nlc3NvckdldHRlcik6IFJlbW92ZWQgZXh0cmEgc3Bh
Y2VzLgorICAgICAgICAoV2ViQ29yZTo6VjhNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnRD
YWxsYmFjayk6IENoYW5nZWQgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHRvIFNjcmlwdFZhbHVlLgor
ICAgICAgICAqIGRvbS9NZXNzYWdlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2Fn
ZUV2ZW50OjpNZXNzYWdlRXZlbnQpOiBTdXBwb3J0ZWQgU2NyaXB0VmFsdWUuCisgICAgICAgIChX
ZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQpOiBTdXBwb3J0ZWQgU2NyaXB0
VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmlzTWVzc2FnZUV2ZW50KTog
UmVtb3ZlZCBleHRyYSBzcGFjZXMuCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVudC5oOiBBZGRl
ZCBEYXRhVHlwZTo6RGF0YVR5cGVTY3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lc3Nh
Z2VFdmVudDo6Y3JlYXRlKTogU3VwcG9ydGVkIFNjcmlwdFZhbHVlLgorICAgICAgICAoV2ViQ29y
ZTo6TWVzc2FnZUV2ZW50OjpkYXRhQXNTY3JpcHRWYWx1ZSk6IEdldHRlciBmb3IgZGF0YS4gSW5z
ZXJ0IEFTU0VSVCgpIHRvIGd1YXJhbnRlZSB0aGF0IHRoaXMgYWNjZXNzb3IgaXMgbm90IGNhbGxl
ZCBmb3IgdW5pbnRlbmRlZCB0eXBlIG9mIGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdl
RXZlbnQ6OmRhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVzc2FnZUV2ZW50OjpkYXRhQXNTdHJpbmcpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lc3NhZ2VFdmVudDo6ZGF0YUFzQmxvYik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
TWVzc2FnZUV2ZW50OjpkYXRhQXNBcnJheUJ1ZmZlcik6IERpdHRvLgorICAgICAgICAqIGRvbS9N
ZXNzYWdlRXZlbnQuaWRsOiBDaGFuZ2VkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0byBET01PYmpl
Y3QgKGkuZS4gU2NyaXB0VmFsdWUpLiBUaGlzIHBhdGNoIGRvZXMgbm90IHRvdWNoIGFuIE9iakMg
cGFydC4KKwogMjAxMS0xMC0xNyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVkaXRpbmcgQ1NTIHNlbGVjdG9yIGRvZXNu
J3QgZmlyZSBvblJlc291cmNlQ29udGVudENvbW1pdHRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCmluZGV4IDUwOTFjNDgxMDcy
ODhlNTkxNTZjYTAzMWZiZTJjNjk5YzQyZDE4YzguLjFiZmFmMGM2ZjBjMjNkODg2NWU5NjRmNzhl
YzQ1ODE4ODAxZjE5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTUyLDYgKzUyLDE1IEBAIEpTVmFsdWUgSlNNZXNz
YWdlRXZlbnQ6OmRhdGEoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIE1lc3NhZ2VFdmVudCog
ZXZlbnQgPSBzdGF0aWNfY2FzdDxNZXNzYWdlRXZlbnQqPihpbXBsKCkpOwogICAgIEpTVmFsdWUg
cmVzdWx0OwogICAgIHN3aXRjaCAoZXZlbnQtPmRhdGFUeXBlKCkpIHsKKyAgICBjYXNlIE1lc3Nh
Z2VFdmVudDo6RGF0YVR5cGVTY3JpcHRWYWx1ZTogeworICAgICAgICBTY3JpcHRWYWx1ZSBzY3Jp
cHRWYWx1ZSA9IGV2ZW50LT5kYXRhQXNTY3JpcHRWYWx1ZSgpOworICAgICAgICBpZiAoc2NyaXB0
VmFsdWUuaGFzTm9WYWx1ZSgpKQorICAgICAgICAgICAgcmVzdWx0ID0ganNOdWxsKCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IHNjcmlwdFZhbHVlLmpzVmFsdWUoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBNZXNzYWdlRXZlbnQ6OkRhdGFUeXBlU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOgogICAgICAgICBpZiAoU2VyaWFsaXplZFNjcmlwdFZhbHVlKiBz
ZXJpYWxpemVkVmFsdWUgPSBldmVudC0+ZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlKCkpIHsK
ICAgICAgICAgICAgIE1lc3NhZ2VQb3J0QXJyYXkqIHBvcnRzID0gc3RhdGljX2Nhc3Q8TWVzc2Fn
ZUV2ZW50Kj4oaW1wbCgpKS0+cG9ydHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwCmluZGV4IGY2OTNj
ZDcxMjczYTgwZDg4YTA5YjNkYjE2ZDA2YzIxMDEyNDQwNmYuLjlhN2Q2NTZkNTFiZmFjNmY5MWU0
NjhiMDk0ODViYzIxZDNmOTdiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtNTEsNiArNTEs
MTUgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TWVzc2FnZUV2ZW50OjpkYXRhQWNjZXNzb3JH
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG4KIAogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiByZXN1bHQ7CiAgICAgc3dpdGNoIChldmVudC0+ZGF0YVR5cGUoKSkgeworICAgIGNhc2UgTWVz
c2FnZUV2ZW50OjpEYXRhVHlwZVNjcmlwdFZhbHVlOiB7CisgICAgICAgIFNjcmlwdFZhbHVlIHNj
cmlwdFZhbHVlID0gZXZlbnQtPmRhdGFBc1NjcmlwdFZhbHVlKCk7CisgICAgICAgIGlmIChzY3Jp
cHRWYWx1ZS5oYXNOb1ZhbHVlKCkpCisgICAgICAgICAgICByZXN1bHQgPSB2ODo6TnVsbCgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBzY3JpcHRWYWx1ZS52OFZhbHVlKCk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlw
ZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZToKICAgICAgICAgaWYgKFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSogc2VyaWFsaXplZFZhbHVlID0gZXZlbnQtPmRhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgp
KQogICAgICAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplZFZhbHVlLT5kZXNlcmlhbGl6ZShldmVu
dC0+cG9ydHMoKSk7CkBAIC04OCw3ICs5Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE1l
c3NhZ2VFdmVudDo6cG9ydHNBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4KICAg
ICBNZXNzYWdlUG9ydEFycmF5KiBwb3J0cyA9IGV2ZW50LT5wb3J0cygpOwogICAgIGlmICghcG9y
dHMpCiAgICAgICAgIHJldHVybiB2ODo6QXJyYXk6Ok5ldygwKTsKLSAgICAKKwogICAgIE1lc3Nh
Z2VQb3J0QXJyYXkgcG9ydHNDb3B5KCpwb3J0cyk7CiAKICAgICB2ODo6TG9jYWw8djg6OkFycmF5
PiBwb3J0QXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhwb3J0c0NvcHkuc2l6ZSgpKTsKQEAgLTEwNSw3
ICsxMTQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNZXNzYWdlRXZlbnQ6OmluaXRNZXNz
YWdlRXZlbnRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbgogICAgIFN0cmluZyB0eXBlQXJnID0g
djhWYWx1ZVRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKTsKICAgICBib29sIGNhbkJ1YmJsZUFyZyA9
IGFyZ3NbMV0tPkJvb2xlYW5WYWx1ZSgpOwogICAgIGJvb2wgY2FuY2VsYWJsZUFyZyA9IGFyZ3Nb
Ml0tPkJvb2xlYW5WYWx1ZSgpOwotICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRh
dGFBcmcgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShhcmdzWzNdKTsKKyAgICBTY3Jp
cHRWYWx1ZSBkYXRhQXJnID0gU2NyaXB0VmFsdWUoYXJnc1szXSk7CiAgICAgU3RyaW5nIG9yaWdp
bkFyZyA9IHY4VmFsdWVUb1dlYkNvcmVTdHJpbmcoYXJnc1s0XSk7CiAgICAgU3RyaW5nIGxhc3RF
dmVudElkQXJnID0gdjhWYWx1ZVRvV2ViQ29yZVN0cmluZyhhcmdzWzVdKTsKIApAQCAtMTIzLDcg
KzEzMiw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE1lc3NhZ2VFdmVudDo6aW5pdE1lc3Nh
Z2VFdmVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVuCiAgICAgICAgIGlmICghZ2V0TWVzc2Fn
ZVBvcnRBcnJheShhcmdzWzddLCAqcG9ydEFycmF5KSkKICAgICAgICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIGV2ZW50LT5pbml0TWVzc2FnZUV2ZW50KHR5cGVBcmcs
IGNhbkJ1YmJsZUFyZywgY2FuY2VsYWJsZUFyZywgZGF0YUFyZy5yZWxlYXNlKCksIG9yaWdpbkFy
ZywgbGFzdEV2ZW50SWRBcmcsIHNvdXJjZUFyZywgcG9ydEFycmF5LnJlbGVhc2UoKSk7CisgICAg
ZXZlbnQtPmluaXRNZXNzYWdlRXZlbnQodHlwZUFyZywgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxl
QXJnLCBkYXRhQXJnLCBvcmlnaW5BcmcsIGxhc3RFdmVudElkQXJnLCBzb3VyY2VBcmcsIHBvcnRB
cnJheS5yZWxlYXNlKCkpOwogICAgIHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZSBkYXRhQXR0ciA9IHN0
YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6OkRvbnREZWxldGUgfCB2ODo6UmVh
ZE9ubHkpOwogICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVzZXJpYWxpemVBbmRTZXRQcm9w
ZXJ0eShhcmdzLkhvbGRlcigpLCAiZGF0YSIsIGRhdGFBdHRyLCBldmVudC0+ZGF0YUFzU2VyaWFs
aXplZFNjcmlwdFZhbHVlKCkpOwogICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlRXZlbnQuY3BwCmluZGV4IDZiOTU2NGJhNTQ2YzNlNTYyY2IxMzM3NjY2YzMz
Y2UzZWEyM2IwZDUuLjQ4MjE5ZTIzYTMwZDgxYjU2OGU2YzY1ZTdkNzMzYjRhMDFmNThiZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwCkBAIC0zNCwyMCArMzQsMTggQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTWVzc2FnZUV2ZW50SW5pdDo6TWVzc2FnZUV2ZW50SW5pdCgpCi0g
ICAgOiBkYXRhKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKCkpCiB7CiB9CiAKIE1lc3Nh
Z2VFdmVudDo6TWVzc2FnZUV2ZW50KCkKLSAgICA6IG1fZGF0YVR5cGUoRGF0YVR5cGVTZXJpYWxp
emVkU2NyaXB0VmFsdWUpCi0gICAgLCBtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSgpKQorICAgIDogbV9kYXRhVHlwZShEYXRhVHlwZVNj
cmlwdFZhbHVlKQogewogfQogCiBNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGNvbnN0IE1lc3NhZ2VFdmVudEluaXQmIGluaXRpYWxpemVyKQogICAg
IDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpCi0gICAgLCBtX2RhdGFUeXBlKERhdGFUeXBlU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKQotICAgICwgbV9kYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUo
aW5pdGlhbGl6ZXIuZGF0YSkKKyAgICAsIG1fZGF0YVR5cGUoRGF0YVR5cGVTY3JpcHRWYWx1ZSkK
KyAgICAsIG1fZGF0YUFzU2NyaXB0VmFsdWUoaW5pdGlhbGl6ZXIuZGF0YSkKICAgICAsIG1fb3Jp
Z2luKGluaXRpYWxpemVyLm9yaWdpbikKICAgICAsIG1fbGFzdEV2ZW50SWQoaW5pdGlhbGl6ZXIu
bGFzdEV2ZW50SWQpCiAgICAgLCBtX3NvdXJjZShpbml0aWFsaXplci5zb3VyY2UpCkBAIC01NSw2
ICs1MywxNyBAQCBNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IHR5cGUsIGNvbnN0IE1lc3NhZ2VFdmVudEluaXQmIGluaQogewogfQogCitNZXNzYWdlRXZlbnQ6
Ok1lc3NhZ2VFdmVudChjb25zdCBTY3JpcHRWYWx1ZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIFBhc3NSZWZQdHI8RE9NV2luZG93PiBzb3Vy
Y2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMpCisgICAgOiBFdmVudChldmVu
dE5hbWVzKCkubWVzc2FnZUV2ZW50LCBmYWxzZSwgZmFsc2UpCisgICAgLCBtX2RhdGFUeXBlKERh
dGFUeXBlU2NyaXB0VmFsdWUpCisgICAgLCBtX2RhdGFBc1NjcmlwdFZhbHVlKGRhdGEpCisgICAg
LCBtX29yaWdpbihvcmlnaW4pCisgICAgLCBtX2xhc3RFdmVudElkKGxhc3RFdmVudElkKQorICAg
ICwgbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV9wb3J0cyhwb3J0cykKK3sKK30KKwogTWVzc2Fn
ZUV2ZW50OjpNZXNzYWdlRXZlbnQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRh
dGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBQYXNz
UmVmUHRyPERPTVdpbmRvdz4gc291cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBv
cnRzKQogICAgIDogRXZlbnQoZXZlbnROYW1lcygpLm1lc3NhZ2VFdmVudCwgZmFsc2UsIGZhbHNl
KQogICAgICwgbV9kYXRhVHlwZShEYXRhVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKQEAgLTk3
LDYgKzEwNiwyMSBAQCBNZXNzYWdlRXZlbnQ6On5NZXNzYWdlRXZlbnQoKQogewogfQogCit2b2lk
IE1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGNvbnN0IFNjcmlwdFZhbHVlJiBkYXRh
LCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgRE9NV2lu
ZG93KiBzb3VyY2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMpCit7CisgICAg
aWYgKGRpc3BhdGNoZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdEV2ZW50KHR5cGUs
IGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSk7CisKKyAgICBtX2RhdGFUeXBlID0gRGF0YVR5cGVTY3Jp
cHRWYWx1ZTsKKyAgICBtX2RhdGFBc1NjcmlwdFZhbHVlID0gZGF0YTsKKyAgICBtX29yaWdpbiA9
IG9yaWdpbjsKKyAgICBtX2xhc3RFdmVudElkID0gbGFzdEV2ZW50SWQ7CisgICAgbV9zb3VyY2Ug
PSBzb3VyY2U7CisgICAgbV9wb3J0cyA9IHBvcnRzOworfQorCiB2b2lkIE1lc3NhZ2VFdmVudDo6
aW5pdE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRh
LCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgRE9NV2lu
ZG93KiBzb3VyY2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMpCiB7CiAgICAg
aWYgKGRpc3BhdGNoZWQoKSkKQEAgLTEyOSw2ICsxNTMsNyBAQCBNZXNzYWdlUG9ydCogTWVzc2Fn
ZUV2ZW50OjptZXNzYWdlUG9ydCgpCiAgICAgcmV0dXJuICgqbV9wb3J0cylbMF0uZ2V0KCk7CiB9
CiAKKy8vIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlIHVwZGF0ZSB0aGUgT2JqQyBiaW5kaW5n
cyAoYnVnICMyODc3NCkuCiB2b2lkIE1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdp
biwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgRE9NV2luZG93KiBzb3VyY2UsIE1lc3NhZ2VQ
b3J0KiBwb3J0KQogewogICAgIE93blB0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0czsKQEAgLTEz
OSw3ICsxNjQsNyBAQCB2b2lkIE1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBibwogICAgIGluaXRNZXNzYWdlRXZl
bnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBkYXRhLCBvcmlnaW4sIGxhc3RFdmVudElk
LCBzb3VyY2UsIHBvcnRzLnJlbGVhc2UoKSk7CiB9CiAKLWJvb2wgTWVzc2FnZUV2ZW50Ojppc01l
c3NhZ2VFdmVudCgpIGNvbnN0IAorYm9vbCBNZXNzYWdlRXZlbnQ6OmlzTWVzc2FnZUV2ZW50KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaApp
bmRleCA2YWM0ZGRlM2QzZWU2Mjc5NTIxNGJmNzQ2NmUyNDQxMzQ5YzU5Yzc0Li40NzhhMDdmOTUz
NTQ2ZjljNWU3ZWVmNjQwMjJiZjk0Mjg5ZTFjZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVu
dC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAi
RXZlbnQuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgIlNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTQyLDcgKzQzLDcgQEAgY2xhc3MgRE9NV2luZG93Owogc3RydWN0IE1lc3NhZ2VF
dmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKICAgICBNZXNzYWdlRXZlbnRJbml0KCk7CiAK
LSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhOworICAgIFNjcmlwdFZhbHVl
IGRhdGE7CiAgICAgU3RyaW5nIG9yaWdpbjsKICAgICBTdHJpbmcgbGFzdEV2ZW50SWQ7CiAgICAg
UmVmUHRyPERPTVdpbmRvdz4gc291cmNlOwpAQCAtNTUsNyArNTYsMTEgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXNzYWdlRXZlbnQpOwogICAgIH0KLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IGNyZWF0ZShQYXNzT3duUHRyPE1lc3Nh
Z2VQb3J0QXJyYXk+IHBvcnRzLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0
YSA9IDAsIGNvbnN0IFN0cmluZyYgb3JpZ2luID0gIiIsIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50
SWQgPSAiIiwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSA9IDApCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGUoUGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5
PiBwb3J0cywgY29uc3QgU2NyaXB0VmFsdWUmIGRhdGEgPSBTY3JpcHRWYWx1ZSgpLCBjb25zdCBT
dHJpbmcmIG9yaWdpbiA9ICIiLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkID0gIiIsIFBhc3NS
ZWZQdHI8RE9NV2luZG93PiBzb3VyY2UgPSAwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBNZXNzYWdlRXZlbnQoZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgc291cmNlLCBw
b3J0cykpOworICAgIH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IGNyZWF0
ZShQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRzLCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4gPSAiIiwgY29uc3QgU3Ry
aW5nJiBsYXN0RXZlbnRJZCA9ICIiLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291cmNlID0gMCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVzc2FnZUV2ZW50KGRhdGEsIG9y
aWdpbiwgbGFzdEV2ZW50SWQsIHNvdXJjZSwgcG9ydHMpKTsKICAgICB9CkBAIC03Nyw2ICs4Miw3
IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB+TWVzc2FnZUV2ZW50KCk7CiAKKyAgICB2
b2lkIGluaXRNZXNzYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1
YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBjb25zdCBTY3JpcHRWYWx1ZSYgZGF0YSwgY29uc3QgU3Ry
aW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIERPTVdpbmRvdyogc291cmNl
LCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+KTsKICAgICB2b2lkIGluaXRNZXNzYWdlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YSwgY29uc3QgU3RyaW5n
JiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIERPTVdpbmRvdyogc291cmNlLCBQ
YXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+KTsKIAogICAgIGNvbnN0IFN0cmluZyYgb3JpZ2lu
KCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KQEAgLTg2LDcgKzkyLDYgQEAgcHVibGljOgog
CiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gd2UgaGF2ZSBjdXN0b20gT2JqQyBiaW5k
aW5nIHN1cHBvcnQuCiAgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKiBkYXRhKCkgY29uc3Q7Ci0K
ICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgd2hlbiB3ZSB1cGRhdGUgdGhlIE9iakMgYmluZGlu
Z3MgKGJ1ZyAjMjg3NzQpLgogICAgIE1lc3NhZ2VQb3J0KiBtZXNzYWdlUG9ydCgpOwogICAgIC8v
IEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlIHVwZGF0ZSB0aGUgT2JqQyBiaW5kaW5ncyAoYnVn
ICMyODc3NCkuCkBAIC05NSwyMCArMTAwLDIzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
aXNNZXNzYWdlRXZlbnQoKSBjb25zdDsKIAogICAgIGVudW0gRGF0YVR5cGUgeworICAgICAgICBE
YXRhVHlwZVNjcmlwdFZhbHVlLAogICAgICAgICBEYXRhVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSwKICAgICAgICAgRGF0YVR5cGVTdHJpbmcsCiAgICAgICAgIERhdGFUeXBlQmxvYiwKICAgICAg
ICAgRGF0YVR5cGVBcnJheUJ1ZmZlcgogICAgIH07CiAgICAgRGF0YVR5cGUgZGF0YVR5cGUoKSBj
b25zdCB7IHJldHVybiBtX2RhdGFUeXBlOyB9Ci0gICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKiBk
YXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2RhdGFBc1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5nZXQoKTsgfQotICAgIFN0cmluZyBkYXRhQXNTdHJpbmcoKSBjb25z
dCB7IHJldHVybiBtX2RhdGFBc1N0cmluZzsgfQotICAgIEJsb2IqIGRhdGFBc0Jsb2IoKSBjb25z
dCB7IHJldHVybiBtX2RhdGFBc0Jsb2IuZ2V0KCk7IH0KLSAgICBBcnJheUJ1ZmZlciogZGF0YUFz
QXJyYXlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2RhdGFBc0FycmF5QnVmZmVyLmdldCgpOyB9
CisgICAgU2NyaXB0VmFsdWUgZGF0YUFzU2NyaXB0VmFsdWUoKSBjb25zdCB7IEFTU0VSVChtX2Rh
dGFUeXBlID09IERhdGFUeXBlU2NyaXB0VmFsdWUpOyByZXR1cm4gbV9kYXRhQXNTY3JpcHRWYWx1
ZTsgfQorICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZh
bHVlKCkgY29uc3QgeyBBU1NFUlQobV9kYXRhVHlwZSA9PSBEYXRhVHlwZVNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSk7IHJldHVybiBtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5nZXQoKTsgfQor
ICAgIFN0cmluZyBkYXRhQXNTdHJpbmcoKSBjb25zdCB7IEFTU0VSVChtX2RhdGFUeXBlID09IERh
dGFUeXBlU3RyaW5nKTsgcmV0dXJuIG1fZGF0YUFzU3RyaW5nOyB9CisgICAgQmxvYiogZGF0YUFz
QmxvYigpIGNvbnN0IHsgQVNTRVJUKG1fZGF0YVR5cGUgPT0gRGF0YVR5cGVCbG9iKTsgcmV0dXJu
IG1fZGF0YUFzQmxvYi5nZXQoKTsgfQorICAgIEFycmF5QnVmZmVyKiBkYXRhQXNBcnJheUJ1ZmZl
cigpIGNvbnN0IHsgQVNTRVJUKG1fZGF0YVR5cGUgPT0gRGF0YVR5cGVBcnJheUJ1ZmZlcik7IHJl
dHVybiBtX2RhdGFBc0FycmF5QnVmZmVyLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgTWVzc2Fn
ZUV2ZW50KCk7CiAgICAgTWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IE1l
c3NhZ2VFdmVudEluaXQmKTsKKyAgICBNZXNzYWdlRXZlbnQoY29uc3QgU2NyaXB0VmFsdWUmIGRh
dGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBQYXNz
UmVmUHRyPERPTVdpbmRvdz4gc291cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+KTsK
ICAgICBNZXNzYWdlRXZlbnQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEs
IGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBQYXNzUmVm
UHRyPERPTVdpbmRvdz4gc291cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+KTsKIAog
ICAgIGV4cGxpY2l0IE1lc3NhZ2VFdmVudChjb25zdCBTdHJpbmcmIGRhdGEpOwpAQCAtMTE2LDYg
KzEyNCw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVzc2FnZUV2ZW50KFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+IGRhdGEpOwogCiAgICAgRGF0YVR5cGUgbV9kYXRhVHlwZTsKKyAgICBTY3Jp
cHRWYWx1ZSBtX2RhdGFBc1NjcmlwdFZhbHVlOwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogICAgIFN0cmluZyBtX2RhdGFB
c1N0cmluZzsKICAgICBSZWZQdHI8QmxvYj4gbV9kYXRhQXNCbG9iOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZUV2ZW50LmlkbAppbmRleCA5MjM5NjBlMTQ1OTI0OTgzNjU5YjIzZDkyNzA2NWNmOWVkNGE5
ZmI1Li4zMjBkYjQ4Njk3YmFjOWZkMmMzZjkyMDg4NWIwNjExZTYwOTc2MjZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZUV2ZW50LmlkbApAQCAtMzYsMTMgKzM2LDEzIEBAIG1vZHVsZSBldmVudHMg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhc3RFdmVudElkOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NV2luZG93IHNvdXJjZTsKICNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0gYW55IGRhdGE7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0cmlidXRlLCBDdXN0b21HZXR0ZXJd
IERPTU9iamVjdCBkYXRhOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRl
cl0gQXJyYXkgcG9ydHM7CiAKICAgICAgICAgW0N1c3RvbV0gdm9pZCBpbml0TWVzc2FnZUV2ZW50
KGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHR5cGVBcmcsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxX
aXRoRGVmYXVsdFZhbHVlXSBib29sZWFuIGNhbkJ1YmJsZUFyZywgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IGJvb2xlYW4gY2FuY2VsYWJsZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBkYXRhQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NT2JqZWN0IGRhdGFBcmcsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxX
aXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgb3JpZ2luQXJnLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0g
RE9NU3RyaW5nIGxhc3RFdmVudElkQXJnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NV2luZG93IHNv
dXJjZUFyZywgCkBAIC01MSw3ICs1MSw3IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICBbQ3Vz
dG9tXSB2b2lkIHdlYmtpdEluaXRNZXNzYWdlRXZlbnQoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVm
YXVsdFZhbHVlXSBET01TdHJpbmcgdHlwZUFyZywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gYm9v
bGVhbiBjYW5CdWJibGVBcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGJvb2xlYW4gY2FuY2Vs
YWJsZUFyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGRh
dGFBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTU9iamVjdCBkYXRhQXJnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxX
aXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgb3JpZ2luQXJnLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSBET01TdHJpbmcgbGFzdEV2ZW50SWRBcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERP
TVdpbmRvdyBzb3VyY2VBcmcsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWFkZTYwMzFjOTI5YjUwYzI5OWY3OWU2YTE0MzFh
NzJiNDg1ZDk3Zi4uMDVkYjgzODk3ZGVhZmQ0MGU5YWM1YzAyYmUzZjg2YjE5YmU4Yzg1NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEwLTE3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBNZXNzYWdlRXZlbnQuZGF0YSBjYW4gYmUgc3RvcmVkIGFz
IFNjcmlwdFZhbHVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njg5NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmVkIGZhaWx1cmVzIGFuZCBjcmFzaGVzLgorCisgICAgICAgICogZmFzdC9ldmVu
dHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVj
dG9yLmh0bWw6CisKIDIwMTEtMTAtMTcgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFZGl0aW5nIENTUyBzZWxlY3RvciBk
b2Vzbid0IGZpcmUgb25SZXNvdXJjZUNvbnRlbnRDb21taXR0ZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNz
YWdlLWV2ZW50LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCA1ZmNjNGQyYTZkZTliZmY1
OWQ5NmM2NTZmMmM5YTI5OWYxMjU1MDQwLi43MzNhZTRjMjVkYWQyZTE4OTUyNGMxYTFlNDU5NWQ3
MWM0ZjVhYmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb25zdHJ1Y3Rv
cnMvbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3ItZXhw
ZWN0ZWQudHh0CkBAIC0xNCw3ICsxNCw4IEBAIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRU
eXBlJywgeyBidWJibGVzOiBmYWxzZSB9KS5idWJibGVzIGlzIGZhbHNlCiBQQVNTIG5ldyBNZXNz
YWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSB9KS5idWJibGVzIGlzIHRydWUK
IFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBjYW5jZWxhYmxlOiBmYWxzZSB9
KS5jYW5jZWxhYmxlIGlzIGZhbHNlCiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScs
IHsgY2FuY2VsYWJsZTogdHJ1ZSB9KS5jYW5jZWxhYmxlIGlzIHRydWUKLUZBSUwgbmV3IE1lc3Nh
Z2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiB0ZXN0X29iamVjdCB9KS5kYXRhIHNob3VsZCBi
ZSBbb2JqZWN0IE9iamVjdF0uIFdhcyBbb2JqZWN0IE9iamVjdF0uCitQQVNTIG5ldyBNZXNzYWdl
RXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogdGVzdF9vYmplY3QgfSkuZGF0YSBpcyB0ZXN0X29i
amVjdAorUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IGRvY3VtZW50
IH0pLmRhdGEgaXMgZG9jdW1lbnQKIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywg
eyBkYXRhOiB1bmRlZmluZWQgfSkuZGF0YSBpcyB1bmRlZmluZWQKIFBBU1MgbmV3IE1lc3NhZ2VF
dmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiBudWxsIH0pLmRhdGEgaXMgbnVsbAogUEFTUyBuZXcg
TWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IGZhbHNlIH0pLmRhdGEgaXMgZmFsc2UK
QEAgLTk0LDcgKzk1LDcgQEAgUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGdl
dCBwb3J0cygpIHsgdGhyb3cgJ01lc3NhZ2VFdmVudCBFcnJvcic7IH0KIFBBU1MgbmV3IE1lc3Nh
Z2VFdmVudCgnZXZlbnRUeXBlJywgeyBwb3J0czoge3ZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsgcmV0
dXJuIFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXTsgfSB9IH0p
LnBvcnRzWzBdIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIG5l
dyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTog
dHJ1ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElk
OiAnZXhjZWxsZW50Jywgc291cmNlOiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hh
bm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0gfSkuYnViYmxlcyBpcyB0cnVlCiBQQVNTIG5ldyBN
ZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1
ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAn
ZXhjZWxsZW50Jywgc291cmNlOiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5l
bC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0gfSkuY2FuY2VsYWJsZSBpcyB0cnVlCi1GQUlMIG5ldyBN
ZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1
ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAn
ZXhjZWxsZW50Jywgc291cmNlOiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5l
bC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0gfSkuZGF0YSBzaG91bGQgYmUgW29iamVjdCBPYmplY3Rd
LiBXYXMgW29iamVjdCBPYmplY3RdLgorUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUn
LCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBv
cmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2lu
ZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJd
IH0pLmRhdGEgaXMgdGVzdF9vYmplY3QKIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBl
JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVjdCwg
b3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6IHdp
bmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQy
XSB9KS5vcmlnaW4gaXMgIndvbmRlcmZ1bCIKIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRU
eXBlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVj
dCwgb3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6
IHdpbmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBv
cnQyXSB9KS5sYXN0RXZlbnRJZCBpcyAiZXhjZWxsZW50IgogUEFTUyBuZXcgTWVzc2FnZUV2ZW50
KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRl
c3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcs
IHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNo
YW5uZWwucG9ydDJdIH0pLnNvdXJjZSBpcyB3aW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25z
dHJ1Y3Rvci5odG1sCmluZGV4IGY1OTNjZjgyZTc5YTU5NDc1NWEwM2ViNjBkNjUzYjZiOGE2YjMy
ZWUuLmEyMzcyNTliNjJjN2IwYmUyYzhmYTA3ODc4ZWY5Y2VhZDk2NjcyMDggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0
cnVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21l
c3NhZ2UtZXZlbnQtY29uc3RydWN0b3IuaHRtbApAQCAtMjksMTAgKzI5LDggQEAgc2hvdWxkQmUo
Im5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgY2FuY2VsYWJsZTogZmFsc2UgfSkuY2Fu
Y2VsYWJsZSIsICJmYWwKIHNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7
IGNhbmNlbGFibGU6IHRydWUgfSkuY2FuY2VsYWJsZSIsICJ0cnVlIik7CiAKIC8vIGRhdGEgaXMg
cGFzc2VkLgotLy8gRklYTUUoaGFyYWtlbik6IFRoaXMgZmFpbHMgYmVjYXVzZSBNZXNzYWdlRXZl
bnQuZGF0YSBjYW5ub3QgaGFuZGxlIFNjcmlwdFZhbHVlLgogc2hvdWxkQmUoIm5ldyBNZXNzYWdl
RXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogdGVzdF9vYmplY3QgfSkuZGF0YSIsICJ0ZXN0X29i
amVjdCIpOwotLy8gRklYTUUoaGFyYWtlbik6IFdoZW4gd2UgcGFzcyBhIERPTSBvYmplY3QsIGl0
IGNyYXNoZXMgaW4gRFJUIChpdCByZXR1cm5zIFR5cGVFcnJvciBpbiBub24tRFJUIGJ1aWxkKS4K
LS8vIHNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IGRvY3Vt
ZW50IH0pLmRhdGEiLCAiZG9jdW1lbnQiKTsKK3Nob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdl
dmVudFR5cGUnLCB7IGRhdGE6IGRvY3VtZW50IH0pLmRhdGEiLCAiZG9jdW1lbnQiKTsKIHNob3Vs
ZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IHVuZGVmaW5lZCB9KS5k
YXRhIiwgInVuZGVmaW5lZCIpOwogc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlw
ZScsIHsgZGF0YTogbnVsbCB9KS5kYXRhIiwgIm51bGwiKTsKIHNob3VsZEJlKCJuZXcgTWVzc2Fn
ZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IGZhbHNlIH0pLmRhdGEiLCAiZmFsc2UiKTsKQEAg
LTEyMCw3ICsxMTgsNiBAQCBzaG91bGRUaHJvdygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBl
JywgeyBwb3J0czoge3ZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsgcmV0dQogLy8gQWxsIGluaXRpYWxp
emVycyBhcmUgcGFzc2VkLgogc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScs
IHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9y
aWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNlOiB3aW5k
b3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0g
fSkuYnViYmxlcyIsICJ0cnVlIik7CiBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRU
eXBlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVj
dCwgb3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6
IHdpbmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBv
cnQyXSB9KS5jYW5jZWxhYmxlIiwgInRydWUiKTsKLS8vIEZJWE1FKGhhcmFrZW4pOiBUaGlzIGZh
aWxzIGJlY2F1c2UgTWVzc2FnZUV2ZW50LmRhdGEgY2Fubm90IGhhbmRsZSBTY3JpcHRWYWx1ZS4K
IHNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IHRydWUs
IGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25kZXJmdWwn
LCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czogW2NoYW5u
ZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLmRhdGEiLCAidGVzdF9v
YmplY3QiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRU
eXBlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVj
dCwgb3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6
IHdpbmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBv
cnQyXSB9KS5vcmlnaW4iLCAid29uZGVyZnVsIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm5l
dyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTog
dHJ1ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElk
OiAnZXhjZWxsZW50Jywgc291cmNlOiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hh
bm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0gfSkubGFzdEV2ZW50SWQiLCAiZXhjZWxsZW50Iik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111586</attachid>
            <date>2011-10-19 03:25:25 -0700</date>
            <delta_ts>2011-10-19 23:01:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68978-20111019192523.patch</filename>
            <type>text/plain</type>
            <size>26379</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4MTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1M2RmNTI1MDNjOWZlZDE3
ZTZmZWMyOWMwNmI3YzRjYzk5Njk0MTYxLi43MGZlOTQ2NGQ5ZGIzMWQ2NzAzZTkwNGIwZDdkODcx
NmU5YTg4OGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTEtMTAtMTkgIEtlbnRh
cm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1lc3NhZ2VFdmVudC5k
YXRhIGNhbiBiZSBzdG9yZWQgYXMgU2NyaXB0VmFsdWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyB0ZXN0IGNh
c2VzIGZhaWwgb3IgY3Jhc2g6CisKKyAgICAgICAgLSBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVu
dCgnZXZlbnRUeXBlJywgeyBkYXRhOiB0ZXN0X29iamVjdCB9KS5kYXRhIiwgInRlc3Rfb2JqZWN0
IikgLT4gRkFJTAorICAgICAgICAtIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0
YTogZG9jdW1lbnQgfSkuZGF0YSAtPiBDUkFTSAorCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBN
ZXNzYWdlRXZlbnQuZGF0YSBpcyBpbXBsZW1lbnRlZCBqdXN0IGFzIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZQorICAgICAgICBhbmQgaXQgY2Fubm90IGtlZXAgU2NyaXB0VmFsdWUgcGFzc2VkIGJ5IEph
dmFTY3JpcHQuIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgorCisgICAg
ICAgIC0gSWYgTWVzc2FnZUV2ZW50IGlzIGNvbnN0cnVjdGVkIHdpdGggU2NyaXB0VmFsdWUsIGl0
IGlzIHN0b3JlZCBhcyBTY3JpcHRWYWx1ZSBpbnRlcm5hbGx5LgorICAgICAgICBXaGVuIE1lc3Nh
Z2VFdmVudC5kYXRhIGlzIGNhbGxlZCwgdGhlIFNjcmlwdFZhbHVlIGlzIHJldHVybmVkLgorICAg
ICAgICAtIElmIE1lc3NhZ2VFdmVudCBpcyBjb25zdHJ1Y3RlZCB3aXRoIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSwgaXQgaXMgc3RvcmVkIGFzCisgICAgICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBp
bnRlcm5hbGx5IChzaW5jZSB3ZSBjYW5ub3QgZGVzZXJpYWxpemUgaXQgaW50byBTY3JpcHRWYWx1
ZQorICAgICAgICBhdCB0aGlzIHBvaW50IGJlY2F1c2Ugb2YgbGFjayBvZiBFeGVjU3RhdGUpLiBX
aGVuIE1lc3NhZ2VFdmVudC5kYXRhIGlzIGNhbGxlZCwKKyAgICAgICAgdGhlIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSBpcyBkZXNlcmlhbGl6ZWQgaW50byB0aGUgY29ycmVzcG9uZGluZyBTY3JpcHRW
YWx1ZSwKKyAgICAgICAgYW5kIHRoZSBTY3JpcHRWYWx1ZSBpcyByZXR1cm5lZC4KKworICAgICAg
ICBUaGlzIHBhdGNoIGRvZXMgbm90IG1ha2UgYSBmaXggZm9yIE9iakMgYmluZGluZ3MgY29kZSwg
c2luY2Ugd2UgbmVlZCB0byBmaXJzdCBmaXgKKyAgICAgICAgdGhlIGJ1ZyAyODc3NCwgYXMgY29t
bWVudGVkIGluIGRvbS9NZXNzYWdlRXZlbnQuaCBhbmQgZG9tL01lc3NhZ2VFdmVudC5jcHAuCisK
KyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29u
c3RydWN0b3IuaHRtbAorICAgICAgICAgICAgICBmYXN0L2RvbS9tZXNzYWdlLXBvcnQtZGVsZXRl
ZC1ieS1hY2Nlc3Nvci5odG1sCisgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2luaXQtZXZlbnRz
Lmh0bWwKKyAgICAgICAgICAgICAgZmFzdC9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1hdHRyaWJ1
dGUtbGlzdGVuZXJzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZUV2ZW50OjpkYXRhKTogQ3Vz
dG9tIGdldHRlciBmb3IgTWVzc2FnZUV2ZW50LmRhdGEuIFN1cHBvcnRlZCBTY3JpcHRWYWx1ZS4K
KyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZUV2ZW50OjpoYW5kbGVJbml0TWVzc2FnZUV2ZW50
KTogQ2hhbmdlZCBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdG8gU2NyaXB0VmFsdWUuIFJlbW92ZWQg
YSAnZG9UcmFuc2ZlcicgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZl
bnQ6OmluaXRNZXNzYWdlRXZlbnQpOiBSZW1vdmVkIGEgJ2RvVHJhbnNmZXInIHBhcmFtZXRlci4K
KyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZUV2ZW50Ojp3ZWJraXRJbml0TWVzc2FnZUV2ZW50
KTogRGl0dG8uCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUV2ZW50OjpkYXRhQWNjZXNzb3JH
ZXR0ZXIpOiBDdXN0b20gZ2V0dGVyIGZvciBNZXNzYWdlRXZlbnQuZGF0YS4gU3VwcG9ydGVkIFNj
cmlwdFZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6VjhNZXNzYWdlRXZlbnQ6OnBvcnRzQWNjZXNz
b3JHZXR0ZXIpOiBSZW1vdmVkIGV4dHJhIHNwYWNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlY4TWVz
c2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50Q2FsbGJhY2spOiBDaGFuZ2VkIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSB0byBTY3JpcHRWYWx1ZS4KKyAgICAgICAgKiBkb20vTWVzc2FnZUV2ZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KTogU3VwcG9y
dGVkIFNjcmlwdFZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50Ojppbml0TWVz
c2FnZUV2ZW50KTogU3VwcG9ydGVkIFNjcmlwdFZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6TWVz
c2FnZUV2ZW50Ojppc01lc3NhZ2VFdmVudCk6IFJlbW92ZWQgZXh0cmEgc3BhY2VzLgorICAgICAg
ICAqIGRvbS9NZXNzYWdlRXZlbnQuaDogQWRkZWQgRGF0YVR5cGU6OkRhdGFUeXBlU2NyaXB0VmFs
dWUuCisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmNyZWF0ZSk6IFN1cHBvcnRlZCBT
Y3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6ZGF0YUFzU2NyaXB0
VmFsdWUpOiBHZXR0ZXIgZm9yIGRhdGEuIEluc2VydCBBU1NFUlQoKSB0byBndWFyYW50ZWUgdGhh
dCB0aGlzIGFjY2Vzc29yIGlzIG5vdCBjYWxsZWQgZm9yIHVuaW50ZW5kZWQgdHlwZSBvZiBkYXRh
LgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50OjpkYXRhQXNTZXJpYWxpemVkU2NyaXB0
VmFsdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6ZGF0YUFzU3Ry
aW5nKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmRhdGFBc0Jsb2Ip
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6ZGF0YUFzQXJyYXlCdWZm
ZXIpOiBEaXR0by4KKyAgICAgICAgKiBkb20vTWVzc2FnZUV2ZW50LmlkbDogQ2hhbmdlZCBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgdG8gRE9NT2JqZWN0IChpLmUuIFNjcmlwdFZhbHVlKS4gVGhpcyBw
YXRjaCBkb2VzIG5vdCB0b3VjaCBhbiBPYmpDIHBhcnQuIFJlbW92ZWQgW0NhY2hlZEF0dHJpYnV0
ZV0gZnJvbSBNZXNzYWdlRXZlbnQuZGF0YSwgc2luY2UgaXQgaXMgbm93IGEgRE9NT2JqZWN0IGFu
ZCBuZWVkcyBub3QgdG8gYmUgY2FjaGVkLgorCiAyMDExLTEwLTE4ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByOTc3NjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01l
c3NhZ2VFdmVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3Nh
Z2VFdmVudEN1c3RvbS5jcHAKaW5kZXggNTA5MWM0ODEwNzI4OGU1OTE1NmNhMDMxZmJlMmM2OTlj
NDJkMThjOC4uYmJmYzAwZTljZjZhOGJmOGNiOWRiN2QyYzI5M2U3ZmJhYjg5NDZmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cApAQCAtNTIsNiArNTIsMTUgQEAgSlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0CiAgICAgTWVzc2FnZUV2ZW50KiBldmVudCA9IHN0YXRpY19jYXN0PE1l
c3NhZ2VFdmVudCo+KGltcGwoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgc3dpdGNoIChl
dmVudC0+ZGF0YVR5cGUoKSkgeworICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZVNjcmlw
dFZhbHVlOiB7CisgICAgICAgIFNjcmlwdFZhbHVlIHNjcmlwdFZhbHVlID0gZXZlbnQtPmRhdGFB
c1NjcmlwdFZhbHVlKCk7CisgICAgICAgIGlmIChzY3JpcHRWYWx1ZS5oYXNOb1ZhbHVlKCkpCisg
ICAgICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cmVzdWx0ID0gc2NyaXB0VmFsdWUuanNWYWx1ZSgpOworICAgICAgICBicmVhazsKKyAgICB9CisK
ICAgICBjYXNlIE1lc3NhZ2VFdmVudDo6RGF0YVR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWU6CiAg
ICAgICAgIGlmIChTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRWYWx1ZSA9IGV2ZW50
LT5kYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUoKSkgewogICAgICAgICAgICAgTWVzc2FnZVBv
cnRBcnJheSogcG9ydHMgPSBzdGF0aWNfY2FzdDxNZXNzYWdlRXZlbnQqPihpbXBsKCkpLT5wb3J0
cygpOwpAQCAtOTEsNyArMTAwLDcgQEAgSlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6cG9ydHMoRXhl
Y1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheShleGVjLCBnbG9i
YWxPYmplY3QoKSwgbGlzdCk7CiB9CiAKLXN0YXRpYyBKU0M6OkpTVmFsdWUgaGFuZGxlSW5pdE1l
c3NhZ2VFdmVudChKU01lc3NhZ2VFdmVudCoganNFdmVudCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IGJvb2wgZG9UcmFuc2ZlcikKK3N0YXRpYyBKU0M6OkpTVmFsdWUgaGFuZGxlSW5pdE1lc3NhZ2VF
dmVudChKU01lc3NhZ2VFdmVudCoganNFdmVudCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgY29uc3QgVVN0cmluZyYgdHlwZUFyZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4
ZWMpOwogICAgIGJvb2wgY2FuQnViYmxlQXJnID0gZXhlYy0+YXJndW1lbnQoMSkudG9Cb29sZWFu
KGV4ZWMpOwpAQCAtMTA2LDMwICsxMTUsMjQgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBoYW5kbGVJ
bml0TWVzc2FnZUV2ZW50KEpTTWVzc2FnZUV2ZW50KiBqc0V2ZW50LCBKU0M6OkV4ZWNTdGEKICAg
ICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAgICAgfQotICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGFB
cmcgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShleGVjLCBleGVjLT5hcmd1bWVudCgz
KSwgZG9UcmFuc2ZlciA/IG1lc3NhZ2VQb3J0cy5nZXQoKSA6IDApOworICAgIFNjcmlwdFZhbHVl
IGRhdGFBcmcgPSBTY3JpcHRWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmFyZ3VtZW50
KDMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotIAorCiAgICAgTWVzc2FnZUV2ZW50KiBldmVudCA9IHN0YXRpY19jYXN0PE1l
c3NhZ2VFdmVudCo+KGpzRXZlbnQtPmltcGwoKSk7Ci0gICAgZXZlbnQtPmluaXRNZXNzYWdlRXZl
bnQodXN0cmluZ1RvQXRvbWljU3RyaW5nKHR5cGVBcmcpLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFi
bGVBcmcsIGRhdGFBcmcucmVsZWFzZSgpLCB1c3RyaW5nVG9TdHJpbmcob3JpZ2luQXJnKSwgdXN0
cmluZ1RvU3RyaW5nKGxhc3RFdmVudElkQXJnKSwgc291cmNlQXJnLCBtZXNzYWdlUG9ydHMucmVs
ZWFzZSgpKTsKLSAgICBKU1ZhbHVlIHJlc3VsdDsKLSAgICBpZiAoU2VyaWFsaXplZFNjcmlwdFZh
bHVlKiBzZXJpYWxpemVkVmFsdWUgPSBldmVudC0+ZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVl
KCkpCi0gICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVzZXJpYWxpemUoZXhlYywg
anNFdmVudC0+Z2xvYmFsT2JqZWN0KCksIGV2ZW50LT5wb3J0cygpLCBOb25UaHJvd2luZyk7Ci0g
ICAgZWxzZQotICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKLSAgICBqc0V2ZW50LT5tX2RhdGEu
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwganNFdmVudCwgcmVzdWx0KTsKKyAgICBldmVudC0+aW5p
dE1lc3NhZ2VFdmVudCh1c3RyaW5nVG9BdG9taWNTdHJpbmcodHlwZUFyZyksIGNhbkJ1YmJsZUFy
ZywgY2FuY2VsYWJsZUFyZywgZGF0YUFyZywgdXN0cmluZ1RvU3RyaW5nKG9yaWdpbkFyZyksIHVz
dHJpbmdUb1N0cmluZyhsYXN0RXZlbnRJZEFyZyksIHNvdXJjZUFyZywgbWVzc2FnZVBvcnRzLnJl
bGVhc2UoKSk7CisgICAganNFdmVudC0+bV9kYXRhLnNldChleGVjLT5nbG9iYWxEYXRhKCksIGpz
RXZlbnQsIGRhdGFBcmcuanNWYWx1ZSgpKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQog
fQogCiBKU0M6OkpTVmFsdWUgSlNNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgcmV0dXJuIGhhbmRsZUluaXRNZXNzYWdlRXZlbnQodGhp
cywgZXhlYywgZmFsc2UpOworICAgIHJldHVybiBoYW5kbGVJbml0TWVzc2FnZUV2ZW50KHRoaXMs
IGV4ZWMpOwogfQogCiBKU0M6OkpTVmFsdWUgSlNNZXNzYWdlRXZlbnQ6OndlYmtpdEluaXRNZXNz
YWdlRXZlbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgcmV0dXJuIGhhbmRsZUluaXRN
ZXNzYWdlRXZlbnQodGhpcywgZXhlYywgdHJ1ZSk7CisgICAgcmV0dXJuIGhhbmRsZUluaXRNZXNz
YWdlRXZlbnQodGhpcywgZXhlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZl
bnRDdXN0b20uY3BwCmluZGV4IGY2OTNjZDcxMjczYTgwZDg4YTA5YjNkYjE2ZDA2YzIxMDEyNDQw
NmYuLjBmOGY2Zjc2NGM5OGViMWVmNjgzNGY1ZmZhYjExZjkzZGI5YTRiZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcApAQCAtNTEsNiArNTEsMTUgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TWVz
c2FnZUV2ZW50OjpkYXRhQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG4KIAog
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQ7CiAgICAgc3dpdGNoIChldmVudC0+ZGF0
YVR5cGUoKSkgeworICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZVNjcmlwdFZhbHVlOiB7
CisgICAgICAgIFNjcmlwdFZhbHVlIHNjcmlwdFZhbHVlID0gZXZlbnQtPmRhdGFBc1NjcmlwdFZh
bHVlKCk7CisgICAgICAgIGlmIChzY3JpcHRWYWx1ZS5oYXNOb1ZhbHVlKCkpCisgICAgICAgICAg
ICByZXN1bHQgPSB2ODo6TnVsbCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQg
PSBzY3JpcHRWYWx1ZS52OFZhbHVlKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNh
c2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZToKICAgICAgICAg
aWYgKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFZhbHVlID0gZXZlbnQtPmRhdGFB
c1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpKQogICAgICAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXpl
ZFZhbHVlLT5kZXNlcmlhbGl6ZShldmVudC0+cG9ydHMoKSk7CkBAIC04OCw3ICs5Nyw3IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOE1lc3NhZ2VFdmVudDo6cG9ydHNBY2Nlc3NvckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4KICAgICBNZXNzYWdlUG9ydEFycmF5KiBwb3J0cyA9IGV2ZW50
LT5wb3J0cygpOwogICAgIGlmICghcG9ydHMpCiAgICAgICAgIHJldHVybiB2ODo6QXJyYXk6Ok5l
dygwKTsKLSAgICAKKwogICAgIE1lc3NhZ2VQb3J0QXJyYXkgcG9ydHNDb3B5KCpwb3J0cyk7CiAK
ICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBwb3J0QXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhwb3J0
c0NvcHkuc2l6ZSgpKTsKQEAgLTEwNSw3ICsxMTQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bgogICAgIFN0cmluZyB0eXBlQXJnID0gdjhWYWx1ZVRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKTsK
ICAgICBib29sIGNhbkJ1YmJsZUFyZyA9IGFyZ3NbMV0tPkJvb2xlYW5WYWx1ZSgpOwogICAgIGJv
b2wgY2FuY2VsYWJsZUFyZyA9IGFyZ3NbMl0tPkJvb2xlYW5WYWx1ZSgpOwotICAgIFJlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGFBcmcgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNy
ZWF0ZShhcmdzWzNdKTsKKyAgICBTY3JpcHRWYWx1ZSBkYXRhQXJnID0gU2NyaXB0VmFsdWUoYXJn
c1szXSk7CiAgICAgU3RyaW5nIG9yaWdpbkFyZyA9IHY4VmFsdWVUb1dlYkNvcmVTdHJpbmcoYXJn
c1s0XSk7CiAgICAgU3RyaW5nIGxhc3RFdmVudElkQXJnID0gdjhWYWx1ZVRvV2ViQ29yZVN0cmlu
ZyhhcmdzWzVdKTsKIApAQCAtMTIzLDkgKzEzMiw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OE1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
CiAgICAgICAgIGlmICghZ2V0TWVzc2FnZVBvcnRBcnJheShhcmdzWzddLCAqcG9ydEFycmF5KSkK
ICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIGV2ZW50LT5p
bml0TWVzc2FnZUV2ZW50KHR5cGVBcmcsIGNhbkJ1YmJsZUFyZywgY2FuY2VsYWJsZUFyZywgZGF0
YUFyZy5yZWxlYXNlKCksIG9yaWdpbkFyZywgbGFzdEV2ZW50SWRBcmcsIHNvdXJjZUFyZywgcG9y
dEFycmF5LnJlbGVhc2UoKSk7Ci0gICAgdjg6OlByb3BlcnR5QXR0cmlidXRlIGRhdGFBdHRyID0g
c3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6RG9udERlbGV0ZSB8IHY4OjpS
ZWFkT25seSk7Ci0gICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZUFuZFNldFBy
b3BlcnR5KGFyZ3MuSG9sZGVyKCksICJkYXRhIiwgZGF0YUF0dHIsIGV2ZW50LT5kYXRhQXNTZXJp
YWxpemVkU2NyaXB0VmFsdWUoKSk7CisgICAgZXZlbnQtPmluaXRNZXNzYWdlRXZlbnQodHlwZUFy
ZywgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxlQXJnLCBkYXRhQXJnLCBvcmlnaW5BcmcsIGxhc3RF
dmVudElkQXJnLCBzb3VyY2VBcmcsIHBvcnRBcnJheS5yZWxlYXNlKCkpOwogICAgIHJldHVybiB2
ODo6VW5kZWZpbmVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNz
YWdlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAKaW5kZXgg
NmI5NTY0YmE1NDZjM2U1NjJjYjEzMzc2NjZjMzNjZTNlYTIzYjBkNS4uNDgyMTllMjNhMzBkODFi
NTY4ZTZjNjVlN2Q3MzNiNGEwMWY1OGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L01lc3NhZ2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5j
cHAKQEAgLTM0LDIwICszNCwxOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNZXNzYWdlRXZl
bnRJbml0OjpNZXNzYWdlRXZlbnRJbml0KCkKLSAgICA6IGRhdGEoU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpjcmVhdGUoKSkKIHsKIH0KIAogTWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQoKQotICAg
IDogbV9kYXRhVHlwZShEYXRhVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKLSAgICAsIG1fZGF0
YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKCkp
CisgICAgOiBtX2RhdGFUeXBlKERhdGFUeXBlU2NyaXB0VmFsdWUpCiB7CiB9CiAKIE1lc3NhZ2VF
dmVudDo6TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTWVzc2Fn
ZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCiAgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplcikK
LSAgICAsIG1fZGF0YVR5cGUoRGF0YVR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWUpCi0gICAgLCBt
X2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShpbml0aWFsaXplci5kYXRhKQorICAgICwgbV9k
YXRhVHlwZShEYXRhVHlwZVNjcmlwdFZhbHVlKQorICAgICwgbV9kYXRhQXNTY3JpcHRWYWx1ZShp
bml0aWFsaXplci5kYXRhKQogICAgICwgbV9vcmlnaW4oaW5pdGlhbGl6ZXIub3JpZ2luKQogICAg
ICwgbV9sYXN0RXZlbnRJZChpbml0aWFsaXplci5sYXN0RXZlbnRJZCkKICAgICAsIG1fc291cmNl
KGluaXRpYWxpemVyLnNvdXJjZSkKQEAgLTU1LDYgKzUzLDE3IEBAIE1lc3NhZ2VFdmVudDo6TWVz
c2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTWVzc2FnZUV2ZW50SW5p
dCYgaW5pCiB7CiB9CiAKK01lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KGNvbnN0IFNjcmlwdFZh
bHVlJiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJ
ZCwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydEFy
cmF5PiBwb3J0cykKKyAgICA6IEV2ZW50KGV2ZW50TmFtZXMoKS5tZXNzYWdlRXZlbnQsIGZhbHNl
LCBmYWxzZSkKKyAgICAsIG1fZGF0YVR5cGUoRGF0YVR5cGVTY3JpcHRWYWx1ZSkKKyAgICAsIG1f
ZGF0YUFzU2NyaXB0VmFsdWUoZGF0YSkKKyAgICAsIG1fb3JpZ2luKG9yaWdpbikKKyAgICAsIG1f
bGFzdEV2ZW50SWQobGFzdEV2ZW50SWQpCisgICAgLCBtX3NvdXJjZShzb3VyY2UpCisgICAgLCBt
X3BvcnRzKHBvcnRzKQoreworfQorCiBNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudChQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNv
bnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIFBhc3NSZWZQdHI8RE9NV2luZG93PiBzb3VyY2UsIFBh
c3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMpCiAgICAgOiBFdmVudChldmVudE5hbWVz
KCkubWVzc2FnZUV2ZW50LCBmYWxzZSwgZmFsc2UpCiAgICAgLCBtX2RhdGFUeXBlKERhdGFUeXBl
U2VyaWFsaXplZFNjcmlwdFZhbHVlKQpAQCAtOTcsNiArMTA2LDIxIEBAIE1lc3NhZ2VFdmVudDo6
fk1lc3NhZ2VFdmVudCgpCiB7CiB9CiAKK3ZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgY29uc3QgU2NyaXB0VmFsdWUmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25z
dCBTdHJpbmcmIGxhc3RFdmVudElkLCBET01XaW5kb3cqIHNvdXJjZSwgUGFzc093blB0cjxNZXNz
YWdlUG9ydEFycmF5PiBwb3J0cykKK3sKKyAgICBpZiAoZGlzcGF0Y2hlZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpbml0RXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlKTsKKwor
ICAgIG1fZGF0YVR5cGUgPSBEYXRhVHlwZVNjcmlwdFZhbHVlOworICAgIG1fZGF0YUFzU2NyaXB0
VmFsdWUgPSBkYXRhOworICAgIG1fb3JpZ2luID0gb3JpZ2luOworICAgIG1fbGFzdEV2ZW50SWQg
PSBsYXN0RXZlbnRJZDsKKyAgICBtX3NvdXJjZSA9IHNvdXJjZTsKKyAgICBtX3BvcnRzID0gcG9y
dHM7Cit9CisKIHZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25z
dCBTdHJpbmcmIGxhc3RFdmVudElkLCBET01XaW5kb3cqIHNvdXJjZSwgUGFzc093blB0cjxNZXNz
YWdlUG9ydEFycmF5PiBwb3J0cykKIHsKICAgICBpZiAoZGlzcGF0Y2hlZCgpKQpAQCAtMTI5LDYg
KzE1Myw3IEBAIE1lc3NhZ2VQb3J0KiBNZXNzYWdlRXZlbnQ6Om1lc3NhZ2VQb3J0KCkKICAgICBy
ZXR1cm4gKCptX3BvcnRzKVswXS5nZXQoKTsKIH0KIAorLy8gRklYTUU6IHJlbW92ZSB0aGlzIHdo
ZW4gd2UgdXBkYXRlIHRoZSBPYmpDIGJpbmRpbmdzIChidWcgIzI4Nzc0KS4KIHZvaWQgTWVzc2Fn
ZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElk
LCBET01XaW5kb3cqIHNvdXJjZSwgTWVzc2FnZVBvcnQqIHBvcnQpCiB7CiAgICAgT3duUHRyPE1l
c3NhZ2VQb3J0QXJyYXk+IHBvcnRzOwpAQCAtMTM5LDcgKzE2NCw3IEBAIHZvaWQgTWVzc2FnZUV2
ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvCiAgICAgaW5pdE1lc3NhZ2VFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFi
bGUsIGRhdGEsIG9yaWdpbiwgbGFzdEV2ZW50SWQsIHNvdXJjZSwgcG9ydHMucmVsZWFzZSgpKTsK
IH0KIAotYm9vbCBNZXNzYWdlRXZlbnQ6OmlzTWVzc2FnZUV2ZW50KCkgY29uc3QgCitib29sIE1l
c3NhZ2VFdmVudDo6aXNNZXNzYWdlRXZlbnQoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCmluZGV4IDZhYzRkZGUzZDNlZTYyNzk1MjE0YmY3
NDY2ZTI0NDEzNDljNTljNzQuLjQ3OGEwN2Y5NTM1NDZmOWM1ZTdlZWY2NDAyMmJmOTQyODllMWNk
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsNyArNDMsNyBAQCBjbGFz
cyBET01XaW5kb3c7CiBzdHJ1Y3QgTWVzc2FnZUV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQg
ewogICAgIE1lc3NhZ2VFdmVudEluaXQoKTsKIAotICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IGRhdGE7CisgICAgU2NyaXB0VmFsdWUgZGF0YTsKICAgICBTdHJpbmcgb3JpZ2luOwog
ICAgIFN0cmluZyBsYXN0RXZlbnRJZDsKICAgICBSZWZQdHI8RE9NV2luZG93PiBzb3VyY2U7CkBA
IC01NSw3ICs1NiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1lc3NhZ2VFdmVudCk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lc3NhZ2VF
dmVudD4gY3JlYXRlKFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMsIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhID0gMCwgY29uc3QgU3RyaW5nJiBvcmlnaW4g
PSAiIiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCA9ICIiLCBQYXNzUmVmUHRyPERPTVdpbmRv
dz4gc291cmNlID0gMCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IGNyZWF0
ZShQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJyYXk+IHBvcnRzLCBjb25zdCBTY3JpcHRWYWx1ZSYg
ZGF0YSA9IFNjcmlwdFZhbHVlKCksIGNvbnN0IFN0cmluZyYgb3JpZ2luID0gIiIsIGNvbnN0IFN0
cmluZyYgbGFzdEV2ZW50SWQgPSAiIiwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSA9IDAp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lc3NhZ2VFdmVudChkYXRhLCBv
cmlnaW4sIGxhc3RFdmVudElkLCBzb3VyY2UsIHBvcnRzKSk7CisgICAgfQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlKFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJh
eT4gcG9ydHMsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhLCBjb25zdCBT
dHJpbmcmIG9yaWdpbiA9ICIiLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkID0gIiIsIFBhc3NS
ZWZQdHI8RE9NV2luZG93PiBzb3VyY2UgPSAwKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBNZXNzYWdlRXZlbnQoZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgc291cmNlLCBw
b3J0cykpOwogICAgIH0KQEAgLTc3LDYgKzgyLDcgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0
dWFsIH5NZXNzYWdlRXZlbnQoKTsKIAorICAgIHZvaWQgaW5pdE1lc3NhZ2VFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGNvbnN0
IFNjcmlwdFZhbHVlJiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBs
YXN0RXZlbnRJZCwgRE9NV2luZG93KiBzb3VyY2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJh
eT4pOwogICAgIHZvaWQgaW5pdE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0
RXZlbnRJZCwgRE9NV2luZG93KiBzb3VyY2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4p
OwogCiAgICAgY29uc3QgU3RyaW5nJiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsg
fQpAQCAtODYsNyArOTIsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
d2hlbiB3ZSBoYXZlIGN1c3RvbSBPYmpDIGJpbmRpbmcgc3VwcG9ydC4KICAgICBTZXJpYWxpemVk
U2NyaXB0VmFsdWUqIGRhdGEoKSBjb25zdDsKLQogICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3
aGVuIHdlIHVwZGF0ZSB0aGUgT2JqQyBiaW5kaW5ncyAoYnVnICMyODc3NCkuCiAgICAgTWVzc2Fn
ZVBvcnQqIG1lc3NhZ2VQb3J0KCk7CiAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIHdoZW4gd2Ug
dXBkYXRlIHRoZSBPYmpDIGJpbmRpbmdzIChidWcgIzI4Nzc0KS4KQEAgLTk1LDIwICsxMDAsMjMg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01lc3NhZ2VFdmVudCgpIGNvbnN0OwogCiAg
ICAgZW51bSBEYXRhVHlwZSB7CisgICAgICAgIERhdGFUeXBlU2NyaXB0VmFsdWUsCiAgICAgICAg
IERhdGFUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVlLAogICAgICAgICBEYXRhVHlwZVN0cmluZywK
ICAgICAgICAgRGF0YVR5cGVCbG9iLAogICAgICAgICBEYXRhVHlwZUFycmF5QnVmZmVyCiAgICAg
fTsKICAgICBEYXRhVHlwZSBkYXRhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YVR5cGU7IH0K
LSAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUqIGRhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlLmdldCgpOyB9Ci0g
ICAgU3RyaW5nIGRhdGFBc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YUFzU3RyaW5nOyB9
Ci0gICAgQmxvYiogZGF0YUFzQmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YUFzQmxvYi5nZXQo
KTsgfQotICAgIEFycmF5QnVmZmVyKiBkYXRhQXNBcnJheUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YUFzQXJyYXlCdWZmZXIuZ2V0KCk7IH0KKyAgICBTY3JpcHRWYWx1ZSBkYXRhQXNTY3Jp
cHRWYWx1ZSgpIGNvbnN0IHsgQVNTRVJUKG1fZGF0YVR5cGUgPT0gRGF0YVR5cGVTY3JpcHRWYWx1
ZSk7IHJldHVybiBtX2RhdGFBc1NjcmlwdFZhbHVlOyB9CisgICAgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKiBkYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUoKSBjb25zdCB7IEFTU0VSVChtX2RhdGFU
eXBlID09IERhdGFUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVlKTsgcmV0dXJuIG1fZGF0YUFzU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmdldCgpOyB9CisgICAgU3RyaW5nIGRhdGFBc1N0cmluZygpIGNv
bnN0IHsgQVNTRVJUKG1fZGF0YVR5cGUgPT0gRGF0YVR5cGVTdHJpbmcpOyByZXR1cm4gbV9kYXRh
QXNTdHJpbmc7IH0KKyAgICBCbG9iKiBkYXRhQXNCbG9iKCkgY29uc3QgeyBBU1NFUlQobV9kYXRh
VHlwZSA9PSBEYXRhVHlwZUJsb2IpOyByZXR1cm4gbV9kYXRhQXNCbG9iLmdldCgpOyB9CisgICAg
QXJyYXlCdWZmZXIqIGRhdGFBc0FycmF5QnVmZmVyKCkgY29uc3QgeyBBU1NFUlQobV9kYXRhVHlw
ZSA9PSBEYXRhVHlwZUFycmF5QnVmZmVyKTsgcmV0dXJuIG1fZGF0YUFzQXJyYXlCdWZmZXIuZ2V0
KCk7IH0KIAogcHJpdmF0ZToKICAgICBNZXNzYWdlRXZlbnQoKTsKICAgICBNZXNzYWdlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgTWVzc2FnZUV2ZW50SW5pdCYpOworICAgIE1lc3Nh
Z2VFdmVudChjb25zdCBTY3JpcHRWYWx1ZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNv
bnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIFBhc3NSZWZQdHI8RE9NV2luZG93PiBzb3VyY2UsIFBh
c3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4pOwogICAgIE1lc3NhZ2VFdmVudChQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgbGFzdEV2ZW50SWQsIFBhc3NSZWZQdHI8RE9NV2luZG93PiBzb3VyY2UsIFBhc3NP
d25QdHI8TWVzc2FnZVBvcnRBcnJheT4pOwogCiAgICAgZXhwbGljaXQgTWVzc2FnZUV2ZW50KGNv
bnN0IFN0cmluZyYgZGF0YSk7CkBAIC0xMTYsNiArMTI0LDcgQEAgcHJpdmF0ZToKICAgICBleHBs
aWNpdCBNZXNzYWdlRXZlbnQoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gZGF0YSk7CiAKICAgICBE
YXRhVHlwZSBtX2RhdGFUeXBlOworICAgIFNjcmlwdFZhbHVlIG1fZGF0YUFzU2NyaXB0VmFsdWU7
CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9kYXRhQXNTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7CiAgICAgU3RyaW5nIG1fZGF0YUFzU3RyaW5nOwogICAgIFJlZlB0cjxCbG9iPiBt
X2RhdGFBc0Jsb2I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaWRsCmluZGV4IDkyMzk2MGUx
NDU5MjQ5ODM2NTliMjNkOTI3MDY1Y2Y5ZWQ0YTlmYjUuLjMyMGRiNDg2OTdiYWM5ZmQyYzNmOTIw
ODg1YjA2MTFlNjA5NzYyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
RXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaWRsCkBAIC0z
NiwxMyArMzYsMTMgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgbGFzdEV2ZW50SWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01X
aW5kb3cgc291cmNlOwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VB
R0VfSkFWQVNDUklQVAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NhY2hlZEF0dHJpYnV0
ZSwgQ3VzdG9tR2V0dGVyXSBhbnkgZGF0YTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
YWNoZWRBdHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0gRE9NT2JqZWN0IGRhdGE7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBBcnJheSBwb3J0czsKIAogICAgICAgICBb
Q3VzdG9tXSB2b2lkIGluaXRNZXNzYWdlRXZlbnQoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBET01TdHJpbmcgdHlwZUFyZywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGJvb2xlYW4gY2Fu
QnViYmxlQXJnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGRhdGFBcmcsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBET01PYmplY3QgZGF0YUFyZywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBv
cmlnaW5BcmcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbGFzdEV2ZW50SWRBcmcsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxX
aXRoRGVmYXVsdFZhbHVlXSBET01XaW5kb3cgc291cmNlQXJnLCAKQEAgLTUxLDcgKzUxLDcgQEAg
bW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgd2Via2l0SW5pdE1lc3NhZ2VF
dmVudChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyB0eXBlQXJn
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBib29sZWFuIGNhbkJ1YmJsZUFyZywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgZGF0YUFyZywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1
ZV0gRE9NT2JqZWN0IGRhdGFBcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBv
cmlnaW5BcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBsYXN0RXZlbnRJZEFy
ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NV2luZG93IHNvdXJjZUFyZywKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAw
M2NlMTkwNTJjZWU5ZDRjNzI4YmUwNzYyOGNhMjMzODY1MTBjOTk2Li4xNTRiZTI1NmFmNGFlZjRj
MGQ5NThhMjk1ZTQ4NmE4YTUyMDAyNTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAt
MTkgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1lc3Nh
Z2VFdmVudC5kYXRhIGNhbiBiZSBzdG9yZWQgYXMgU2NyaXB0VmFsdWUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgZmFpbHVyZXMgYW5kIGNy
YXNoZXMuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVu
dC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvY29uc3Ry
dWN0b3JzL21lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3IuaHRtbDoKKwogMjAxMS0xMC0xOCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjk3NzY1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29u
c3RydWN0b3ItZXhwZWN0ZWQudHh0CmluZGV4IDVmY2M0ZDJhNmRlOWJmZjU5ZDk2YzY1NmYyYzlh
Mjk5ZjEyNTUwNDAuLjczM2FlNGMyNWRhZDJlMTg5NTI0YzFhMWU0NTk1ZDcxYzRmNWFiYzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2
ZW50LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKQEAg
LTE0LDcgKzE0LDggQEAgUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJs
ZXM6IGZhbHNlIH0pLmJ1YmJsZXMgaXMgZmFsc2UKIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZl
bnRUeXBlJywgeyBidWJibGVzOiB0cnVlIH0pLmJ1YmJsZXMgaXMgdHJ1ZQogUEFTUyBuZXcgTWVz
c2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGNhbmNlbGFibGU6IGZhbHNlIH0pLmNhbmNlbGFibGUg
aXMgZmFsc2UKIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBjYW5jZWxhYmxl
OiB0cnVlIH0pLmNhbmNlbGFibGUgaXMgdHJ1ZQotRkFJTCBuZXcgTWVzc2FnZUV2ZW50KCdldmVu
dFR5cGUnLCB7IGRhdGE6IHRlc3Rfb2JqZWN0IH0pLmRhdGEgc2hvdWxkIGJlIFtvYmplY3QgT2Jq
ZWN0XS4gV2FzIFtvYmplY3QgT2JqZWN0XS4KK1BBU1MgbmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRU
eXBlJywgeyBkYXRhOiB0ZXN0X29iamVjdCB9KS5kYXRhIGlzIHRlc3Rfb2JqZWN0CitQQVNTIG5l
dyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogZG9jdW1lbnQgfSkuZGF0YSBpcyBk
b2N1bWVudAogUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGRhdGE6IHVuZGVm
aW5lZCB9KS5kYXRhIGlzIHVuZGVmaW5lZAogUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5
cGUnLCB7IGRhdGE6IG51bGwgfSkuZGF0YSBpcyBudWxsCiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQo
J2V2ZW50VHlwZScsIHsgZGF0YTogZmFsc2UgfSkuZGF0YSBpcyBmYWxzZQpAQCAtOTQsNyArOTUs
NyBAQCBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZ2V0IHBvcnRzKCkgeyB0
aHJvdyAnTWVzc2FnZUV2ZW50IEVycm9yJzsgfQogUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVu
dFR5cGUnLCB7IHBvcnRzOiB7dmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gW2NoYW5uZWwu
cG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdOyB9IH0gfSkucG9ydHNbMF0gdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgbmV3IE1lc3NhZ2VFdmVu
dCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0
ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQn
LCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBj
aGFubmVsLnBvcnQyXSB9KS5idWJibGVzIGlzIHRydWUKIFBBU1MgbmV3IE1lc3NhZ2VFdmVudCgn
ZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0
X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBz
b3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFu
bmVsLnBvcnQyXSB9KS5jYW5jZWxhYmxlIGlzIHRydWUKLUZBSUwgbmV3IE1lc3NhZ2VFdmVudCgn
ZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0
X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBz
b3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFu
bmVsLnBvcnQyXSB9KS5kYXRhIHNob3VsZCBiZSBbb2JqZWN0IE9iamVjdF0uIFdhcyBbb2JqZWN0
IE9iamVjdF0uCitQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczog
dHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9yaWdpbjogJ3dvbmRl
cmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNlOiB3aW5kb3csIHBvcnRzOiBb
Y2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0gfSkuZGF0YSBpcyB0
ZXN0X29iamVjdAogUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6
IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3b25k
ZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0czog
W2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLm9yaWdpbiBp
cyAid29uZGVyZnVsIgogUEFTUyBuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJs
ZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3
b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0
czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLmxhc3RF
dmVudElkIGlzICJleGNlbGxlbnQiCiBQQVNTIG5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScs
IHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9y
aWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElkOiAnZXhjZWxsZW50Jywgc291cmNlOiB3aW5k
b3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hhbm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0g
fSkuc291cmNlIGlzIHdpbmRvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
Y29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwK
aW5kZXggZjU5M2NmODJlNzlhNTk0NzU1YTAzZWI2MGQ2NTNiNmI4YTZiMzJlZS4uYTIzNzI1OWI2
MmM3YjBiZTJjOGZhMDc4NzhlZjljZWFkOTY2NzIwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3IuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvbWVzc2FnZS1ldmVudC1j
b25zdHJ1Y3Rvci5odG1sCkBAIC0yOSwxMCArMjksOCBAQCBzaG91bGRCZSgibmV3IE1lc3NhZ2VF
dmVudCgnZXZlbnRUeXBlJywgeyBjYW5jZWxhYmxlOiBmYWxzZSB9KS5jYW5jZWxhYmxlIiwgImZh
bAogc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgY2FuY2VsYWJsZTog
dHJ1ZSB9KS5jYW5jZWxhYmxlIiwgInRydWUiKTsKIAogLy8gZGF0YSBpcyBwYXNzZWQuCi0vLyBG
SVhNRShoYXJha2VuKTogVGhpcyBmYWlscyBiZWNhdXNlIE1lc3NhZ2VFdmVudC5kYXRhIGNhbm5v
dCBoYW5kbGUgU2NyaXB0VmFsdWUuCiBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRU
eXBlJywgeyBkYXRhOiB0ZXN0X29iamVjdCB9KS5kYXRhIiwgInRlc3Rfb2JqZWN0Iik7Ci0vLyBG
SVhNRShoYXJha2VuKTogV2hlbiB3ZSBwYXNzIGEgRE9NIG9iamVjdCwgaXQgY3Jhc2hlcyBpbiBE
UlQgKGl0IHJldHVybnMgVHlwZUVycm9yIGluIG5vbi1EUlQgYnVpbGQpLgotLy8gc2hvdWxkQmUo
Im5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogZG9jdW1lbnQgfSkuZGF0YSIs
ICJkb2N1bWVudCIpOworc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsg
ZGF0YTogZG9jdW1lbnQgfSkuZGF0YSIsICJkb2N1bWVudCIpOwogc2hvdWxkQmUoIm5ldyBNZXNz
YWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgZGF0YTogdW5kZWZpbmVkIH0pLmRhdGEiLCAidW5kZWZp
bmVkIik7CiBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBkYXRhOiBu
dWxsIH0pLmRhdGEiLCAibnVsbCIpOwogc2hvdWxkQmUoIm5ldyBNZXNzYWdlRXZlbnQoJ2V2ZW50
VHlwZScsIHsgZGF0YTogZmFsc2UgfSkuZGF0YSIsICJmYWxzZSIpOwpAQCAtMTIwLDcgKzExOCw2
IEBAIHNob3VsZFRocm93KCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IHBvcnRzOiB7
dmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1CiAvLyBBbGwgaW5pdGlhbGl6ZXJzIGFyZSBwYXNz
ZWQuCiBzaG91bGRCZSgibmV3IE1lc3NhZ2VFdmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0
cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVy
ZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQnLCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtj
aGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBjaGFubmVsLnBvcnQyXSB9KS5idWJibGVzIiwg
InRydWUiKTsKIHNob3VsZEJlKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJs
ZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3
b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0
czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLmNhbmNl
bGFibGUiLCAidHJ1ZSIpOwotLy8gRklYTUUoaGFyYWtlbik6IFRoaXMgZmFpbHMgYmVjYXVzZSBN
ZXNzYWdlRXZlbnQuZGF0YSBjYW5ub3QgaGFuZGxlIFNjcmlwdFZhbHVlLgogc2hvdWxkQmUoIm5l
dyBNZXNzYWdlRXZlbnQoJ2V2ZW50VHlwZScsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTog
dHJ1ZSwgZGF0YTogdGVzdF9vYmplY3QsIG9yaWdpbjogJ3dvbmRlcmZ1bCcsIGxhc3RFdmVudElk
OiAnZXhjZWxsZW50Jywgc291cmNlOiB3aW5kb3csIHBvcnRzOiBbY2hhbm5lbC5wb3J0MSwgY2hh
bm5lbC5wb3J0MiwgY2hhbm5lbC5wb3J0Ml0gfSkuZGF0YSIsICJ0ZXN0X29iamVjdCIpOwogc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJuZXcgTWVzc2FnZUV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJs
ZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIGRhdGE6IHRlc3Rfb2JqZWN0LCBvcmlnaW46ICd3
b25kZXJmdWwnLCBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsIHNvdXJjZTogd2luZG93LCBwb3J0
czogW2NoYW5uZWwucG9ydDEsIGNoYW5uZWwucG9ydDIsIGNoYW5uZWwucG9ydDJdIH0pLm9yaWdp
biIsICJ3b25kZXJmdWwiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygibmV3IE1lc3NhZ2VFdmVu
dCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBkYXRhOiB0
ZXN0X29iamVjdCwgb3JpZ2luOiAnd29uZGVyZnVsJywgbGFzdEV2ZW50SWQ6ICdleGNlbGxlbnQn
LCBzb3VyY2U6IHdpbmRvdywgcG9ydHM6IFtjaGFubmVsLnBvcnQxLCBjaGFubmVsLnBvcnQyLCBj
aGFubmVsLnBvcnQyXSB9KS5sYXN0RXZlbnRJZCIsICJleGNlbGxlbnQiKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>