<?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>110333</bug_id>
          
          <creation_ts>2013-02-20 05:42:08 -0800</creation_ts>
          <short_desc>Implement ID for RTCStatsReport object</short_desc>
          <delta_ts>2013-03-26 05:03:40 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>110332</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Harald Alvestrand">hta</reporter>
          <assigned_to name="Harald Alvestrand">hta</assigned_to>
          <cc>abarth</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>jansson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jochen</cc>
    
    <cc>kjellander</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>837388</commentid>
    <comment_count>0</comment_count>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-02-20 05:42:08 -0800</bug_when>
    <thetext>Patch to implement ID support in RTCStatsReport.

- Add the ID property to RTCStatsReport
- Add the get-by-ID named getter to RTCStatsResponse
- Move the actual content of stats from RTCStatsElement to RTCStatsReport

Preserve RTCStatsElement API until Chrome has been updated, but don&apos;t bother preserving the local/remote distinction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837395</commentid>
    <comment_count>1</comment_count>
      <attachid>189300</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-02-20 06:02:39 -0800</bug_when>
    <thetext>Created attachment 189300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839415</commentid>
    <comment_count>2</comment_count>
      <attachid>189729</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-02-22 02:35:12 -0800</bug_when>
    <thetext>Created attachment 189729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839443</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 03:48:50 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839541</commentid>
    <comment_count>4</comment_count>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-02-22 06:28:02 -0800</bug_when>
    <thetext>The API update that this patch is the start on is here:

http://dev.w3.org/2011/webrtc/editor/archives/20130222/webrtc.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839550</commentid>
    <comment_count>5</comment_count>
      <attachid>189729</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-22 06:52:33 -0800</bug_when>
    <thetext>Comment on attachment 189729
Patch

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

&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.cpp:57
&gt; +        it != m_stats.end(); ++it) {

One line please

&gt; Source/WebCore/platform/chromium/support/WebRTCStatsResponse.cpp:60
&gt; +    return m_private-&gt;addReport(id, type, timestamp);

Please add ASSERT(m_private) first in these functions. Bettar safe than sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841435</commentid>
    <comment_count>6</comment_count>
      <attachid>189729</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-25 17:08:43 -0800</bug_when>
    <thetext>Comment on attachment 189729
Patch

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

New failing tests:
fast/multicol/block-axis-vertical-lr.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843992</commentid>
    <comment_count>7</comment_count>
      <attachid>189729</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-28 04:49:23 -0800</bug_when>
    <thetext>Comment on attachment 189729
Patch

Attachment 189729 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/16793281</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851119</commentid>
    <comment_count>8</comment_count>
      <attachid>192210</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-03-08 06:00:22 -0800</bug_when>
    <thetext>Created attachment 192210
This version of the patch should be ready. The previous ones were basically trybot probes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851123</commentid>
    <comment_count>9</comment_count>
      <attachid>192210</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-08 06:14:24 -0800</bug_when>
    <thetext>Comment on attachment 192210
This version of the patch should be ready. The previous ones were basically trybot probes.

Attachment 192210 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17110056</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851129</commentid>
    <comment_count>10</comment_count>
      <attachid>192210</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-08 06:18:50 -0800</bug_when>
    <thetext>Comment on attachment 192210
This version of the patch should be ready. The previous ones were basically trybot probes.

Attachment 192210 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17016174</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851131</commentid>
    <comment_count>11</comment_count>
      <attachid>192212</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-03-08 06:24:25 -0800</bug_when>
    <thetext>Created attachment 192212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851141</commentid>
    <comment_count>12</comment_count>
      <attachid>192212</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-08 06:37:50 -0800</bug_when>
    <thetext>Comment on attachment 192212
Patch

Attachment 192212 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17047242</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851153</commentid>
    <comment_count>13</comment_count>
      <attachid>192218</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-03-08 06:52:36 -0800</bug_when>
    <thetext>Created attachment 192218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851157</commentid>
    <comment_count>14</comment_count>
      <attachid>192218</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-08 07:00:16 -0800</bug_when>
    <thetext>Comment on attachment 192218
Patch

Attachment 192218 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17077318</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851172</commentid>
    <comment_count>15</comment_count>
      <attachid>192224</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-03-08 07:18:42 -0800</bug_when>
    <thetext>Created attachment 192224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851510</commentid>
    <comment_count>16</comment_count>
      <attachid>192224</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-08 14:31:37 -0800</bug_when>
    <thetext>Comment on attachment 192224
Patch

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

&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.cpp:37
&gt; -    return adoptRef(new RTCStatsReport());
&gt; +    return adoptRef(new RTCStatsReport(&quot;inner fake ID&quot;, &quot;inner fake type&quot;, 0));

What&apos;s up with these strings?  They seems like odd things to use in production code.  Should we use empty or null strings instead?

&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.cpp:45
&gt; +RTCStatsReport::RTCStatsReport(String id, String type, double timestamp)

String -&gt; const String&amp;

Almost all the time you take a String as a parameter to a function, you want to use a const String&amp; to avoid churning the refcount on the underlying StringImpl object.

&gt; Source/WebCore/Modules/mediastream/RTCStatsResponse.cpp:31
&gt; +

This addition seems spurious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851542</commentid>
    <comment_count>17</comment_count>
      <attachid>192293</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-03-08 15:09:43 -0800</bug_when>
    <thetext>Created attachment 192293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851546</commentid>
    <comment_count>18</comment_count>
      <attachid>192293</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-08 15:13:59 -0800</bug_when>
    <thetext>Comment on attachment 192293
Patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851551</commentid>
    <comment_count>19</comment_count>
      <attachid>192224</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-03-08 15:19:02 -0800</bug_when>
    <thetext>Comment on attachment 192224
Patch

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

Thanks - fixed the comments.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.cpp:37
&gt;&gt; +    return adoptRef(new RTCStatsReport(&quot;inner fake ID&quot;, &quot;inner fake type&quot;, 0));
&gt; 
&gt; What&apos;s up with these strings?  They seems like odd things to use in production code.  Should we use empty or null strings instead?

This function is part of the //DEPRECATED stuff that I plan to remove week after next (after landing the Chromium patches that stop all usage of the deprecated interface). The new interface should never have null strings for these, so I want something that&apos;s easy to see and not invalid.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.cpp:45
&gt;&gt; +RTCStatsReport::RTCStatsReport(String id, String type, double timestamp)
&gt; 
&gt; String -&gt; const String&amp;
&gt; 
&gt; Almost all the time you take a String as a parameter to a function, you want to use a const String&amp; to avoid churning the refcount on the underlying StringImpl object.

Done!

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsResponse.cpp:31
&gt;&gt; +
&gt; 
&gt; This addition seems spurious.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851576</commentid>
    <comment_count>20</comment_count>
      <attachid>192293</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-08 15:48:07 -0800</bug_when>
    <thetext>Comment on attachment 192293
Patch

Clearing flags on attachment: 192293

Committed r145279: &lt;http://trac.webkit.org/changeset/145279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851577</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-08 15:48:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861419</commentid>
    <comment_count>22</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-03-22 07:06:01 -0700</bug_when>
    <thetext>Hey, I can&apos;t link the BlackBerry port after this patch.

DerivedSources/WebCore/JSRTCStatsResponse.cpp.o: In function `WebCore::JSRTCStatsResponse::getOwnPropertySlotByIndex(JSC::JSCell*, JSC::ExecState*, unsigned int, JSC::PropertySlot&amp;)&apos;:
DerivedSources/WebCore/JSRTCStatsResponse.cpp:182: undefined reference to `WebCore::JSRTCStatsResponse::canGetItemsForName(JSC::ExecState*, WebCore::RTCStatsResponse*, JSC::PropertyName)&apos;

DerivedSources/WebCore/JSRTCStatsResponse.cpp.o: In function `WTF::StringImpl::operator delete(void*)&apos;:
Source/WTF/wtf/text/StringImpl.h:135: undefined reference to `WebCore::JSRTCStatsResponse::nameGetter(JSC::ExecState*, JSC::JSValue, JSC::PropertyName)&apos;

...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861469</commentid>
    <comment_count>23</comment_count>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2013-03-22 08:00:34 -0700</bug_when>
    <thetext>This looks like a reaction to the use of the &quot;NamedGetter&quot; control in RTCStatsResponse.idl.

In Chrome, it was enough to add the namedItem function in the IDL and implement it to have this function correctly. Can you check if you have the NamedGetter in any other IDL function that you currently compile, and if so, what functions there have to be to support it?

(dom/NodeList and html/HTMLCollection have the same shape to their interfaces)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861563</commentid>
    <comment_count>24</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-03-22 09:28:18 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Can you check if you have the NamedGetter in any other IDL function that you currently compile, and if so, what functions there have to be to support it?

&gt; (dom/NodeList and html/HTMLCollection have the same shape to their interfaces)

In those cases, JSNodeList::nameGetter() and JSNodeList::canGetItemsForName() are defined in Source/WebCore/bindings/js/

But there&apos;s no such implementation for RTCStatsResponse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863572</commentid>
    <comment_count>25</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-26 05:03:40 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Hey, I can&apos;t link the BlackBerry port after this patch.
&gt; 
&gt; DerivedSources/WebCore/JSRTCStatsResponse.cpp.o: In function `WebCore::JSRTCStatsResponse::getOwnPropertySlotByIndex(JSC::JSCell*, JSC::ExecState*, unsigned int, JSC::PropertySlot&amp;)&apos;:
&gt; DerivedSources/WebCore/JSRTCStatsResponse.cpp:182: undefined reference to `WebCore::JSRTCStatsResponse::canGetItemsForName(JSC::ExecState*, WebCore::RTCStatsResponse*, JSC::PropertyName)&apos;
&gt; 
&gt; DerivedSources/WebCore/JSRTCStatsResponse.cpp.o: In function `WTF::StringImpl::operator delete(void*)&apos;:
&gt; Source/WTF/wtf/text/StringImpl.h:135: undefined reference to `WebCore::JSRTCStatsResponse::nameGetter(JSC::ExecState*, JSC::JSValue, JSC::PropertyName)&apos;
&gt; 
&gt; ...

I don&apos;t think this is a BlackBerry specific build failure, but any port using JSC and building with media stream enabled would fail to build. I&apos;ve opened a new bug:

https://bugs.webkit.org/show_bug.cgi?id=113294</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189300</attachid>
            <date>2013-02-20 06:02:39 -0800</date>
            <delta_ts>2013-02-22 02:35:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110333-20130220145900.patch</filename>
            <type>text/plain</type>
            <size>17454</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBhZDZmNDcyNjYwOGMx
ODk5MzlkMGVhN2RhMjQ5MTJjMjkyOTI2Yy4uOGE2OTBmZDkxYzNiNDE0NmI5OGE0ZGQzMDMwMDky
MTQzZTI0Yzk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAyLTIwICBIYXJh
bGQgQWx2ZXN0cmFuZCAgPGh0YUBnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBJRCBm
b3IgUlRDU3RhdHNSZXBvcnQgb2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBBZGRzIGFuIElEIHByb3BlcnR5IHRv
IFJUQ1N0YXRzUmVzcG9uc2UuCisgICAgICAgIEFkZHMgYSBuYW1lZCBnZXR0ZXIgdG8gUlRDU3Rh
dHNSZXNwb25zZS4KKyAgICAgICAgVHVybnMgUlRDU3RhdHNFbGVtZW50IGludG8gYSBkdW1teSBz
aGVsbCBmb3IgYW4gUlRDU3RhdHNSZXBvcnQKKyAgICAgICAgKHdpbGwgYmUgcmVtb3ZlZCBpbiBh
IGxhdGVyIENMKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0ZWQgYnkgZXh0ZW5zaW9ucyB0byBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXN0YXRzIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1N0YXRzRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzRWxlbWVu
dDo6UlRDU3RhdHNFbGVtZW50KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5oOgorICAgICAgICAoUlRDU3RhdHNFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ1N0YXRzRWxlbWVudDo6dGltZXN0YW1wKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0
YXRzRWxlbWVudDo6c3RhdCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0VsZW1lbnQ6Om5h
bWVzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXBvcnQ6OlJUQ1N0YXRzUmVwb3J0KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6Om5hbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1N0YXRzUmVwb3J0Ojpsb2NhbCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1JlcG9ydDo6cmVtb3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0OjphZGRT
dGF0aXN0aWMpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmFkZEVsZW1lbnQp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU3RhdHNSZXBvcnQ6OnRpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1JlcG9ydDo6aWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OnN0YXQpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpuYW1lZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oOgorICAgICAgICAoUlRD
U3RhdHNSZXNwb25zZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3Bv
bnNlQmFzZS5oOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZUJhc2UpOgorCiAyMDEzLTAyLTE5
ICBBcnBpdGEgQmFodWd1bmEgIDxhLmJhaEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBDYXJldCBp
cyBub3QgZGlzcGxheWVkIHdoZW4gdHJ5aW5nIHRvIGZvY3VzIGluc2lkZSBhIGNvbnRlbnRlZGl0
YWJsZSBlbGVtZW50IGNvbnRhaW5pbmcgYW4gZW1wdHkgYmxvY2suCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAKaW5kZXgg
NjI0MTY3M2JlODVlMDA3M2M3Mjk0NmQ4MGZiOGU1YWI3NDVhZWQ5Ny4uNjMyZmM5MTY0NzFmZDJi
OGE4ZWEzZTI4ZjIwZTZlNDBlN2YxMGIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcApAQCAtMzIsMzQgKzMyLDE2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+
IFJUQ1N0YXRzRWxlbWVudDo6Y3JlYXRlKGRvdWJsZSB0aW1lc3RhbXApCi17Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSVENTdGF0c0VsZW1lbnQodGltZXN0YW1wKSk7Ci19Ci0KLVJUQ1N0YXRz
RWxlbWVudDo6UlRDU3RhdHNFbGVtZW50KGRvdWJsZSB0aW1lc3RhbXApCi0gICAgOiBtX3RpbWVz
dGFtcCh0aW1lc3RhbXApCi17Ci19Ci0KLVN0cmluZyBSVENTdGF0c0VsZW1lbnQ6OnN0YXQoY29u
c3QgU3RyaW5nJiBuYW1lKSBjb25zdAotewotICAgIHJldHVybiBtX3N0YXRzLmdldChuYW1lKTsK
LX0KK2NsYXNzIFJUQ1N0YXRzUmVwb3J0OwogCi1WZWN0b3I8U3RyaW5nPiBSVENTdGF0c0VsZW1l
bnQ6Om5hbWVzKCkgY29uc3QKK1Bhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBSVENTdGF0c0Vs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiByZXBvcnQpCiB7
Ci0gICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OwotICAgIGZvciAoSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zdGF0cy5iZWdpbigpOwotICAgICAgICBpdCAh
PSBtX3N0YXRzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoaXQtPmtleSk7
Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENT
dGF0c0VsZW1lbnQocmVwb3J0KSk7CiB9CiAKLXZvaWQgUlRDU3RhdHNFbGVtZW50OjphZGRTdGF0
aXN0aWMoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQorUlRDU3RhdHNF
bGVtZW50OjpSVENTdGF0c0VsZW1lbnQoUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gcmVwb3J0
KQorICAgIDogbV9yZXBvcnQocmVwb3J0KQogewotICAgIG1fc3RhdHMuYWRkKG5hbWUsIHZhbHVl
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmgKaW5kZXggMjJkNGFjZjBiYjIx
MGU4YTlmMTI4NTA0NjQ5ZDBmNjdkZjhkOTk2OC4uZTM0ZjUyOTg5ZWRjZGJhMDEwYWMyOGEyMjhh
MjdhYjY4NTlmNmM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oCkBAIC0yNSwyNiArMjUsMzAgQEAKICNpZm5kZWYgUlRD
U3RhdHNFbGVtZW50X2gKICNkZWZpbmUgUlRDU3RhdHNFbGVtZW50X2gKIAorI2luY2x1ZGUgIlJU
Q1N0YXRzUmVwb3J0LmgiCisKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorLy8gVGhpcyBpcyBhIGZha2UgZWxlbWVudCBmb3IgYmFj
a3dhcmRzIGNvbXBhdGliaWxpdHkgb25seS4KKy8vIERFUFJFQ0FURUQuCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFJUQ1N0YXRzRWxlbWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0
YXRzRWxlbWVudD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1N0YXRzRWxl
bWVudD4gY3JlYXRlKGRvdWJsZSB0aW1lc3RhbXApOwotICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBj
b25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIFN0cmluZyBzdGF0KGNvbnN0IFN0cmlu
ZyYgbmFtZSkgY29uc3Q7Ci0gICAgVmVjdG9yPFN0cmluZz4gbmFtZXMoKSBjb25zdDsKLSAgICB2
b2lkIGFkZFN0YXRpc3RpYyhjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUp
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gY3JlYXRlKGNvbnN0IFBh
c3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+KTsKKyAgICAvLyBzdGF0aWMgUGFzc1JlZlB0cjxSVENT
dGF0c0VsZW1lbnQ+IGNyZWF0ZShkb3VibGUgdGltZXN0YW1wKTsKKyAgICBkb3VibGUgdGltZXN0
YW1wKCkgY29uc3QgeyByZXR1cm4gbV9yZXBvcnQtPnRpbWVzdGFtcCgpOyB9CisgICAgU3RyaW5n
IHN0YXQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydC0+c3RhdChu
YW1lKTsgfQorICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzKCkgY29uc3QgeyByZXR1cm4gbV9yZXBv
cnQtPm5hbWVzKCk7IH0KKyAgICAvLyB2b2lkIGFkZFN0YXRpc3RpYyhjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJUQ1N0
YXRzRWxlbWVudChkb3VibGUgdGltZXN0YW1wKTsKLQotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsK
LSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3N0YXRzOworICAgIGV4cGxpY2l0IFJUQ1N0
YXRzRWxlbWVudChQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0Pik7CisgICAgCisgICAgUmVmUHRy
PFJUQ1N0YXRzUmVwb3J0PiBtX3JlcG9ydDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cG9ydC5jcHAKaW5kZXggYTU2MTZkNTllOWZhMDJjOGMyM2U5OGJkOGY1NTY4ZTUzYWFhNDRjMi4u
ODRhODQ4ZmNhNThhN2Y2ODhiYzc2YmRjYjY0YjUxMmE4OWZkNThhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKQEAg
LTI4LDM3ICsyOCw2MyBAQAogCiAjaW5jbHVkZSAiUlRDU3RhdHNSZXBvcnQuaCIKIAorI2luY2x1
ZGUgIlJUQ1N0YXRzRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBSVENT
dGF0c1JlcG9ydDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRz
UmVwb3J0KCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoImlubmVy
IGZha2UgSUQiLCAiaW5uZXIgZmFrZSB0eXBlIiwgMCkpOwogfQogCi1SVENTdGF0c1JlcG9ydDo6
UlRDU3RhdHNSZXBvcnQoKQorUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gUlRDU3RhdHNSZXBv
cnQ6OmNyZWF0ZShTdHJpbmcgaWQsIFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQogewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoaWQsIHR5cGUsIHRpbWVzdGFt
cCkpOwogfQogCi12b2lkIFJUQ1N0YXRzUmVwb3J0OjphZGRFbGVtZW50KGJvb2wgaXNMb2NhbCwg
ZG91YmxlIHRpbWVzdGFtcCkKK1JUQ1N0YXRzUmVwb3J0OjpSVENTdGF0c1JlcG9ydChTdHJpbmcg
aWQsIFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQorICAgIDogbV9pZChpZCkKKyAgICAs
IG1fdHlwZSh0eXBlKQorICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQoreworfQorCitWZWN0
b3I8U3RyaW5nPiBSVENTdGF0c1JlcG9ydDo6bmFtZXMoKSBjb25zdAogewotICAgIGlmIChpc0xv
Y2FsKSB7Ci0gICAgICAgIEFTU0VSVCghbV9sb2NhbCk7Ci0gICAgICAgIG1fbG9jYWwgPSBSVENT
dGF0c0VsZW1lbnQ6OmNyZWF0ZSh0aW1lc3RhbXApOwotICAgICAgICByZXR1cm47CisgICAgVmVj
dG9yPFN0cmluZz4gcmVzdWx0OworICAgIGZvciAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbV9zdGF0cy5iZWdpbigpOworICAgICAgICBpdCAhPSBtX3N0YXRz
LmVuZCgpOyArK2l0KSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQtPmtleSk7CiAgICAgfQot
ICAgIEFTU0VSVCghbV9yZW1vdGUpOwotICAgIG1fcmVtb3RlID0gUlRDU3RhdHNFbGVtZW50Ojpj
cmVhdGUodGltZXN0YW1wKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitjb25zdCBQYXNzUmVm
UHRyPFJUQ1N0YXRzRWxlbWVudD4gUlRDU3RhdHNSZXBvcnQ6OmxvY2FsKCkKK3sKKyAgICByZXR1
cm4gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUoYWRvcHRSZWYodGhpcykpOworfQorCitjb25zdCBQ
YXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gUlRDU3RhdHNSZXBvcnQ6OnJlbW90ZSgpCit7Cisg
ICAgcmV0dXJuIFJUQ1N0YXRzRWxlbWVudDo6Y3JlYXRlKGFkb3B0UmVmKHRoaXMpKTsKK30KKwor
dm9pZCBSVENTdGF0c1JlcG9ydDo6YWRkU3RhdGlzdGljKFN0cmluZyBuYW1lLCBTdHJpbmcgdmFs
dWUpCit7CisgICAgbV9zdGF0cy5hZGQobmFtZSwgdmFsdWUpOworfQorCit2b2lkIFJUQ1N0YXRz
UmVwb3J0OjphZGRFbGVtZW50KGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCkKK3sKKyAg
ICAvLyBXZSBpZ25vcmUgaXNMb2NhbC4KKyAgICBtX3RpbWVzdGFtcCA9IHRpbWVzdGFtcDsKIH0K
IAogdm9pZCBSVENTdGF0c1JlcG9ydDo6YWRkU3RhdGlzdGljKGJvb2wgaXNMb2NhbCwgU3RyaW5n
IG5hbWUsIFN0cmluZyB2YWx1ZSkKIHsKLSAgICBpZiAoaXNMb2NhbCkgewotICAgICAgICBBU1NF
UlQobV9sb2NhbCk7Ci0gICAgICAgIG1fbG9jYWwtPmFkZFN0YXRpc3RpYyhuYW1lLCB2YWx1ZSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKG1fcmVtb3RlKTsKLSAgICAgICAgbV9yZW1v
dGUtPmFkZFN0YXRpc3RpYyhuYW1lLCB2YWx1ZSk7Ci0gICAgfQorICAgIC8vIFdlIGlnbm9yZSBp
c0xvY2FsLgorICAgIGFkZFN0YXRpc3RpYyhuYW1lLCB2YWx1ZSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXBvcnQuaAppbmRleCAzZDBjY2NmNTU4NDRhMjE0ODdkNjcyNzI4MTEzMzQ4ZDI4
ZGM4YzU5Li42NjcyYjM1M2FlMGM0YzdkYjYxNzYyZjZlMGQ5MGY0YThjMmE1MTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5o
CkBAIC0yNSw3ICsyNSw4IEBACiAjaWZuZGVmIFJUQ1N0YXRzUmVwb3J0X2gKICNkZWZpbmUgUlRD
U3RhdHNSZXBvcnRfaAogCi0jaW5jbHVkZSAiUlRDU3RhdHNFbGVtZW50LmgiCisvLyAjaW5jbHVk
ZSAiUlRDU3RhdHNFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzMsMjEgKzM0LDM3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgUlRDU3RhdHNFbGVtZW50OworCiBjbGFzcyBSVENTdGF0c1JlcG9ydCA6IHB1
YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVwb3J0PiB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZShTdHJpbmcgaWQsIFN0cmluZyB0eXBlLCBk
b3VibGUgdGltZXN0YW1wKTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZSgpOwogCi0gICAgY29uc3QgUGFzc1JlZlB0cjxSVENT
dGF0c0VsZW1lbnQ+IGxvY2FsKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbC5nZXQoKTsgfQotICAg
IGNvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiByZW1vdGUoKSBjb25zdCB7IHJldHVy
biBtX3JlbW90ZS5nZXQoKTsgfQorICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVy
biBtX3RpbWVzdGFtcDsgfQorICAgIFN0cmluZyBpZCgpIHsgcmV0dXJuIG1faWQ7IH0KKyAgICBT
dHJpbmcgc3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIHsgcmV0dXJuIG1fc3RhdHMuZ2V0KG5hbWUp
OyB9CisgICAgVmVjdG9yPFN0cmluZz4gbmFtZXMoKSBjb25zdDsKKworICAgIC8vIERFUFJFQ0FU
RUQKKyAgICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gbG9jYWwoKTsKKyAgICAv
LyBERVBSRUNBVEVECisgICAgY29uc3QgUGFzc1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IHJlbW90
ZSgpOwogCisgICAgdm9pZCBhZGRTdGF0aXN0aWMoU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSk7
CisgICAgLy8gREVQUkVDQVRFRAogICAgIHZvaWQgYWRkRWxlbWVudChib29sIGlzTG9jYWwsIGRv
dWJsZSB0aW1lc3RhbXApOworICAgIC8vIERFUFJFQ0FURUQKICAgICB2b2lkIGFkZFN0YXRpc3Rp
Yyhib29sIGlzTG9jYWwsIFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpOwogCiBwcml2YXRlOgot
ICAgIFJUQ1N0YXRzUmVwb3J0KCk7CisgICAgUlRDU3RhdHNSZXBvcnQoU3RyaW5nIGlkLCBTdHJp
bmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCk7CiAKLSAgICBSZWZQdHI8UlRDU3RhdHNFbGVtZW50
PiBtX2xvY2FsOwotICAgIFJlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IG1fcmVtb3RlOworICAgIFN0
cmluZyBtX2lkOworICAgIFN0cmluZyBtX3R5cGU7CisgICAgZG91YmxlIG1fdGltZXN0YW1wOwor
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc3RhdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVwb3J0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXBvcnQuaWRsCmluZGV4IGZlNmY3ZjMxMTUyNjk4MDhiYzgyMjk5NzQ0YmQwODg1
ZmFkY2VkMDYuLmMyNGYxYzIzMWQ0N2Q1ZGZhMTM3NTZkNjIxYWVhZDBjOThkNGJjM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuaWRsCkBAIC0yNiw2ICsyNiwxMSBAQAogICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwK
ICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFjZSBSVENTdGF0c1JlcG9y
dCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGUgdGltZXN0YW1wOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7CisgICAgRE9NU3RyaW5nIHN0YXQoaW4gRE9NU3RyaW5n
IG5hbWUpOworICAgIHNlcXVlbmNlPERPTVN0cmluZz4gbmFtZXMoKTsKKyAgICAvLyBERVBSRUNB
VEVECiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0YXRzRWxlbWVudCBsb2NhbDsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgUlRDU3RhdHNFbGVtZW50IHJlbW90ZTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNw
cAppbmRleCBlMzc1Y2JlZDBiMTNkMTVkMDAxYTUxNDNjY2ZmMWE2MThiMzAwMmNjLi4wZGQzNGY4
OTU5OThmNDg5MWZkYWQ1ZmU0MzU1NTgwZDVlM2JhMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2UuaCIKIAorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZT4gUlRDU3RhdHNSZXNw
b25zZTo6Y3JlYXRlKCkKQEAgLTM5LDEyICs0MCwyNyBAQCBSVENTdGF0c1Jlc3BvbnNlOjpSVENT
dGF0c1Jlc3BvbnNlKCkKIHsKIH0KIAotc2l6ZV90IFJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9y
dCgpCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBSVENTdGF0c1Jlc3BvbnNlOjpuYW1lZEl0
ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChtX2lkbWFwLmZpbmQobmFt
ZSkgIT0gbV9pZG1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIG1fcmVzdWx0W21faWRtYXAuZ2V0
KG5hbWUpXTsKKyAgICByZXR1cm4gMDsKK30KKworc2l6ZV90IFJUQ1N0YXRzUmVzcG9uc2U6OmFk
ZFJlcG9ydChTdHJpbmcgaWQsIFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQogewotICAg
IG1fcmVzdWx0LmFwcGVuZChSVENTdGF0c1JlcG9ydDo6Y3JlYXRlKCkpOworICAgIG1fcmVzdWx0
LmFwcGVuZChSVENTdGF0c1JlcG9ydDo6Y3JlYXRlKGlkLCB0eXBlLCB0aW1lc3RhbXApKTsKKyAg
ICBtX2lkbWFwLmFkZChpZCwgbV9yZXN1bHQuc2l6ZSgpIC0gMSk7CiAgICAgcmV0dXJuIG1fcmVz
dWx0LnNpemUoKSAtIDE7CiB9CiAKKy8vIERFUFJFQ0FURUQKK3NpemVfdCBSVENTdGF0c1Jlc3Bv
bnNlOjphZGRSZXBvcnQoKQoreworICAgIFN0cmluZyBmYWtlSWQgPSBTdHJpbmc6OmZvcm1hdCgi
RmFrZSBJRCAlbHUiLCBtX3Jlc3VsdC5zaXplKCkpOworICAgIHJldHVybiBhZGRSZXBvcnQoZmFr
ZUlkLCAibm8gdHlwZSIsIDApOworfQorCiB2b2lkIFJUQ1N0YXRzUmVzcG9uc2U6OmFkZEVsZW1l
bnQoc2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBkb3VibGUgdGltZXN0YW1wKQogewogICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJlcG9ydCA+PSAwICYmIHJlcG9ydCA8
IG1fcmVzdWx0LnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCmluZGV4IGQxYmNjYzM3YzcyNGQ4ZTVlMmY2Nzg4
ODA2YjQ0Zjk0YjQ3MzZiYWMuLjFkMzk3NmFiMjA0ZjNmMjMyNjUyMjVkMDBkZTE2MDVjMTgzM2Yx
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXNwb25zZS5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1U
cmFjay5oIgogI2luY2x1ZGUgIlJUQ1N0YXRzUmVwb3J0LmgiCiAjaW5jbHVkZSAiUlRDU3RhdHNS
ZXNwb25zZUJhc2UuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQ0LDEzICs0NSwxNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8
UmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiA+JiByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jlc3Vs
dDsgfTsKIAorICAgIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IG5hbWVkSXRlbShjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpOworCiAgICAgdmlydHVhbCBzaXplX3QgYWRkUmVwb3J0KCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBzaXplX3QgYWRkUmVwb3J0KFN0cmluZyBpZCwgU3RyaW5nIHR5
cGUsIGRvdWJsZSB0aW1lc3RhbXApIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRFbGVt
ZW50KHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBib29sIGlz
TG9jYWwsIFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpIE9WRVJSSURFOwogCiBwcml2YXRlOgog
ICAgIFJUQ1N0YXRzUmVzcG9uc2UoKTsKICAgICBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzUmVwb3J0
PiA+IG1fcmVzdWx0OworICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+IG1faWRtYXA7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbAppbmRleCBhYmNkMTk4MTFhNGM0Yzhl
OTJjYTZhNjdmZjg5MGRiNmViNDQ1MDRhLi5mNmU4YmI5NzM0NGZjOGE3YTYxNzVlYzMzZWExMmM4
NDc0MGU0Y2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVzcG9uc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKQEAgLTIzLDcgKzIzLDkgQEAKICAqLwogCiBbCi0g
ICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
LAorICAgIE5hbWVkR2V0dGVyCiBdIGludGVyZmFjZSBSVENTdGF0c1Jlc3BvbnNlIHsKICAgICBz
ZXF1ZW5jZTxSVENTdGF0c1JlcG9ydD4gcmVzdWx0KCk7CisgICAgUlRDU3RhdHNSZXBvcnQgbmFt
ZWRJdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENT
dGF0c1Jlc3BvbnNlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXNwb25zZUJhc2UuaAppbmRleCA5MWNiZmE2ODYzODM1OTg4MzdhNjU5NTVhNTRm
YTY0NDFhZjcwOTkxLi40NWFiOWE2ZTQwNGE2MjNlNDc3MGZlZTE3NzBkYzhkMGY4OGI3MGZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVzcG9uc2VCYXNlLmgKQEAgLTM3LDcgKzM3LDEwIEBAIGNsYXNzIFJUQ1N0YXRzUmVz
cG9uc2VCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXNwb25zZUJhc2U+IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5SVENTdGF0c1Jlc3BvbnNlQmFzZSgpIHsgfQogCisgICAgdmly
dHVhbCBzaXplX3QgYWRkUmVwb3J0KFN0cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1l
c3RhbXApID0gMDsKKyAgICAvLyBERVBSRUNBVEVEIC0gdXNlIGFkZFJlcG9ydChpZCwgdHlwZSwg
dGltZXN0YW1wKQogICAgIHZpcnR1YWwgc2l6ZV90IGFkZFJlcG9ydCgpID0gMDsKKyAgICAvLyBE
RVBSRUNBVEVEIC0gdXNlIGFkZFJlcG9ydChpZCwgdHlwZSwgdGltZXN0YW1wKQogICAgIHZpcnR1
YWwgdm9pZCBhZGRFbGVtZW50KHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRp
bWVzdGFtcCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9y
dCwgYm9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKSA9IDA7CiB9OwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDQ4ZDQ3ODFmODFjNzY1Y2FjMTQzYTI0MmIxM2M4ZDZjMWIwZDgzODkuLjFiOTg0MTgyOGVl
MTk1YWM4MmMyZmNlYmJlNzhjYTBhOGM0MTVmOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
My0wMi0yMCAgSGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgSUQgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVjdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzMzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWw6CisKIDIwMTMtMDItMTkgIFRha2FzaGkgVG95
b3NoaW1hICA8dG95b3NoaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGdh
cmRlbmluZyBmb3IgY2hyb21pdW0uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGE2ZDc1MjI3ZTA0MThhMjgzZDBmN2ZiZTYwZjM3MzdhZmQ2OTYxNmUuLjA0MDFmMGI3MmUw
MGEwMTM3OWU5N2M1YWQ2NTBmN2YzMjMxOGRhMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhw
ZWN0ZWQudHh0CkBAIC0xNyw2ICsxNywxMyBAQCBQQVNTIHRpbWVzdGFtcCBpcyA+PSBzdGFydFRp
bWUKIFBBU1MgbG9jYWwubmFtZXMoKS5sZW5ndGggaXMgPj0gMQogUEFTUyBsb2NhbC5uYW1lcygp
LmluZGV4T2YoInR5cGUiKSBpcyA+PSAwCiBQQVNTIGxvY2FsLnN0YXQoInR5cGUiKSBpcyAiYXVk
aW8iCitQQVNTIHJlcy50aW1lc3RhbXAgaXMgPj0gc3RhcnRUaW1lCitQQVNTIHJlcy5pZCBpcyAi
RmFrZSBJRCAwIgorUEFTUyByZXMubmFtZXMoKS5sZW5ndGggaXMgPj0gMQorUEFTUyByZXMubmFt
ZXMoKS5pbmRleE9mKCJ0eXBlIikgaXMgPj0gMAorUEFTUyByZXMuc3RhdCgidHlwZSIpIGlzICJh
dWRpbyIKK1BBU1Mgc3RhdHVzX2cubmFtZWRJdGVtKHJlcy5pZCkgaXMgbm9uLW51bGwuCitQQVNT
IHN0YXR1c19nW3Jlcy5pZF0gaXMgbm9uLW51bGwuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbAppbmRleCAyOWQ1ODE0NGI1
YzlkNzFmZGYxZmVmMWMzYzE3MzdlNWUyNjBlMWQxLi45M2E0YThmODZhNTBlOWRhYmRkYTUwYTIy
OTFjZmMzNzYyYzZhY2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sCkBAIC00NywxNCArNDcsMjcgQEAg
ZnVuY3Rpb24gZ290U3RyZWFtKHMpIHsKIGZ1bmN0aW9uIHN0YXRzSGFuZGxlcjIoc3RhdHVzKQog
ewogICAgIHRlc3RQYXNzZWQoInN0YXRzSGFuZGxlcjIgd2FzIGNhbGxlZCIpOworICAgIC8vIFN0
YXR1cyBtdXN0IGJlIGEgZ2xvYmFsIHZhcmlhYmxlIHRvIGJlIHVzZWQgaW4gdGVzdCBzdGF0ZW1l
bnRzLgorICAgIHN0YXR1c19nID0gc3RhdHVzOwogICAgIHJlc3VsdCA9IHN0YXR1cy5yZXN1bHQo
KTsKICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzdWx0Lmxlbmd0aCcsICcyJyk7
CisgICAgLy8gVGhlICJsb2NhbCIgaW50ZXJmYWNlIGlzIGRlcHJlY2F0ZWQuIEtlZXAgdGVzdC4K
ICAgICBsb2NhbCA9IHJlc3VsdFswXS5sb2NhbDsKICAgICB0aW1lc3RhbXAgPSBsb2NhbC50aW1l
c3RhbXA7CiAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3RpbWVzdGFtcCcsICdzdGFy
dFRpbWUnKTsKICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgnbG9jYWwubmFtZXMoKS5s
ZW5ndGgnLCAnMScpOwogICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdsb2NhbC5uYW1l
cygpLmluZGV4T2YoInR5cGUiKScsICcwJyk7CiAgICAgc2hvdWxkQmUoJ2xvY2FsLnN0YXQoInR5
cGUiKScsICciYXVkaW8iJyk7CisgICAgLy8gTmV3ZXIgaW50ZXJmYWNlLgorICAgIHJlcyA9IHJl
c3VsdFswXTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzLnRpbWVzdGFtcCcs
ICdzdGFydFRpbWUnKTsKKyAgICBzaG91bGRCZSgncmVzLmlkJywgJyJGYWtlIElEIDAiJyk7Cisg
ICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3Jlcy5uYW1lcygpLmxlbmd0aCcsICcxJyk7
CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3Jlcy5uYW1lcygpLmluZGV4T2YoInR5
cGUiKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ3Jlcy5zdGF0KCJ0eXBlIiknLCAnImF1ZGlvIicp
OworICAgIC8vIE5hbWVkIGdldHRlcjogQ2FuIGFjY2VzcyByZXN1bHRzIGJ5IHRoZWlyIElEIHZh
bHVlcy4KKyAgICBzaG91bGRCZU5vbk51bGwoJ3N0YXR1c19nLm5hbWVkSXRlbShyZXMuaWQpJyk7
CisgICAgc2hvdWxkQmVOb25OdWxsKCdzdGF0dXNfZ1tyZXMuaWRdJyk7CiAgICAgZmluaXNoSlNU
ZXN0KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189729</attachid>
            <date>2013-02-22 02:35:12 -0800</date>
            <delta_ts>2013-03-08 06:00:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110333-20130222113129.patch</filename>
            <type>text/plain</type>
            <size>23333</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyMTQ2ZDIyZTg0NjA2
NjM3ZTYwMWQxODg1Yzc2MTI1NDg3MWNjOTUxLi5iNjgyYTI4MzE1OTIzOTUxMzAzNWM4ZDRkYWZk
NThjODcyYWExN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0yMSAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
SUQgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXNwb25z
ZS5oOgorICAgICAgICAoV2ViUlRDU3RhdHNSZXNwb25zZSk6CisKIDIwMTMtMDItMTQgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxNDI4NDEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBhZDZmNDcyNjYwOGMxODk5
MzlkMGVhN2RhMjQ5MTJjMjkyOTI2Yy4uNWIyZmU5ZTM5ZmI5YjhiNTY1YjE2OTNhZWI4ODUwZGUw
Yjc2Y2YzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAyLTIxICBIYXJhbGQg
QWx2ZXN0cmFuZCAgPGh0YUBnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBJRCBmb3Ig
UlRDU3RhdHNSZXBvcnQgb2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBBZGRzIGFuIElEIHByb3BlcnR5IHRvIFJU
Q1N0YXRzUmVzcG9uc2UuCisgICAgICAgIEFkZHMgYSBuYW1lZCBnZXR0ZXIgdG8gUlRDU3RhdHNS
ZXNwb25zZS4KKyAgICAgICAgQWRkcyBuZXcgaW50ZXJmYWNlcyB0byBSVENTdGF0c1JlcG9ydC4K
KyAgICAgICAgVHVybnMgUlRDU3RhdHNFbGVtZW50IGludG8gYSBkdW1teSBzaGVsbCBmb3IgYW4g
UlRDU3RhdHNSZXBvcnQKKyAgICAgICAgKHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGxhdGVyIENMKS4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0ZWQg
YnkgZXh0ZW5zaW9ucyB0byBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRz
IHRlc3QuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0VsZW1lbnQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0VsZW1lbnQ6OlJUQ1N0YXRzRWxl
bWVudCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaDoK
KyAgICAgICAgKFJUQ1N0YXRzRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0Vs
ZW1lbnQ6OnRpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0VsZW1lbnQ6OnN0
YXQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpuYW1lcyk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSVENTdGF0c1JlcG9ydDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRz
UmVwb3J0OjpSVENTdGF0c1JlcG9ydCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1N0YXRzUmVwb3J0OjpuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1JlcG9ydDo6bG9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OnJlbW90
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6YWRkU3RhdGlzdGljKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0OjphZGRFbGVtZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0Lmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJUQ1N0YXRzUmVwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVw
b3J0Ojp0aW1lc3RhbXApOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmlkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0OjpzdGF0KToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3Rh
dHNSZXNwb25zZTo6bmFtZWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXNwb25zZTo6YWRkUmVwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1N0YXRzUmVzcG9uc2U6OmFkZFN0YXRpc3RpYyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmg6CisgICAgICAgIChSVENTdGF0c1Jlc3BvbnNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNwb25zZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9ydCk6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRTdGF0
aXN0aWMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2VC
YXNlLmg6CisgICAgICAgIChSVENTdGF0c1Jlc3BvbnNlQmFzZSk6CisKIDIwMTMtMDItMTkgIEFy
cGl0YSBCYWh1Z3VuYSAgPGEuYmFoQHNhbXN1bmcuY29tPgogCiAgICAgICAgIENhcmV0IGlzIG5v
dCBkaXNwbGF5ZWQgd2hlbiB0cnlpbmcgdG8gZm9jdXMgaW5zaWRlIGEgY29udGVudGVkaXRhYmxl
IGVsZW1lbnQgY29udGFpbmluZyBhbiBlbXB0eSBibG9jay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXNwb25zZS5oIGIvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1Jlc3BvbnNlLmgKaW5kZXggY2M2ZjM4
ZTgxMjllMDQxMzBiYjE4NjJkYmI2Nzg0YzU5YzVmZDExYS4uNjAzNjBjNmU2YzRmOTA3YjQ2ZmFj
ZTdhNmE1NmJhNTk3YjdiYTEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJSVENTdGF0c1Jlc3BvbnNlLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJSVENTdGF0c1Jlc3BvbnNlLmgKQEAgLTUxLDggKzUxLDEzIEBAIHB1Ymxp
YzoKIAogICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwogCisgICAgV0VCS0lUX0VYUE9S
VCBzaXplX3QgYWRkUmVwb3J0KFdlYlN0cmluZyBpZCwgV2ViU3RyaW5nIHR5cGUsIGRvdWJsZSB0
aW1lc3RhbXApOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJl
cG9ydCwgV2ViU3RyaW5nIG5hbWUsIFdlYlN0cmluZyB2YWx1ZSk7CisgICAgLy8gREVQUkVDQVRF
RAogICAgIFdFQktJVF9FWFBPUlQgc2l6ZV90IGFkZFJlcG9ydCgpOworICAgIC8vIERFUFJFQ0FU
RUQKICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYWRkRWxlbWVudChzaXplX3QgcmVwb3J0LCBib29s
IGlzTG9jYWwsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIC8vIERFUFJFQ0FURUQKICAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgYWRkU3RhdGlzdGljKHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2NhbCwg
V2ViU3RyaW5nIG5hbWUsIFdlYlN0cmluZyB2YWx1ZSk7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5U
QVRJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNFbGVtZW50LmNwcAppbmRleCA2MjQxNjczYmU4NWUwMDczYzcyOTQ2ZDgwZmI4ZTVhYjc0
NWFlZDk3Li42MzJmYzkxNjQ3MWZkMmI4YThlYTNlMjhmMjBlNmU0MGU3ZjEwYjAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1l
bnQuY3BwCkBAIC0zMiwzNCArMzIsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNz
UmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUoZG91YmxlIHRp
bWVzdGFtcCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRzRWxlbWVudCh0aW1l
c3RhbXApKTsKLX0KLQotUlRDU3RhdHNFbGVtZW50OjpSVENTdGF0c0VsZW1lbnQoZG91YmxlIHRp
bWVzdGFtcCkKLSAgICA6IG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLXsKLX0KLQotU3RyaW5nIFJU
Q1N0YXRzRWxlbWVudDo6c3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fc3RhdHMuZ2V0KG5hbWUpOwotfQorY2xhc3MgUlRDU3RhdHNSZXBvcnQ7CiAKLVZlY3Rv
cjxTdHJpbmc+IFJUQ1N0YXRzRWxlbWVudDo6bmFtZXMoKSBjb25zdAorUGFzc1JlZlB0cjxSVENT
dGF0c0VsZW1lbnQ+IFJUQ1N0YXRzRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFBhc3NSZWZQdHI8UlRD
U3RhdHNSZXBvcnQ+IHJlcG9ydCkKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7Ci0gICAg
Zm9yIChIYXNoTWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N0YXRz
LmJlZ2luKCk7Ci0gICAgICAgIGl0ICE9IG1fc3RhdHMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAg
cmVzdWx0LmFwcGVuZChpdC0+a2V5KTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRzRWxlbWVudChyZXBvcnQpKTsKIH0KIAotdm9pZCBS
VENTdGF0c0VsZW1lbnQ6OmFkZFN0YXRpc3RpYyhjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUpCitSVENTdGF0c0VsZW1lbnQ6OlJUQ1N0YXRzRWxlbWVudChQYXNzUmVmUHRy
PFJUQ1N0YXRzUmVwb3J0PiByZXBvcnQpCisgICAgOiBtX3JlcG9ydChyZXBvcnQpCiB7Ci0gICAg
bV9zdGF0cy5hZGQobmFtZSwgdmFsdWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1l
bnQuaAppbmRleCAyMmQ0YWNmMGJiMjEwZThhOWYxMjg1MDQ2NDlkMGY2N2RmOGQ5OTY4Li5lMzRm
NTI5ODllZGNkYmEwMTBhYzI4YTIyOGEyN2FiNjg1OWY2YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmgKQEAgLTI1LDI2
ICsyNSwzMCBAQAogI2lmbmRlZiBSVENTdGF0c0VsZW1lbnRfaAogI2RlZmluZSBSVENTdGF0c0Vs
ZW1lbnRfaAogCisjaW5jbHVkZSAiUlRDU3RhdHNSZXBvcnQuaCIKKwogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisvLyBUaGlzIGlz
IGEgZmFrZSBlbGVtZW50IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBvbmx5LgorLy8gREVQ
UkVDQVRFRC4KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUlRDU3RhdHNFbGVtZW50IDog
cHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNFbGVtZW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBjcmVhdGUoZG91YmxlIHRpbWVzdGFtcCk7Ci0g
ICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9Ci0gICAg
U3RyaW5nIHN0YXQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKLSAgICBWZWN0b3I8U3RyaW5n
PiBuYW1lcygpIGNvbnN0OwotICAgIHZvaWQgYWRkU3RhdGlzdGljKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNF
bGVtZW50PiBjcmVhdGUoY29uc3QgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4pOworICAgIC8v
IHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gY3JlYXRlKGRvdWJsZSB0aW1lc3Rh
bXApOworICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydC0+dGlt
ZXN0YW1wKCk7IH0KKyAgICBTdHJpbmcgc3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0IHsg
cmV0dXJuIG1fcmVwb3J0LT5zdGF0KG5hbWUpOyB9CisgICAgVmVjdG9yPFN0cmluZz4gbmFtZXMo
KSBjb25zdCB7IHJldHVybiBtX3JlcG9ydC0+bmFtZXMoKTsgfQorICAgIC8vIHZvaWQgYWRkU3Rh
dGlzdGljKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKIHByaXZh
dGU6Ci0gICAgZXhwbGljaXQgUlRDU3RhdHNFbGVtZW50KGRvdWJsZSB0aW1lc3RhbXApOwotCi0g
ICAgZG91YmxlIG1fdGltZXN0YW1wOwotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc3Rh
dHM7CisgICAgZXhwbGljaXQgUlRDU3RhdHNFbGVtZW50KFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBv
cnQ+KTsKKyAgICAKKyAgICBSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IG1fcmVwb3J0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcAppbmRleCBhNTYxNmQ1OWU5ZmEwMmM4YzIz
ZTk4YmQ4ZjU1NjhlNTNhYWE0NGMyLi44NGE4NDhmY2E1OGE3ZjY4OGJjNzZiZGNiNjRiNTEyYTg5
ZmQ1OGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVwb3J0LmNwcApAQCAtMjgsMzcgKzI4LDYzIEBACiAKICNpbmNsdWRlICJSVENT
dGF0c1JlcG9ydC5oIgogCisjaW5jbHVkZSAiUlRDU3RhdHNFbGVtZW50LmgiCisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQ
dHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUoKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBSVENTdGF0c1JlcG9ydCgiaW5uZXIgZmFrZSBJRCIsICJpbm5lciBmYWtlIHR5cGUiLCAwKSk7
CiB9CiAKLVJUQ1N0YXRzUmVwb3J0OjpSVENTdGF0c1JlcG9ydCgpCitQYXNzUmVmUHRyPFJUQ1N0
YXRzUmVwb3J0PiBSVENTdGF0c1JlcG9ydDo6Y3JlYXRlKFN0cmluZyBpZCwgU3RyaW5nIHR5cGUs
IGRvdWJsZSB0aW1lc3RhbXApCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c1Jl
cG9ydChpZCwgdHlwZSwgdGltZXN0YW1wKSk7CiB9CiAKLXZvaWQgUlRDU3RhdHNSZXBvcnQ6OmFk
ZEVsZW1lbnQoYm9vbCBpc0xvY2FsLCBkb3VibGUgdGltZXN0YW1wKQorUlRDU3RhdHNSZXBvcnQ6
OlJUQ1N0YXRzUmVwb3J0KFN0cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXAp
CisgICAgOiBtX2lkKGlkKQorICAgICwgbV90eXBlKHR5cGUpCisgICAgLCBtX3RpbWVzdGFtcCh0
aW1lc3RhbXApCit7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFJUQ1N0YXRzUmVwb3J0OjpuYW1lcygp
IGNvbnN0CiB7Ci0gICAgaWYgKGlzTG9jYWwpIHsKLSAgICAgICAgQVNTRVJUKCFtX2xvY2FsKTsK
LSAgICAgICAgbV9sb2NhbCA9IFJUQ1N0YXRzRWxlbWVudDo6Y3JlYXRlKHRpbWVzdGFtcCk7Ci0g
ICAgICAgIHJldHVybjsKKyAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7CisgICAgZm9yIChIYXNo
TWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N0YXRzLmJlZ2luKCk7
CisgICAgICAgIGl0ICE9IG1fc3RhdHMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgcmVzdWx0LmFw
cGVuZChpdC0+a2V5KTsKICAgICB9Ci0gICAgQVNTRVJUKCFtX3JlbW90ZSk7Ci0gICAgbV9yZW1v
dGUgPSBSVENTdGF0c0VsZW1lbnQ6OmNyZWF0ZSh0aW1lc3RhbXApOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK2NvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBSVENTdGF0c1JlcG9y
dDo6bG9jYWwoKQoreworICAgIHJldHVybiBSVENTdGF0c0VsZW1lbnQ6OmNyZWF0ZShhZG9wdFJl
Zih0aGlzKSk7Cit9CisKK2NvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBSVENTdGF0
c1JlcG9ydDo6cmVtb3RlKCkKK3sKKyAgICByZXR1cm4gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUo
YWRvcHRSZWYodGhpcykpOworfQorCit2b2lkIFJUQ1N0YXRzUmVwb3J0OjphZGRTdGF0aXN0aWMo
U3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkKK3sKKyAgICBtX3N0YXRzLmFkZChuYW1lLCB2YWx1
ZSk7Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXBvcnQ6OmFkZEVsZW1lbnQoYm9vbCBpc0xvY2FsLCBk
b3VibGUgdGltZXN0YW1wKQoreworICAgIC8vIFdlIGlnbm9yZSBpc0xvY2FsLgorICAgIG1fdGlt
ZXN0YW1wID0gdGltZXN0YW1wOwogfQogCiB2b2lkIFJUQ1N0YXRzUmVwb3J0OjphZGRTdGF0aXN0
aWMoYm9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKQogewotICAgIGlmIChp
c0xvY2FsKSB7Ci0gICAgICAgIEFTU0VSVChtX2xvY2FsKTsKLSAgICAgICAgbV9sb2NhbC0+YWRk
U3RhdGlzdGljKG5hbWUsIHZhbHVlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQobV9y
ZW1vdGUpOwotICAgICAgICBtX3JlbW90ZS0+YWRkU3RhdGlzdGljKG5hbWUsIHZhbHVlKTsKLSAg
ICB9CisgICAgLy8gV2UgaWdub3JlIGlzTG9jYWwuCisgICAgYWRkU3RhdGlzdGljKG5hbWUsIHZh
bHVlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCmluZGV4IDNkMGNjY2Y1NTg0
NGEyMTQ4N2Q2NzI3MjgxMTMzNDhkMjhkYzhjNTkuLjY2NzJiMzUzYWUwYzRjN2RiNjE3NjJmNmUw
ZDkwZjRhOGMyYTUxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgKQEAgLTI1LDcgKzI1LDggQEAKICNpZm5kZWYgUlRDU3Rh
dHNSZXBvcnRfaAogI2RlZmluZSBSVENTdGF0c1JlcG9ydF9oCiAKLSNpbmNsdWRlICJSVENTdGF0
c0VsZW1lbnQuaCIKKy8vICNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIKKyNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0zMywyMSArMzQsMzcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBSVENTdGF0c0VsZW1lbnQ7CisKIGNs
YXNzIFJUQ1N0YXRzUmVwb3J0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXBvcnQ+IHsK
IHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gY3JlYXRlKFN0
cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIC8vIERFUFJFQ0FU
RUQKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gY3JlYXRlKCk7CiAKLSAg
ICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gbG9jYWwoKSBjb25zdCB7IHJldHVy
biBtX2xvY2FsLmdldCgpOyB9Ci0gICAgY29uc3QgUGFzc1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+
IHJlbW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlLmdldCgpOyB9CisgICAgZG91YmxlIHRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgU3RyaW5nIGlkKCkg
eyByZXR1cm4gbV9pZDsgfQorICAgIFN0cmluZyBzdGF0KGNvbnN0IFN0cmluZyYgbmFtZSkgeyBy
ZXR1cm4gbV9zdGF0cy5nZXQobmFtZSk7IH0KKyAgICBWZWN0b3I8U3RyaW5nPiBuYW1lcygpIGNv
bnN0OworCisgICAgLy8gREVQUkVDQVRFRAorICAgIGNvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNF
bGVtZW50PiBsb2NhbCgpOworICAgIC8vIERFUFJFQ0FURUQKKyAgICBjb25zdCBQYXNzUmVmUHRy
PFJUQ1N0YXRzRWxlbWVudD4gcmVtb3RlKCk7CiAKKyAgICB2b2lkIGFkZFN0YXRpc3RpYyhTdHJp
bmcgbmFtZSwgU3RyaW5nIHZhbHVlKTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAgdm9pZCBhZGRF
bGVtZW50KGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgLy8gREVQUkVDQVRF
RAogICAgIHZvaWQgYWRkU3RhdGlzdGljKGJvb2wgaXNMb2NhbCwgU3RyaW5nIG5hbWUsIFN0cmlu
ZyB2YWx1ZSk7CiAKIHByaXZhdGU6Ci0gICAgUlRDU3RhdHNSZXBvcnQoKTsKKyAgICBSVENTdGF0
c1JlcG9ydChTdHJpbmcgaWQsIFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKTsKIAotICAg
IFJlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IG1fbG9jYWw7Ci0gICAgUmVmUHRyPFJUQ1N0YXRzRWxl
bWVudD4gbV9yZW1vdGU7CisgICAgU3RyaW5nIG1faWQ7CisgICAgU3RyaW5nIG1fdHlwZTsKKyAg
ICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zdGF0
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKaW5kZXggZmU2ZjdmMzEx
NTI2OTgwOGJjODIyOTk3NDRiZDA4ODVmYWRjZWQwNi4uYzI0ZjFjMjMxZDQ3ZDVkZmExMzc1NmQ2
MjFhZWFkMGM5OGQ0YmMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKQEAgLTI2LDYgKzI2LDExIEBACiAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKIF0g
aW50ZXJmYWNlIFJUQ1N0YXRzUmVwb3J0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGF0ZSB0
aW1lc3RhbXA7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpZDsKKyAgICBET01T
dHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFtZSk7CisgICAgc2VxdWVuY2U8RE9NU3RyaW5nPiBu
YW1lcygpOworICAgIC8vIERFUFJFQ0FURUQKICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU3Rh
dHNFbGVtZW50IGxvY2FsOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTdGF0c0VsZW1lbnQg
cmVtb3RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCmluZGV4IGUzNzVjYmVkMGIxM2QxNWQwMDFhNTE0M2Nj
ZmYxYTYxOGIzMDAyY2MuLmJjODE5ZjFhODM3MzRjZjhjMzNiYzIwZGZkZjA1ZTI3MmE0NmFlZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1Jlc3BvbnNlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiUlRDU3RhdHNS
ZXNwb25zZS5oIgogCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxSVENTdGF0
c1Jlc3BvbnNlPiBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKQpAQCAtMzksMTIgKzQwLDMzIEBA
IFJUQ1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2UoKQogewogfQogCi1zaXplX3QgUlRD
U3RhdHNSZXNwb25zZTo6YWRkUmVwb3J0KCkKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJU
Q1N0YXRzUmVzcG9uc2U6Om5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiB7Ci0g
ICAgbV9yZXN1bHQuYXBwZW5kKFJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUoKSk7CisgICAgaWYgKG1f
aWRtYXAuZmluZChuYW1lKSAhPSBtX2lkbWFwLmVuZCgpKQorICAgICAgICByZXR1cm4gbV9yZXN1
bHRbbV9pZG1hcC5nZXQobmFtZSldOworICAgIHJldHVybiAwOworfQorCitzaXplX3QgUlRDU3Rh
dHNSZXNwb25zZTo6YWRkUmVwb3J0KFN0cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1l
c3RhbXApCit7CisgICAgbV9yZXN1bHQuYXBwZW5kKFJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUoaWQs
IHR5cGUsIHRpbWVzdGFtcCkpOworICAgIG1faWRtYXAuYWRkKGlkLCBtX3Jlc3VsdC5zaXplKCkg
LSAxKTsKICAgICByZXR1cm4gbV9yZXN1bHQuc2l6ZSgpIC0gMTsKIH0KIAordm9pZCBSVENTdGF0
c1Jlc3BvbnNlOjphZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgU3RyaW5nIG5hbWUsIFN0cmlu
ZyB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXBvcnQg
Pj0gMCAmJiByZXBvcnQgPCBtX3Jlc3VsdC5zaXplKCkpOworICAgIG1fcmVzdWx0W3JlcG9ydF0t
PmFkZFN0YXRpc3RpYyhuYW1lLCB2YWx1ZSk7Cit9CisKKy8vIERFUFJFQ0FURUQKK3NpemVfdCBS
VENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQoKQoreworICAgIFN0cmluZyBmYWtlSWQgPSBTdHJp
bmc6OmZvcm1hdCgiRmFrZSBJRCAlbHUiLCBtX3Jlc3VsdC5zaXplKCkpOworICAgIHJldHVybiBh
ZGRSZXBvcnQoZmFrZUlkLCAibm8gdHlwZSIsIDApOworfQorCiB2b2lkIFJUQ1N0YXRzUmVzcG9u
c2U6OmFkZEVsZW1lbnQoc2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBkb3VibGUgdGltZXN0
YW1wKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJlcG9ydCA+PSAw
ICYmIHJlcG9ydCA8IG1fcmVzdWx0LnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCmluZGV4IGQxYmNjYzM3Yzcy
NGQ4ZTVlMmY2Nzg4ODA2YjQ0Zjk0YjQ3MzZiYWMuLjU2NjhhNGU0Mjc1M2RlOTAzN2RkMGZkZDQ5
ODAyMGZiZDBjMTNmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
TWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIlJUQ1N0YXRzUmVwb3J0LmgiCiAjaW5jbHVk
ZSAiUlRDU3RhdHNSZXNwb25zZUJhc2UuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0LDEzICs0NSwyMSBAQCBwdWJsaWM6CiAKICAgICBj
b25zdCBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiA+JiByZXN1bHQoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc3VsdDsgfTsKIAorICAgIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IG5hbWVk
SXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpOworCisgICAgdmlydHVhbCBzaXplX3QgYWRk
UmVwb3J0KFN0cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgU3RyaW5nIG5h
bWUsIFN0cmluZyB2YWx1ZSkgT1ZFUlJJREU7CisgICAgLy8gREVQUkVDQVRFRAogICAgIHZpcnR1
YWwgc2l6ZV90IGFkZFJlcG9ydCgpIE9WRVJSSURFOworICAgIC8vIERFUFJFQ0FURUQKICAgICB2
aXJ0dWFsIHZvaWQgYWRkRWxlbWVudChzaXplX3QgcmVwb3J0LCBib29sIGlzTG9jYWwsIGRvdWJs
ZSB0aW1lc3RhbXApIE9WRVJSSURFOworICAgIC8vIERFUFJFQ0FURUQKICAgICB2aXJ0dWFsIHZv
aWQgYWRkU3RhdGlzdGljKHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2NhbCwgU3RyaW5nIG5hbWUs
IFN0cmluZyB2YWx1ZSkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CiAgICAgUlRDU3RhdHNSZXNwb25z
ZSgpOwogICAgIFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+ID4gbV9yZXN1bHQ7CisgICAg
SGFzaE1hcDxTdHJpbmcsIGludD4gbV9pZG1hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXNwb25zZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVzcG9uc2UuaWRsCmluZGV4IGFiY2QxOTgxMWE0YzRjOGU5MmNhNmE2N2ZmODkwZGI2ZWI0
NDUwNGEuLmY2ZThiYjk3MzQ0ZmM4YTdhNjE3NWVjMzNlYTEyYzg0NzQwZTRjZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3Bv
bnNlLmlkbApAQCAtMjMsNyArMjMsOSBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1NRURJ
QV9TVFJFQU0KKyAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgTmFtZWRHZXR0ZXIK
IF0gaW50ZXJmYWNlIFJUQ1N0YXRzUmVzcG9uc2UgewogICAgIHNlcXVlbmNlPFJUQ1N0YXRzUmVw
b3J0PiByZXN1bHQoKTsKKyAgICBSVENTdGF0c1JlcG9ydCBuYW1lZEl0ZW0oaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNwb25z
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0
YXRzUmVzcG9uc2UuY3BwCmluZGV4IGU2OWM3NTk1Yjk2MjJhNTAxNjQ4NzBkOWFhM2Q4YzczNDFj
YTU4NTkuLmZmZmIyNmQ0NTEwZjIzNmRjMGU1YzU4NmU2NjU5ZGNkYmY4NzE0MGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNS
ZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJSVENTdGF0c1Jlc3BvbnNlLmNwcApAQCAtNTUsNiArNTUsMTYgQEAgV2ViUlRDU3RhdHNS
ZXNwb25zZTo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1N0YXRzUmVzcG9u
c2VCYXNlPigpIGMKICAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOwogfQogCitzaXplX3QgV2Vi
UlRDU3RhdHNSZXNwb25zZTo6YWRkUmVwb3J0KFdlYlN0cmluZyBpZCwgV2ViU3RyaW5nIHR5cGUs
IGRvdWJsZSB0aW1lc3RhbXApCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YWRkUmVwb3J0KGlk
LCB0eXBlLCB0aW1lc3RhbXApOworfQorCit2b2lkIFdlYlJUQ1N0YXRzUmVzcG9uc2U6OmFkZFN0
YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKQor
eworICAgIG1fcHJpdmF0ZS0+YWRkU3RhdGlzdGljKHJlcG9ydCwgbmFtZSwgdmFsdWUpOworfQor
CiBzaXplX3QgV2ViUlRDU3RhdHNSZXNwb25zZTo6YWRkUmVwb3J0KCkKIHsKICAgICByZXR1cm4g
bV9wcml2YXRlLT5hZGRSZXBvcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2VCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlQmFzZS5oCmluZGV4IDkxY2JmYTY4
NjM4MzU5ODgzN2E2NTk1NWE1NGZhNjQ0MWFmNzA5OTEuLmM3ZmE2OGU3ZWU3ZDI4ODk0NTE4Y2E1
ODk5ZWY3OTVlNjI0YTI5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZUJhc2UuaApAQCAtMzcsOCArMzcsMTMg
QEAgY2xhc3MgUlRDU3RhdHNSZXNwb25zZUJhc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0
c1Jlc3BvbnNlQmFzZT4gewogcHVibGljOgogICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVzcG9uc2VC
YXNlKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHNpemVfdCBhZGRSZXBvcnQoU3RyaW5nIGlkLCBTdHJp
bmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRTdGF0
aXN0aWMoc2l6ZV90IHJlcG9ydCwgU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkgPSAwOworICAg
IC8vIERFUFJFQ0FURUQgLSB1c2UgYWRkUmVwb3J0KGlkLCB0eXBlLCB0aW1lc3RhbXApCiAgICAg
dmlydHVhbCBzaXplX3QgYWRkUmVwb3J0KCkgPSAwOworICAgIC8vIERFUFJFQ0FURUQgLSB1c2Ug
YWRkUmVwb3J0KGlkLCB0eXBlLCB0aW1lc3RhbXApCiAgICAgdmlydHVhbCB2b2lkIGFkZEVsZW1l
bnQoc2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBkb3VibGUgdGltZXN0YW1wKSA9IDA7Cisg
ICAgLy8gREVQUkVDQVRFRCAtIHVzZSBhZGRTdGF0aXN0aWMocmVwb3J0LCBuYW1lLCB2YWx1ZSkK
ICAgICB2aXJ0dWFsIHZvaWQgYWRkU3RhdGlzdGljKHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2Nh
bCwgU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEyM2E2MjgyNGEzZWRkODUzZGI3
MmI5MjdhMjdlNDhjMWI2ZjNiMTUuLjgwNjUyZjk2MzQ0NGJkMTRhMTBmZTIzYzhkZjJhMGE5ZDdi
Y2JkOGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0yMSAgSGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgSUQgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVj
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzMz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Ok1vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKToKKwogMjAxMy0wMi0xOSAgSGFqaW1lIE1vcnJpdGEg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRlZCBzcGVs
bGluZyBvZiBteSBuYW1lLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcAppbmRleCBjMDUzZDJkYzZmODg2YTdkMzY0ZTI4YmE4MGJm
NzQ5ZTRjM2E4ZmZiLi5hOWQwYjc1OTM4NGJjNWZiNWY3OWM1OTJhYmM3NWI3MDc0YTU1NDJkIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9N
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmNwcApAQCAtMjc1LDE5ICsyNzUsMTQgQEAgdm9pZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyOjpnZXRTdGF0cyhjb25zdCBXZWJSVENTdGF0c1JlcXVlc3QmIHJlcXVlc3QKICAg
ICBpZiAocmVxdWVzdC5oYXNTZWxlY3RvcigpKSB7CiAgICAgICAgIFdlYk1lZGlhU3RyZWFtIHN0
cmVhbSA9IHJlcXVlc3Quc3RyZWFtKCk7CiAgICAgICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBubyBj
aGVjayB0aGF0IHRoZSBmZXRjaGVkIHZhbHVlcyBhcmUgdmFsaWQuCi0gICAgICAgIHNpemVfdCBy
ZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgpOwotICAgICAgICByZXNwb25zZS5hZGRF
bGVtZW50KHJlcG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0ZSk7Ci0gICAgICAgIHJlc3BvbnNl
LmFkZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1ZSwgInR5cGUiLCAidmlkZW8iKTsKKyAgICAg
ICAgc2l6ZV90IHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCJNb2NrIHZpZGVvIiwg
InNzcmMiLCBjdXJyZW50RGF0ZSk7CisgICAgICAgIHJlc3BvbnNlLmFkZFN0YXRpc3RpYyhyZXBv
cnRJbmRleCwgInR5cGUiLCAidmlkZW8iKTsKICAgICB9IGVsc2UgewogICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG1fc3RyZWFtQ291bnQ7ICsraSkgewotICAgICAgICAgICAgc2l6ZV90IHJl
cG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCk7Ci0gICAgICAgICAgICByZXNwb25zZS5h
ZGRFbGVtZW50KHJlcG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0ZSk7Ci0gICAgICAgICAgICBy
ZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0eXBlIiwgImF1ZGlvIik7
Ci0gICAgICAgICAgICByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgpOwotICAgICAg
ICAgICAgcmVzcG9uc2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVudERhdGUp
OwotICAgICAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCB0cnVlLCAi
dHlwZSIsICJ2aWRlbyIpOwotICAgICAgICAgICAgLy8gV2UgYWRkIGFuIGVtcHR5IHJlbW90ZSBy
ZXBvcnQgZWxlbWVudC4KLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVwb3J0SW5k
ZXgsIGZhbHNlLCBjdXJyZW50RGF0ZSk7CisgICAgICAgICAgICBzaXplX3QgcmVwb3J0SW5kZXgg
PSByZXNwb25zZS5hZGRSZXBvcnQoIk1vY2sgYXVkaW8iLCAic3NyYyIsIGN1cnJlbnREYXRlKTsK
KyAgICAgICAgICAgIHJlc3BvbnNlLmFkZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgInR5cGUiLCAi
YXVkaW8iKTsKKyAgICAgICAgICAgIHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCJN
b2NrIHZpZGVvIiwgInNzcmMiLCBjdXJyZW50RGF0ZSk7CisgICAgICAgICAgICByZXNwb25zZS5h
ZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsICJ0eXBlIiwgInZpZGVvIik7CiAgICAgICAgIH0KICAg
ICB9CiAgICAgbV9pbnRlcmZhY2VzLT5kZWxlZ2F0ZSgpLT5wb3N0VGFzayhuZXcgUlRDU3RhdHNS
ZXF1ZXN0U3VjY2VlZGVkVGFzayh0aGlzLCByZXF1ZXN0LCByZXNwb25zZSkpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ4
ZDQ3ODFmODFjNzY1Y2FjMTQzYTI0MmIxM2M4ZDZjMWIwZDgzODkuLjA3NWI5ODA4MDY0Y2ZkMjZi
ZGZiNWMyZmNiODFlOTNlNTlkM2E2YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0y
MSAgSGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgSUQgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLXN0YXRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLXN0YXRzLmh0bWw6CisKIDIwMTMtMDItMTkgIFRha2FzaGkgVG95b3NoaW1h
ICA8dG95b3NoaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGdhcmRlbmlu
ZyBmb3IgY2hyb21pdW0uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0CmluZGV4IGE2
ZDc1MjI3ZTA0MThhMjgzZDBmN2ZiZTYwZjM3MzdhZmQ2OTYxNmUuLjZiZWM2ZTc1ZGE3YzQzOTc1
NzczNzg3MDhjZWRkMzYzMTEyNzQxOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQu
dHh0CkBAIC0xNyw2ICsxNywxMyBAQCBQQVNTIHRpbWVzdGFtcCBpcyA+PSBzdGFydFRpbWUKIFBB
U1MgbG9jYWwubmFtZXMoKS5sZW5ndGggaXMgPj0gMQogUEFTUyBsb2NhbC5uYW1lcygpLmluZGV4
T2YoInR5cGUiKSBpcyA+PSAwCiBQQVNTIGxvY2FsLnN0YXQoInR5cGUiKSBpcyAiYXVkaW8iCitQ
QVNTIHJlcy50aW1lc3RhbXAgaXMgPj0gc3RhcnRUaW1lCitQQVNTIHJlcy5pZCBpcyBub24tbnVs
bC4KK1BBU1MgcmVzLm5hbWVzKCkubGVuZ3RoIGlzID49IDEKK1BBU1MgcmVzLm5hbWVzKCkuaW5k
ZXhPZigidHlwZSIpIGlzID49IDAKK1BBU1MgcmVzLnN0YXQoInR5cGUiKSBpcyAiYXVkaW8iCitQ
QVNTIHN0YXR1c19nLm5hbWVkSXRlbShyZXMuaWQpIGlzIG5vbi1udWxsLgorUEFTUyBzdGF0dXNf
Z1tyZXMuaWRdIGlzIG5vbi1udWxsLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKaW5kZXggMjlkNTgxNDRiNWM5ZDcxZmRm
MWZlZjFjM2MxNzM3ZTVlMjYwZTFkMS4uNjIyOGVmYmE2MGFhNDAzZjg2YmIwYzUyYTdiNDZkZTVi
YzJmNGY4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1zdGF0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbApAQCAtNDcsMTQgKzQ3LDI3IEBAIGZ1bmN0aW9u
IGdvdFN0cmVhbShzKSB7CiBmdW5jdGlvbiBzdGF0c0hhbmRsZXIyKHN0YXR1cykKIHsKICAgICB0
ZXN0UGFzc2VkKCJzdGF0c0hhbmRsZXIyIHdhcyBjYWxsZWQiKTsKKyAgICAvLyBTdGF0dXMgbXVz
dCBiZSBhIGdsb2JhbCB2YXJpYWJsZSB0byBiZSB1c2VkIGluIHRlc3Qgc3RhdGVtZW50cy4KKyAg
ICBzdGF0dXNfZyA9IHN0YXR1czsKICAgICByZXN1bHQgPSBzdGF0dXMucmVzdWx0KCk7CiAgICAg
c2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3Jlc3VsdC5sZW5ndGgnLCAnMicpOworICAgIC8v
IFRoZSAibG9jYWwiIGludGVyZmFjZSBpcyBkZXByZWNhdGVkLiBLZWVwIHRlc3QgdW50aWwgaW50
ZXJmYWNlIGRlbGV0ZWQuCiAgICAgbG9jYWwgPSByZXN1bHRbMF0ubG9jYWw7CiAgICAgdGltZXN0
YW1wID0gbG9jYWwudGltZXN0YW1wOwogICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCd0
aW1lc3RhbXAnLCAnc3RhcnRUaW1lJyk7CiAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwo
J2xvY2FsLm5hbWVzKCkubGVuZ3RoJywgJzEnKTsKICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JF
cXVhbCgnbG9jYWwubmFtZXMoKS5pbmRleE9mKCJ0eXBlIiknLCAnMCcpOwogICAgIHNob3VsZEJl
KCdsb2NhbC5zdGF0KCJ0eXBlIiknLCAnImF1ZGlvIicpOworICAgIC8vIE5ld2VyIGludGVyZmFj
ZS4KKyAgICByZXMgPSByZXN1bHRbMF07CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwo
J3Jlcy50aW1lc3RhbXAnLCAnc3RhcnRUaW1lJyk7CisgICAgc2hvdWxkQmVOb25OdWxsKCdyZXMu
aWQnKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzLm5hbWVzKCkubGVuZ3Ro
JywgJzEnKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzLm5hbWVzKCkuaW5k
ZXhPZigidHlwZSIpJywgJzAnKTsKKyAgICBzaG91bGRCZSgncmVzLnN0YXQoInR5cGUiKScsICci
YXVkaW8iJyk7CisgICAgLy8gTmFtZWQgZ2V0dGVyOiBDYW4gYWNjZXNzIHJlc3VsdHMgYnkgdGhl
aXIgSUQgdmFsdWVzLgorICAgIHNob3VsZEJlTm9uTnVsbCgnc3RhdHVzX2cubmFtZWRJdGVtKHJl
cy5pZCknKTsKKyAgICBzaG91bGRCZU5vbk51bGwoJ3N0YXR1c19nW3Jlcy5pZF0nKTsKICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192210</attachid>
            <date>2013-03-08 06:00:22 -0800</date>
            <delta_ts>2013-03-08 06:24:19 -0800</delta_ts>
            <desc>This version of the patch should be ready. The previous ones were basically trybot probes.</desc>
            <filename>bug-110333-20130308145628.patch</filename>
            <type>text/plain</type>
            <size>29089</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNzc5YmFkYmFmZjAz
YWIxNjc2YjdiNjA5ODE1MDFmMzVjMjkyY2ZhLi43MDg0OWZjZDEyN2VkODlkMjQ2MmZkZjQyY2My
NWQyYjc5NTkwOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0wOCAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dGVkIG5ldyBBUEkgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMzMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0
YXRzUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXNwb25zZTo6V2Vi
UlRDU3RhdHNSZXNwb25zZSk6CisgICAgICAgIChXZWJSVENTdGF0c1Jlc3BvbnNlKToKKwogMjAx
My0wMi0yNiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIEVYVF9kcmF3
X2J1ZmZlcnMgbmVlZHMgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YWZkYmJhZWY1NTdm
YWUyZjQ2YzNjZmJlNGUwMTQyMzA0MWU4ZGM1Li4yNWRlMTk4NjQ1NmMxMmM4Y2ZkYzc3NTM3NTM0
NDEzMDgwYjMxMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDMtMDggIEhh
cmFsZCBBbHZlc3RyYW5kICA8aHRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnRl
ZCBuZXcgQVBJIGZvciBSVENTdGF0c1JlcG9ydCBvYmplY3QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBSZW1vdmVkIFJU
Q1N0YXRzRWxlbWVudCBvYmplY3QsIG1vdmVkIGl0cyBpbnRlcmZhY2UgdG8KKyAgICAgICAgUlRD
U3RhdHNSZXBvcnQuIFByZXNlcnZlZCBzb21lIGludGVyZmFjZXMgZm9yCisgICAgICAgIGJhY2t3
YXJkcyBjb21wYXRpYmlsaXR5OyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBsYXRlciBwYXRjaC4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0ZWQgYnkg
ZXh0ZW5zaW9ucyB0byBSVENQZWVyQ29ubmVjdGlvbi1zdGF0cyB0ZXN0LgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50Lmg6IFJlbW92ZWQuCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTdGF0c1JlcG9ydDo6UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6bmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNSZXBvcnQ6OmxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0
OjpyZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmFkZFN0YXRpc3Rp
Yyk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6YWRkRWxlbWVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oOgorICAgICAgICAoUlRD
U3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OnRpbWVzdGFt
cCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6aWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXBvcnQ6OnN0YXQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpu
YW1lZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1Jlc3BvbnNlOjphZGRSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25z
ZTo6YWRkU3RhdGlzdGljKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuaDoKKyAgICAgICAgKFJUQ1N0YXRzUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNw
b25zZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9y
dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3Bv
bnNlOjphZGRTdGF0aXN0aWMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3BvbnNl
OjphZGRFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlQmFzZS5oOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZUJhc2UpOgorCiAyMDEzLTAz
LTAyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMTQ0NTE3KTogSW5kZXhlZERCIGxheW91dCB0ZXN0IGZhaWx1cmVzIG9uIEdUSwpk
aWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1Jl
c3BvbnNlLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVz
cG9uc2UuaAppbmRleCBjYzZmMzhlODEyOWUwNDEzMGJiMTg2MmRiYjY3ODRjNTljNWZkMTFhLi5k
YzM2NDEyZTc0M2JkOTkwMjAzYmFiZWIyYTc2ZDQzMWM3MDUzNWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaAorKysgYi9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaApAQCAt
MzcsOCArMzcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUlRDU3RhdHNSZXNw
b25zZSB7CiBwdWJsaWM6Ci0gICAgV2ViUlRDU3RhdHNSZXNwb25zZSgpIHsgfQogICAgIFdlYlJU
Q1N0YXRzUmVzcG9uc2UoY29uc3QgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3RoZXIpIHsgYXNzaWdu
KG90aGVyKTsgfQorICAgIFdlYlJUQ1N0YXRzUmVzcG9uc2UoKSB7IH0KICAgICB+V2ViUlRDU3Rh
dHNSZXNwb25zZSgpIHsgcmVzZXQoKTsgfQogCiAgICAgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3Bl
cmF0b3I9KGNvbnN0IFdlYlJUQ1N0YXRzUmVzcG9uc2UmIG90aGVyKQpAQCAtNTEsOCArNTEsMTMg
QEAgcHVibGljOgogCiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAKKyAgICBXRUJL
SVRfRVhQT1JUIHNpemVfdCBhZGRSZXBvcnQoV2ViU3RyaW5nIGlkLCBXZWJTdHJpbmcgdHlwZSwg
ZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFkZFN0YXRpc3RpYyhz
aXplX3QgcmVwb3J0LCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKKyAgICAvLyBE
RVBSRUNBVEVECiAgICAgV0VCS0lUX0VYUE9SVCBzaXplX3QgYWRkUmVwb3J0KCk7CisgICAgLy8g
REVQUkVDQVRFRAogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRFbGVtZW50KHNpemVfdCByZXBv
cnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgLy8gREVQUkVDQVRFRAog
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgYm9vbCBp
c0xvY2FsLCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKIAogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
MjQxNjczYmU4NWUwMDczYzcyOTQ2ZDgwZmI4ZTVhYjc0NWFlZDk3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0KLSNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIKLQotI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmUHRy
PFJUQ1N0YXRzRWxlbWVudD4gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUoZG91YmxlIHRpbWVzdGFt
cCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRzRWxlbWVudCh0aW1lc3RhbXAp
KTsKLX0KLQotUlRDU3RhdHNFbGVtZW50OjpSVENTdGF0c0VsZW1lbnQoZG91YmxlIHRpbWVzdGFt
cCkKLSAgICA6IG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLXsKLX0KLQotU3RyaW5nIFJUQ1N0YXRz
RWxlbWVudDo6c3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
c3RhdHMuZ2V0KG5hbWUpOwotfQotCi1WZWN0b3I8U3RyaW5nPiBSVENTdGF0c0VsZW1lbnQ6Om5h
bWVzKCkgY29uc3QKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7Ci0gICAgZm9yIChIYXNo
TWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N0YXRzLmJlZ2luKCk7
Ci0gICAgICAgIGl0ICE9IG1fc3RhdHMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgcmVzdWx0LmFw
cGVuZChpdC0+a2V5KTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBSVENT
dGF0c0VsZW1lbnQ6OmFkZFN0YXRpc3RpYyhjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCi17Ci0gICAgbV9zdGF0cy5hZGQobmFtZSwgdmFsdWUpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyZDRhY2YwYmIyMTBlOGE5ZjEyODUwNDY0
OWQwZjY3ZGY4ZDk5NjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
UlRDU3RhdHNFbGVtZW50X2gKLSNkZWZpbmUgUlRDU3RhdHNFbGVtZW50X2gKLQotI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJUQ1N0YXRzRWxlbWVudCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFJUQ1N0YXRzRWxlbWVudD4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJU
Q1N0YXRzRWxlbWVudD4gY3JlYXRlKGRvdWJsZSB0aW1lc3RhbXApOwotICAgIGRvdWJsZSB0aW1l
c3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIFN0cmluZyBzdGF0KGNv
bnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7Ci0gICAgVmVjdG9yPFN0cmluZz4gbmFtZXMoKSBjb25z
dDsKLSAgICB2b2lkIGFkZFN0YXRpc3RpYyhjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFJUQ1N0YXRzRWxlbWVudChkb3Vi
bGUgdGltZXN0YW1wKTsKLQotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKLSAgICBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiBtX3N0YXRzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gUlRDU3RhdHNFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2JkNDMzMmM0NDRjZTMyOTdkYzE0NjFmMDgzNTU1ZDg2ZTIzYjBiNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKKysrIC9kZXYvbnVsbApA
QCAtMSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9TUVESUFf
U1RSRUFNLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKLV0gaW50ZXJmYWNlIFJUQ1N0
YXRzRWxlbWVudCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGUgdGltZXN0YW1wOwotICAg
IERPTVN0cmluZyBzdGF0KGluIERPTVN0cmluZyBuYW1lKTsKLSAgICBzZXF1ZW5jZTxET01TdHJp
bmc+IG5hbWVzKCk7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcAppbmRleCBhNTYxNmQ1OWU5ZmEwMmM4YzIzZTk4YmQ4
ZjU1NjhlNTNhYWE0NGMyLi5mZGMyMjRhZDliYzg1MzZhNzQ4MmQwMjY4YjUyMjkzNTdiMzIzYjM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVwb3J0LmNwcApAQCAtMjgsMzcgKzI4LDYxIEBACiAKICNpbmNsdWRlICJSVENTdGF0c1Jl
cG9ydC5oIgogCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRzUmVwb3J0Ojpj
cmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c1JlcG9ydCgiaW5uZXIgZmFrZSBJRCIsICJp
bm5lciBmYWtlIHR5cGUiLCAwKSk7CiB9CiAKLVJUQ1N0YXRzUmVwb3J0OjpSVENTdGF0c1JlcG9y
dCgpCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBSVENTdGF0c1JlcG9ydDo6Y3JlYXRlKFN0
cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApCiB7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBSVENTdGF0c1JlcG9ydChpZCwgdHlwZSwgdGltZXN0YW1wKSk7CiB9CiAKLXZv
aWQgUlRDU3RhdHNSZXBvcnQ6OmFkZEVsZW1lbnQoYm9vbCBpc0xvY2FsLCBkb3VibGUgdGltZXN0
YW1wKQorUlRDU3RhdHNSZXBvcnQ6OlJUQ1N0YXRzUmVwb3J0KFN0cmluZyBpZCwgU3RyaW5nIHR5
cGUsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgOiBtX2lkKGlkKQorICAgICwgbV90eXBlKHR5cGUp
CisgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCit7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFJU
Q1N0YXRzUmVwb3J0OjpuYW1lcygpIGNvbnN0CiB7Ci0gICAgaWYgKGlzTG9jYWwpIHsKLSAgICAg
ICAgQVNTRVJUKCFtX2xvY2FsKTsKLSAgICAgICAgbV9sb2NhbCA9IFJUQ1N0YXRzRWxlbWVudDo6
Y3JlYXRlKHRpbWVzdGFtcCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBWZWN0b3I8U3RyaW5nPiBy
ZXN1bHQ7CisgICAgZm9yIChIYXNoTWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX3N0YXRzLmJlZ2luKCk7IGl0ICE9IG1fc3RhdHMuZW5kKCk7ICsraXQpIHsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZChpdC0+a2V5KTsKICAgICB9Ci0gICAgQVNTRVJUKCFtX3JlbW90ZSk7
Ci0gICAgbV9yZW1vdGUgPSBSVENTdGF0c0VsZW1lbnQ6OmNyZWF0ZSh0aW1lc3RhbXApOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK2NvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJU
Q1N0YXRzUmVwb3J0Ojpsb2NhbCgpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9CisKK2NvbnN0IFBh
c3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRzUmVwb3J0OjpyZW1vdGUoKQoreworICAg
IHJldHVybiB0aGlzOworfQorCit2b2lkIFJUQ1N0YXRzUmVwb3J0OjphZGRTdGF0aXN0aWMoU3Ry
aW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkKK3sKKyAgICBtX3N0YXRzLmFkZChuYW1lLCB2YWx1ZSk7
Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXBvcnQ6OmFkZEVsZW1lbnQoYm9vbCBpc0xvY2FsLCBkb3Vi
bGUgdGltZXN0YW1wKQoreworICAgIC8vIFdlIGlnbm9yZSBpc0xvY2FsLgorICAgIG1fdGltZXN0
YW1wID0gdGltZXN0YW1wOwogfQogCiB2b2lkIFJUQ1N0YXRzUmVwb3J0OjphZGRTdGF0aXN0aWMo
Ym9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKQogewotICAgIGlmIChpc0xv
Y2FsKSB7Ci0gICAgICAgIEFTU0VSVChtX2xvY2FsKTsKLSAgICAgICAgbV9sb2NhbC0+YWRkU3Rh
dGlzdGljKG5hbWUsIHZhbHVlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQobV9yZW1v
dGUpOwotICAgICAgICBtX3JlbW90ZS0+YWRkU3RhdGlzdGljKG5hbWUsIHZhbHVlKTsKLSAgICB9
CisgICAgLy8gV2UgaWdub3JlIGlzTG9jYWwuCisgICAgYWRkU3RhdGlzdGljKG5hbWUsIHZhbHVl
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCmluZGV4IDNkMGNjY2Y1NTg0NGEy
MTQ4N2Q2NzI3MjgxMTMzNDhkMjhkYzhjNTkuLmNhZjc3ZDRhNmU2YjI2MjcyMDM2NGQwODA3ODI3
N2I4Njk3YTJjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVwb3J0LmgKQEAgLTI1LDcgKzI1LDcgQEAKICNpZm5kZWYgUlRDU3RhdHNS
ZXBvcnRfaAogI2RlZmluZSBSVENTdGF0c1JlcG9ydF9oCiAKLSNpbmNsdWRlICJSVENTdGF0c0Vs
ZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CkBAIC0zNSwxOSArMzUsMzMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSVENT
dGF0c1JlcG9ydCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVwb3J0PiB7CiBwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZShTdHJpbmcgaWQs
IFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZSgpOwogCi0gICAgY29uc3Qg
UGFzc1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IGxvY2FsKCkgY29uc3QgeyByZXR1cm4gbV9sb2Nh
bC5nZXQoKTsgfQotICAgIGNvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiByZW1vdGUo
KSBjb25zdCB7IHJldHVybiBtX3JlbW90ZS5nZXQoKTsgfQorICAgIGRvdWJsZSB0aW1lc3RhbXAo
KSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgIFN0cmluZyBpZCgpIHsgcmV0dXJu
IG1faWQ7IH0KKyAgICBTdHJpbmcgc3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIHsgcmV0dXJuIG1f
c3RhdHMuZ2V0KG5hbWUpOyB9CisgICAgVmVjdG9yPFN0cmluZz4gbmFtZXMoKSBjb25zdDsKIAor
ICAgIC8vIERFUFJFQ0FURUQKKyAgICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBs
b2NhbCgpOworICAgIC8vIERFUFJFQ0FURUQKKyAgICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRz
UmVwb3J0PiByZW1vdGUoKTsKKworICAgIHZvaWQgYWRkU3RhdGlzdGljKFN0cmluZyBuYW1lLCBT
dHJpbmcgdmFsdWUpOworICAgIC8vIERFUFJFQ0FURUQKICAgICB2b2lkIGFkZEVsZW1lbnQoYm9v
bCBpc0xvY2FsLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAgdm9p
ZCBhZGRTdGF0aXN0aWMoYm9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKTsK
IAogcHJpdmF0ZToKLSAgICBSVENTdGF0c1JlcG9ydCgpOworICAgIFJUQ1N0YXRzUmVwb3J0KFN0
cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApOwogCi0gICAgUmVmUHRyPFJU
Q1N0YXRzRWxlbWVudD4gbV9sb2NhbDsKLSAgICBSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBtX3Jl
bW90ZTsKKyAgICBTdHJpbmcgbV9pZDsKKyAgICBTdHJpbmcgbV90eXBlOworICAgIGRvdWJsZSBt
X3RpbWVzdGFtcDsKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3N0YXRzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAppbmRleCBmZTZmN2YzMTE1MjY5ODA4YmM4
MjI5OTc0NGJkMDg4NWZhZGNlZDA2Li4xZDZkN2IyNzZlNTMyYzcxZWExOWUwYTdhZDRhMGY1ZTNi
NGEwNTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVwb3J0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVwb3J0LmlkbApAQCAtMjYsNiArMjYsMTEgQEAKICAgICBDb25kaXRpb25hbD1N
RURJQV9TVFJFQU0sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQogXSBpbnRlcmZhY2Ug
UlRDU3RhdHNSZXBvcnQgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTdGF0c0VsZW1lbnQg
bG9jYWw7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0YXRzRWxlbWVudCByZW1vdGU7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGUgdGltZXN0YW1wOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgaWQ7CisgICAgRE9NU3RyaW5nIHN0YXQoaW4gRE9NU3RyaW5nIG5hbWUp
OworICAgIHNlcXVlbmNlPERPTVN0cmluZz4gbmFtZXMoKTsKKyAgICAvLyBERVBSRUNBVEVEIC0g
ZmFrZSBmb3Igb2xkIFJUQ1N0YXRzRWxlbWVudCBvYmplY3QuCisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFJUQ1N0YXRzUmVwb3J0IGxvY2FsOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTdGF0
c1JlcG9ydCByZW1vdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKaW5kZXggZTM3NWNiZWQwYjEzZDE1ZDAw
MWE1MTQzY2NmZjFhNjE4YjMwMDJjYy4uYmM4MTlmMWE4MzczNGNmOGMzM2JjMjBkZmRmMDVlMjcy
YTQ2YWVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJS
VENTdGF0c1Jlc3BvbnNlLmgiCiAKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRy
PFJUQ1N0YXRzUmVzcG9uc2U+IFJUQ1N0YXRzUmVzcG9uc2U6OmNyZWF0ZSgpCkBAIC0zOSwxMiAr
NDAsMzMgQEAgUlRDU3RhdHNSZXNwb25zZTo6UlRDU3RhdHNSZXNwb25zZSgpCiB7CiB9CiAKLXNp
emVfdCBSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQoKQorUGFzc1JlZlB0cjxSVENTdGF0c1Jl
cG9ydD4gUlRDU3RhdHNSZXNwb25zZTo6bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkKIHsKLSAgICBtX3Jlc3VsdC5hcHBlbmQoUlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSgpKTsKKyAg
ICBpZiAobV9pZG1hcC5maW5kKG5hbWUpICE9IG1faWRtYXAuZW5kKCkpCisgICAgICAgIHJldHVy
biBtX3Jlc3VsdFttX2lkbWFwLmdldChuYW1lKV07CisgICAgcmV0dXJuIDA7Cit9CisKK3NpemVf
dCBSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQoU3RyaW5nIGlkLCBTdHJpbmcgdHlwZSwgZG91
YmxlIHRpbWVzdGFtcCkKK3sKKyAgICBtX3Jlc3VsdC5hcHBlbmQoUlRDU3RhdHNSZXBvcnQ6OmNy
ZWF0ZShpZCwgdHlwZSwgdGltZXN0YW1wKSk7CisgICAgbV9pZG1hcC5hZGQoaWQsIG1fcmVzdWx0
LnNpemUoKSAtIDEpOwogICAgIHJldHVybiBtX3Jlc3VsdC5zaXplKCkgLSAxOwogfQogCit2b2lk
IFJUQ1N0YXRzUmVzcG9uc2U6OmFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBTdHJpbmcgbmFt
ZSwgU3RyaW5nIHZhbHVlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KHJlcG9ydCA+PSAwICYmIHJlcG9ydCA8IG1fcmVzdWx0LnNpemUoKSk7CisgICAgbV9yZXN1bHRb
cmVwb3J0XS0+YWRkU3RhdGlzdGljKG5hbWUsIHZhbHVlKTsKK30KKworLy8gREVQUkVDQVRFRAor
c2l6ZV90IFJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9ydCgpCit7CisgICAgU3RyaW5nIGZha2VJ
ZCA9IFN0cmluZzo6Zm9ybWF0KCJGYWtlIElEICVsdSIsIG1fcmVzdWx0LnNpemUoKSk7CisgICAg
cmV0dXJuIGFkZFJlcG9ydChmYWtlSWQsICJubyB0eXBlIiwgMCk7Cit9CisKIHZvaWQgUlRDU3Rh
dHNSZXNwb25zZTo6YWRkRWxlbWVudChzaXplX3QgcmVwb3J0LCBib29sIGlzTG9jYWwsIGRvdWJs
ZSB0aW1lc3RhbXApCiB7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVw
b3J0ID49IDAgJiYgcmVwb3J0IDwgbV9yZXN1bHQuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgKaW5kZXggZDFi
Y2NjMzdjNzI0ZDhlNWUyZjY3ODg4MDZiNDRmOTRiNDczNmJhYy4uNTY2OGE0ZTQyNzUzZGU5MDM3
ZGQwZmRkNDk4MDIwZmJkMGMxM2YwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNp
bmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiUlRDU3RhdHNSZXBvcnQuaCIK
ICNpbmNsdWRlICJSVENTdGF0c1Jlc3BvbnNlQmFzZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMTMgKzQ1LDIxIEBAIHB1YmxpYzoK
IAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+ID4mIHJlc3VsdCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9OwogCisgICAgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9y
dD4gbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSk7CisKKyAgICB2aXJ0dWFsIHNp
emVfdCBhZGRSZXBvcnQoU3RyaW5nIGlkLCBTdHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBT
dHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKSBPVkVSUklERTsKKyAgICAvLyBERVBSRUNBVEVECiAg
ICAgdmlydHVhbCBzaXplX3QgYWRkUmVwb3J0KCkgT1ZFUlJJREU7CisgICAgLy8gREVQUkVDQVRF
RAogICAgIHZpcnR1YWwgdm9pZCBhZGRFbGVtZW50KHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2Nh
bCwgZG91YmxlIHRpbWVzdGFtcCkgT1ZFUlJJREU7CisgICAgLy8gREVQUkVDQVRFRAogICAgIHZp
cnR1YWwgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBTdHJp
bmcgbmFtZSwgU3RyaW5nIHZhbHVlKSBPVkVSUklERTsKIAogcHJpdmF0ZToKICAgICBSVENTdGF0
c1Jlc3BvbnNlKCk7CiAgICAgVmVjdG9yPFJlZlB0cjxSVENTdGF0c1JlcG9ydD4gPiBtX3Jlc3Vs
dDsKKyAgICBIYXNoTWFwPFN0cmluZywgaW50PiBtX2lkbWFwOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKaW5kZXggYWJjZDE5ODExYTRjNGM4ZTkyY2E2YTY3ZmY4
OTBkYjZlYjQ0NTA0YS4uZjZlOGJiOTczNDRmYzhhN2E2MTc1ZWMzM2VhMTJjODQ3NDBlNGNmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVzcG9uc2UuaWRsCkBAIC0yMyw3ICsyMyw5IEBACiAgKi8KIAogWwotICAgIENvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTQorICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICBOYW1l
ZEdldHRlcgogXSBpbnRlcmZhY2UgUlRDU3RhdHNSZXNwb25zZSB7CiAgICAgc2VxdWVuY2U8UlRD
U3RhdHNSZXBvcnQ+IHJlc3VsdCgpOworICAgIFJUQ1N0YXRzUmVwb3J0IG5hbWVkSXRlbShpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDZkNWE1Yzk4MzYyNThjYmE0ZTExMjVkM2YwZWQ1MTIxNDgyZDUzNDcuLjI1
YTUxYjQ5MDBmNjI1MTYxZWUzZjk4NjAyZTlmMWU1NzY2YTEwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTE2NCw3ICsxNjQsNiBAQAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwnLAotICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMv
bmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwnLApAQCAtOTE0
LDggKzkxMyw2IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oJywKLSAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAnLAotICAg
ICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwJywKICAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgnLAogICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1Jl
c3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDU3RhdHNSZXNwb25zZS5jcHAKaW5kZXggZTY5Yzc1OTViOTYyMmE1MDE2NDg3MGQ5YWEzZDhj
NzM0MWNhNTg1OS4uZjA4MTA3MTU5ODE1ZjA2N2FjY2IyMTlkNjVhZGVjZmI4OTRjOGY4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENT
dGF0c1Jlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9z
dXBwb3J0L1dlYlJUQ1N0YXRzUmVzcG9uc2UuY3BwCkBAIC01NSwxOCArNTUsMzMgQEAgV2ViUlRD
U3RhdHNSZXNwb25zZTo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1N0YXRz
UmVzcG9uc2VCYXNlPigpIGMKICAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOwogfQogCitzaXpl
X3QgV2ViUlRDU3RhdHNSZXNwb25zZTo6YWRkUmVwb3J0KFdlYlN0cmluZyBpZCwgV2ViU3RyaW5n
IHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApCit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxs
KCkpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmFkZFJlcG9ydChpZCwgdHlwZSwgdGltZXN0YW1w
KTsKK30KKwordm9pZCBXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRTdGF0aXN0aWMoc2l6ZV90IHJl
cG9ydCwgV2ViU3RyaW5nIG5hbWUsIFdlYlN0cmluZyB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIW1f
cHJpdmF0ZS5pc051bGwoKSk7CisgICAgbV9wcml2YXRlLT5hZGRTdGF0aXN0aWMocmVwb3J0LCBu
YW1lLCB2YWx1ZSk7Cit9CisKIHNpemVfdCBXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQo
KQogeworICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKICAgICByZXR1cm4gbV9wcml2
YXRlLT5hZGRSZXBvcnQoKTsKIH0KIAogdm9pZCBXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRFbGVt
ZW50KHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCkKIHsKKyAg
ICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CiAgICAgbV9wcml2YXRlLT5hZGRFbGVtZW50
KHJlcG9ydCwgaXNMb2NhbCwgdGltZXN0YW1wKTsKIH0KIAogdm9pZCBXZWJSVENTdGF0c1Jlc3Bv
bnNlOjphZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBXZWJTdHJpbmcg
bmFtZSwgV2ViU3RyaW5nIHZhbHVlKQogeworICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgp
KTsKICAgICBtX3ByaXZhdGUtPmFkZFN0YXRpc3RpYyhyZXBvcnQsIGlzTG9jYWwsIG5hbWUsIHZh
bHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXNwb25zZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2VCYXNlLmgKaW5kZXggOTFjYmZhNjg2MzgzNTk4ODM3YTY1
OTU1YTU0ZmE2NDQxYWY3MDk5MS4uYzdmYTY4ZTdlZTdkMjg4OTQ1MThjYTU4OTllZjc5NWU2MjRh
Mjk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXNwb25zZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENTdGF0c1Jlc3BvbnNlQmFzZS5oCkBAIC0zNyw4ICszNywxMyBAQCBjbGFzcyBSVENT
dGF0c1Jlc3BvbnNlQmFzZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVzcG9uc2VCYXNl
PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UlRDU3RhdHNSZXNwb25zZUJhc2UoKSB7IH0KIAor
ICAgIHZpcnR1YWwgc2l6ZV90IGFkZFJlcG9ydChTdHJpbmcgaWQsIFN0cmluZyB0eXBlLCBkb3Vi
bGUgdGltZXN0YW1wKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFkZFN0YXRpc3RpYyhzaXplX3Qg
cmVwb3J0LCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKSA9IDA7CisgICAgLy8gREVQUkVDQVRF
RCAtIHVzZSBhZGRSZXBvcnQoaWQsIHR5cGUsIHRpbWVzdGFtcCkKICAgICB2aXJ0dWFsIHNpemVf
dCBhZGRSZXBvcnQoKSA9IDA7CisgICAgLy8gREVQUkVDQVRFRCAtIHVzZSBhZGRSZXBvcnQoaWQs
IHR5cGUsIHRpbWVzdGFtcCkKICAgICB2aXJ0dWFsIHZvaWQgYWRkRWxlbWVudChzaXplX3QgcmVw
b3J0LCBib29sIGlzTG9jYWwsIGRvdWJsZSB0aW1lc3RhbXApID0gMDsKKyAgICAvLyBERVBSRUNB
VEVEIC0gdXNlIGFkZFN0YXRpc3RpYyhyZXBvcnQsIG5hbWUsIHZhbHVlKQogICAgIHZpcnR1YWwg
dm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBTdHJpbmcgbmFt
ZSwgU3RyaW5nIHZhbHVlKSA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmY4ZDBmYTBkN2NlZGRkNjU5ODliYzJlNjRmYWYxZDBi
NGY0NzJjOC4uYzU1NzYzYjEzMmVlNDdiYzI2Zjg0NDliZWQwNWRlNTNiMGMzY2U0NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEzLTAzLTA4ICBIYXJhbGQgQWx2ZXN0cmFuZCAgPGh0YUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgSW1wbGVtZW50ZWQgbmV3IEFQSSBmb3IgUlRDU3RhdHNSZXBvcnQgb2JqZWN0Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzMzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Ok1vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXI6OmdldFN0YXRzKToKKwogMjAxMy0wMi0yNyAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nSGFzaGVyIGZ1bmN0aW9ucyByZXF1aXJlIGFs
aWdubWVudCB0aGF0IGNhbGwgc2l0ZXMgZG8gbm90IGFsbCBndWFyYW50ZWUKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKaW5kZXgg
YzA1M2QyZGM2Zjg4NmE3ZDM2NGUyOGJhODBiZjc0OWU0YzNhOGZmYi4uYTlkMGI3NTkzODRiYzVm
YjVmNzljNTkyYWJjNzViNzA3NGE1NTQyZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKQEAgLTI3NSwxOSArMjc1LDE0IEBA
IHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMoY29uc3QgV2Vi
UlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0CiAgICAgaWYgKHJlcXVlc3QuaGFzU2VsZWN0b3IoKSkg
ewogICAgICAgICBXZWJNZWRpYVN0cmVhbSBzdHJlYW0gPSByZXF1ZXN0LnN0cmVhbSgpOwogICAg
ICAgICAvLyBGSVhNRTogVGhlcmUgaXMgbm8gY2hlY2sgdGhhdCB0aGUgZmV0Y2hlZCB2YWx1ZXMg
YXJlIHZhbGlkLgotICAgICAgICBzaXplX3QgcmVwb3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBv
cnQoKTsKLSAgICAgICAgcmVzcG9uc2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3Vy
cmVudERhdGUpOwotICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRy
dWUsICJ0eXBlIiwgInZpZGVvIik7CisgICAgICAgIHNpemVfdCByZXBvcnRJbmRleCA9IHJlc3Bv
bnNlLmFkZFJlcG9ydCgiTW9jayB2aWRlbyIsICJzc3JjIiwgY3VycmVudERhdGUpOworICAgICAg
ICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsICJ0eXBlIiwgInZpZGVvIik7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3N0cmVhbUNvdW50OyAr
K2kpIHsKLSAgICAgICAgICAgIHNpemVfdCByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9y
dCgpOwotICAgICAgICAgICAgcmVzcG9uc2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwg
Y3VycmVudERhdGUpOwotICAgICAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydElu
ZGV4LCB0cnVlLCAidHlwZSIsICJhdWRpbyIpOwotICAgICAgICAgICAgcmVwb3J0SW5kZXggPSBy
ZXNwb25zZS5hZGRSZXBvcnQoKTsKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVw
b3J0SW5kZXgsIHRydWUsIGN1cnJlbnREYXRlKTsKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZFN0
YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1ZSwgInR5cGUiLCAidmlkZW8iKTsKLSAgICAgICAgICAg
IC8vIFdlIGFkZCBhbiBlbXB0eSByZW1vdGUgcmVwb3J0IGVsZW1lbnQuCi0gICAgICAgICAgICBy
ZXNwb25zZS5hZGRFbGVtZW50KHJlcG9ydEluZGV4LCBmYWxzZSwgY3VycmVudERhdGUpOworICAg
ICAgICAgICAgc2l6ZV90IHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCJNb2NrIGF1
ZGlvIiwgInNzcmMiLCBjdXJyZW50RGF0ZSk7CisgICAgICAgICAgICByZXNwb25zZS5hZGRTdGF0
aXN0aWMocmVwb3J0SW5kZXgsICJ0eXBlIiwgImF1ZGlvIik7CisgICAgICAgICAgICByZXBvcnRJ
bmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgiTW9jayB2aWRlbyIsICJzc3JjIiwgY3VycmVudERh
dGUpOworICAgICAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCAidHlw
ZSIsICJ2aWRlbyIpOwogICAgICAgICB9CiAgICAgfQogICAgIG1faW50ZXJmYWNlcy0+ZGVsZWdh
dGUoKS0+cG9zdFRhc2sobmV3IFJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2sodGhpcywgcmVx
dWVzdCwgcmVzcG9uc2UpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMzViZDNmNjAwY2E2NTk5NmFiYThlYTQyMmFkNmU5
OTRkMTRhYTJlLi4wYTIyNmNjNGIzZmM3NmU3YzBlNTY5NjNlNzY1NmU4MDcwNmVkNjAyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDMtMDggIEhhcmFsZCBBbHZlc3RyYW5kICA8aHRhQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnRlZCBuZXcgQVBJIGZvciBSVENTdGF0c1Jl
cG9ydCBvYmplY3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTAzMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMu
aHRtbDoKKwogMjAxMy0wMy0wMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE0NDUxNyk6IEluZGV4ZWREQiBsYXlvdXQgdGVzdCBm
YWlsdXJlcyBvbiBHVEsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQKaW5kZXggYTZk
NzUyMjdlMDQxOGEyODNkMGY3ZmJlNjBmMzczN2FmZDY5NjE2ZS4uNmJlYzZlNzVkYTdjNDM5NzU3
NzM3ODcwOGNlZGQzNjMxMTI3NDE5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50
eHQKQEAgLTE3LDYgKzE3LDEzIEBAIFBBU1MgdGltZXN0YW1wIGlzID49IHN0YXJ0VGltZQogUEFT
UyBsb2NhbC5uYW1lcygpLmxlbmd0aCBpcyA+PSAxCiBQQVNTIGxvY2FsLm5hbWVzKCkuaW5kZXhP
ZigidHlwZSIpIGlzID49IDAKIFBBU1MgbG9jYWwuc3RhdCgidHlwZSIpIGlzICJhdWRpbyIKK1BB
U1MgcmVzLnRpbWVzdGFtcCBpcyA+PSBzdGFydFRpbWUKK1BBU1MgcmVzLmlkIGlzIG5vbi1udWxs
LgorUEFTUyByZXMubmFtZXMoKS5sZW5ndGggaXMgPj0gMQorUEFTUyByZXMubmFtZXMoKS5pbmRl
eE9mKCJ0eXBlIikgaXMgPj0gMAorUEFTUyByZXMuc3RhdCgidHlwZSIpIGlzICJhdWRpbyIKK1BB
U1Mgc3RhdHVzX2cubmFtZWRJdGVtKHJlcy5pZCkgaXMgbm9uLW51bGwuCitQQVNTIHN0YXR1c19n
W3Jlcy5pZF0gaXMgbm9uLW51bGwuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbAppbmRleCAyOWQ1ODE0NGI1YzlkNzFmZGYx
ZmVmMWMzYzE3MzdlNWUyNjBlMWQxLi42MjI4ZWZiYTYwYWE0MDNmODZiYjBjNTJhN2I0NmRlNWJj
MmY0Zjg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLXN0YXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sCkBAIC00NywxNCArNDcsMjcgQEAgZnVuY3Rpb24g
Z290U3RyZWFtKHMpIHsKIGZ1bmN0aW9uIHN0YXRzSGFuZGxlcjIoc3RhdHVzKQogewogICAgIHRl
c3RQYXNzZWQoInN0YXRzSGFuZGxlcjIgd2FzIGNhbGxlZCIpOworICAgIC8vIFN0YXR1cyBtdXN0
IGJlIGEgZ2xvYmFsIHZhcmlhYmxlIHRvIGJlIHVzZWQgaW4gdGVzdCBzdGF0ZW1lbnRzLgorICAg
IHN0YXR1c19nID0gc3RhdHVzOwogICAgIHJlc3VsdCA9IHN0YXR1cy5yZXN1bHQoKTsKICAgICBz
aG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzdWx0Lmxlbmd0aCcsICcyJyk7CisgICAgLy8g
VGhlICJsb2NhbCIgaW50ZXJmYWNlIGlzIGRlcHJlY2F0ZWQuIEtlZXAgdGVzdCB1bnRpbCBpbnRl
cmZhY2UgZGVsZXRlZC4KICAgICBsb2NhbCA9IHJlc3VsdFswXS5sb2NhbDsKICAgICB0aW1lc3Rh
bXAgPSBsb2NhbC50aW1lc3RhbXA7CiAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3Rp
bWVzdGFtcCcsICdzdGFydFRpbWUnKTsKICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgn
bG9jYWwubmFtZXMoKS5sZW5ndGgnLCAnMScpOwogICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVx
dWFsKCdsb2NhbC5uYW1lcygpLmluZGV4T2YoInR5cGUiKScsICcwJyk7CiAgICAgc2hvdWxkQmUo
J2xvY2FsLnN0YXQoInR5cGUiKScsICciYXVkaW8iJyk7CisgICAgLy8gTmV3ZXIgaW50ZXJmYWNl
LgorICAgIHJlcyA9IHJlc3VsdFswXTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgn
cmVzLnRpbWVzdGFtcCcsICdzdGFydFRpbWUnKTsKKyAgICBzaG91bGRCZU5vbk51bGwoJ3Jlcy5p
ZCcpOworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdyZXMubmFtZXMoKS5sZW5ndGgn
LCAnMScpOworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdyZXMubmFtZXMoKS5pbmRl
eE9mKCJ0eXBlIiknLCAnMCcpOworICAgIHNob3VsZEJlKCdyZXMuc3RhdCgidHlwZSIpJywgJyJh
dWRpbyInKTsKKyAgICAvLyBOYW1lZCBnZXR0ZXI6IENhbiBhY2Nlc3MgcmVzdWx0cyBieSB0aGVp
ciBJRCB2YWx1ZXMuCisgICAgc2hvdWxkQmVOb25OdWxsKCdzdGF0dXNfZy5uYW1lZEl0ZW0ocmVz
LmlkKScpOworICAgIHNob3VsZEJlTm9uTnVsbCgnc3RhdHVzX2dbcmVzLmlkXScpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192212</attachid>
            <date>2013-03-08 06:24:25 -0800</date>
            <delta_ts>2013-03-08 06:52:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110333-20130308152031.patch</filename>
            <type>text/plain</type>
            <size>29105</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNzc5YmFkYmFmZjAz
YWIxNjc2YjdiNjA5ODE1MDFmMzVjMjkyY2ZhLi43MDg0OWZjZDEyN2VkODlkMjQ2MmZkZjQyY2My
NWQyYjc5NTkwOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0wOCAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dGVkIG5ldyBBUEkgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMzMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0
YXRzUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXNwb25zZTo6V2Vi
UlRDU3RhdHNSZXNwb25zZSk6CisgICAgICAgIChXZWJSVENTdGF0c1Jlc3BvbnNlKToKKwogMjAx
My0wMi0yNiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIEVYVF9kcmF3
X2J1ZmZlcnMgbmVlZHMgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YWZkYmJhZWY1NTdm
YWUyZjQ2YzNjZmJlNGUwMTQyMzA0MWU4ZGM1Li4yNWRlMTk4NjQ1NmMxMmM4Y2ZkYzc3NTM3NTM0
NDEzMDgwYjMxMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDMtMDggIEhh
cmFsZCBBbHZlc3RyYW5kICA8aHRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnRl
ZCBuZXcgQVBJIGZvciBSVENTdGF0c1JlcG9ydCBvYmplY3QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBSZW1vdmVkIFJU
Q1N0YXRzRWxlbWVudCBvYmplY3QsIG1vdmVkIGl0cyBpbnRlcmZhY2UgdG8KKyAgICAgICAgUlRD
U3RhdHNSZXBvcnQuIFByZXNlcnZlZCBzb21lIGludGVyZmFjZXMgZm9yCisgICAgICAgIGJhY2t3
YXJkcyBjb21wYXRpYmlsaXR5OyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBsYXRlciBwYXRjaC4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0ZWQgYnkg
ZXh0ZW5zaW9ucyB0byBSVENQZWVyQ29ubmVjdGlvbi1zdGF0cyB0ZXN0LgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50Lmg6IFJlbW92ZWQuCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTdGF0c1JlcG9ydDo6UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6bmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNSZXBvcnQ6OmxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0
OjpyZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmFkZFN0YXRpc3Rp
Yyk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6YWRkRWxlbWVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oOgorICAgICAgICAoUlRD
U3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OnRpbWVzdGFt
cCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6aWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXBvcnQ6OnN0YXQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpu
YW1lZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1Jlc3BvbnNlOjphZGRSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25z
ZTo6YWRkU3RhdGlzdGljKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuaDoKKyAgICAgICAgKFJUQ1N0YXRzUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNw
b25zZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9y
dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3Bv
bnNlOjphZGRTdGF0aXN0aWMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3BvbnNl
OjphZGRFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlQmFzZS5oOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZUJhc2UpOgorCiAyMDEzLTAz
LTAyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMTQ0NTE3KTogSW5kZXhlZERCIGxheW91dCB0ZXN0IGZhaWx1cmVzIG9uIEdUSwpk
aWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1Jl
c3BvbnNlLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVz
cG9uc2UuaAppbmRleCBjYzZmMzhlODEyOWUwNDEzMGJiMTg2MmRiYjY3ODRjNTljNWZkMTFhLi5k
YzM2NDEyZTc0M2JkOTkwMjAzYmFiZWIyYTc2ZDQzMWM3MDUzNWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaAorKysgYi9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaApAQCAt
MzcsOCArMzcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUlRDU3RhdHNSZXNw
b25zZSB7CiBwdWJsaWM6Ci0gICAgV2ViUlRDU3RhdHNSZXNwb25zZSgpIHsgfQogICAgIFdlYlJU
Q1N0YXRzUmVzcG9uc2UoY29uc3QgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3RoZXIpIHsgYXNzaWdu
KG90aGVyKTsgfQorICAgIFdlYlJUQ1N0YXRzUmVzcG9uc2UoKSB7IH0KICAgICB+V2ViUlRDU3Rh
dHNSZXNwb25zZSgpIHsgcmVzZXQoKTsgfQogCiAgICAgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3Bl
cmF0b3I9KGNvbnN0IFdlYlJUQ1N0YXRzUmVzcG9uc2UmIG90aGVyKQpAQCAtNTEsOCArNTEsMTMg
QEAgcHVibGljOgogCiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAKKyAgICBXRUJL
SVRfRVhQT1JUIHNpemVfdCBhZGRSZXBvcnQoV2ViU3RyaW5nIGlkLCBXZWJTdHJpbmcgdHlwZSwg
ZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFkZFN0YXRpc3RpYyhz
aXplX3QgcmVwb3J0LCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKKyAgICAvLyBE
RVBSRUNBVEVECiAgICAgV0VCS0lUX0VYUE9SVCBzaXplX3QgYWRkUmVwb3J0KCk7CisgICAgLy8g
REVQUkVDQVRFRAogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRFbGVtZW50KHNpemVfdCByZXBv
cnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgLy8gREVQUkVDQVRFRAog
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgYm9vbCBp
c0xvY2FsLCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKIAogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
MjQxNjczYmU4NWUwMDczYzcyOTQ2ZDgwZmI4ZTVhYjc0NWFlZDk3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0KLSNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIKLQotI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmUHRy
PFJUQ1N0YXRzRWxlbWVudD4gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUoZG91YmxlIHRpbWVzdGFt
cCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRzRWxlbWVudCh0aW1lc3RhbXAp
KTsKLX0KLQotUlRDU3RhdHNFbGVtZW50OjpSVENTdGF0c0VsZW1lbnQoZG91YmxlIHRpbWVzdGFt
cCkKLSAgICA6IG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLXsKLX0KLQotU3RyaW5nIFJUQ1N0YXRz
RWxlbWVudDo6c3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
c3RhdHMuZ2V0KG5hbWUpOwotfQotCi1WZWN0b3I8U3RyaW5nPiBSVENTdGF0c0VsZW1lbnQ6Om5h
bWVzKCkgY29uc3QKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7Ci0gICAgZm9yIChIYXNo
TWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N0YXRzLmJlZ2luKCk7
Ci0gICAgICAgIGl0ICE9IG1fc3RhdHMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgcmVzdWx0LmFw
cGVuZChpdC0+a2V5KTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBSVENT
dGF0c0VsZW1lbnQ6OmFkZFN0YXRpc3RpYyhjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCi17Ci0gICAgbV9zdGF0cy5hZGQobmFtZSwgdmFsdWUpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyZDRhY2YwYmIyMTBlOGE5ZjEyODUwNDY0
OWQwZjY3ZGY4ZDk5NjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
UlRDU3RhdHNFbGVtZW50X2gKLSNkZWZpbmUgUlRDU3RhdHNFbGVtZW50X2gKLQotI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJUQ1N0YXRzRWxlbWVudCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFJUQ1N0YXRzRWxlbWVudD4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJU
Q1N0YXRzRWxlbWVudD4gY3JlYXRlKGRvdWJsZSB0aW1lc3RhbXApOwotICAgIGRvdWJsZSB0aW1l
c3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIFN0cmluZyBzdGF0KGNv
bnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7Ci0gICAgVmVjdG9yPFN0cmluZz4gbmFtZXMoKSBjb25z
dDsKLSAgICB2b2lkIGFkZFN0YXRpc3RpYyhjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFJUQ1N0YXRzRWxlbWVudChkb3Vi
bGUgdGltZXN0YW1wKTsKLQotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKLSAgICBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiBtX3N0YXRzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gUlRDU3RhdHNFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2JkNDMzMmM0NDRjZTMyOTdkYzE0NjFmMDgzNTU1ZDg2ZTIzYjBiNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKKysrIC9kZXYvbnVsbApA
QCAtMSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9TUVESUFf
U1RSRUFNLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKLV0gaW50ZXJmYWNlIFJUQ1N0
YXRzRWxlbWVudCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGUgdGltZXN0YW1wOwotICAg
IERPTVN0cmluZyBzdGF0KGluIERPTVN0cmluZyBuYW1lKTsKLSAgICBzZXF1ZW5jZTxET01TdHJp
bmc+IG5hbWVzKCk7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcAppbmRleCBhNTYxNmQ1OWU5ZmEwMmM4YzIzZTk4YmQ4
ZjU1NjhlNTNhYWE0NGMyLi5mZGMyMjRhZDliYzg1MzZhNzQ4MmQwMjY4YjUyMjkzNTdiMzIzYjM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVwb3J0LmNwcApAQCAtMjgsMzcgKzI4LDYxIEBACiAKICNpbmNsdWRlICJSVENTdGF0c1Jl
cG9ydC5oIgogCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRzUmVwb3J0Ojpj
cmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c1JlcG9ydCgiaW5uZXIgZmFrZSBJRCIsICJp
bm5lciBmYWtlIHR5cGUiLCAwKSk7CiB9CiAKLVJUQ1N0YXRzUmVwb3J0OjpSVENTdGF0c1JlcG9y
dCgpCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBSVENTdGF0c1JlcG9ydDo6Y3JlYXRlKFN0
cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApCiB7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBSVENTdGF0c1JlcG9ydChpZCwgdHlwZSwgdGltZXN0YW1wKSk7CiB9CiAKLXZv
aWQgUlRDU3RhdHNSZXBvcnQ6OmFkZEVsZW1lbnQoYm9vbCBpc0xvY2FsLCBkb3VibGUgdGltZXN0
YW1wKQorUlRDU3RhdHNSZXBvcnQ6OlJUQ1N0YXRzUmVwb3J0KFN0cmluZyBpZCwgU3RyaW5nIHR5
cGUsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgOiBtX2lkKGlkKQorICAgICwgbV90eXBlKHR5cGUp
CisgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCit7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFJU
Q1N0YXRzUmVwb3J0OjpuYW1lcygpIGNvbnN0CiB7Ci0gICAgaWYgKGlzTG9jYWwpIHsKLSAgICAg
ICAgQVNTRVJUKCFtX2xvY2FsKTsKLSAgICAgICAgbV9sb2NhbCA9IFJUQ1N0YXRzRWxlbWVudDo6
Y3JlYXRlKHRpbWVzdGFtcCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBWZWN0b3I8U3RyaW5nPiBy
ZXN1bHQ7CisgICAgZm9yIChIYXNoTWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX3N0YXRzLmJlZ2luKCk7IGl0ICE9IG1fc3RhdHMuZW5kKCk7ICsraXQpIHsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZChpdC0+a2V5KTsKICAgICB9Ci0gICAgQVNTRVJUKCFtX3JlbW90ZSk7
Ci0gICAgbV9yZW1vdGUgPSBSVENTdGF0c0VsZW1lbnQ6OmNyZWF0ZSh0aW1lc3RhbXApOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK2NvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJU
Q1N0YXRzUmVwb3J0Ojpsb2NhbCgpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9CisKK2NvbnN0IFBh
c3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRzUmVwb3J0OjpyZW1vdGUoKQoreworICAg
IHJldHVybiB0aGlzOworfQorCit2b2lkIFJUQ1N0YXRzUmVwb3J0OjphZGRTdGF0aXN0aWMoU3Ry
aW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkKK3sKKyAgICBtX3N0YXRzLmFkZChuYW1lLCB2YWx1ZSk7
Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXBvcnQ6OmFkZEVsZW1lbnQoYm9vbCBpc0xvY2FsLCBkb3Vi
bGUgdGltZXN0YW1wKQoreworICAgIC8vIFdlIGlnbm9yZSBpc0xvY2FsLgorICAgIG1fdGltZXN0
YW1wID0gdGltZXN0YW1wOwogfQogCiB2b2lkIFJUQ1N0YXRzUmVwb3J0OjphZGRTdGF0aXN0aWMo
Ym9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKQogewotICAgIGlmIChpc0xv
Y2FsKSB7Ci0gICAgICAgIEFTU0VSVChtX2xvY2FsKTsKLSAgICAgICAgbV9sb2NhbC0+YWRkU3Rh
dGlzdGljKG5hbWUsIHZhbHVlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQobV9yZW1v
dGUpOwotICAgICAgICBtX3JlbW90ZS0+YWRkU3RhdGlzdGljKG5hbWUsIHZhbHVlKTsKLSAgICB9
CisgICAgLy8gV2UgaWdub3JlIGlzTG9jYWwuCisgICAgYWRkU3RhdGlzdGljKG5hbWUsIHZhbHVl
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCmluZGV4IDNkMGNjY2Y1NTg0NGEy
MTQ4N2Q2NzI3MjgxMTMzNDhkMjhkYzhjNTkuLmNhZjc3ZDRhNmU2YjI2MjcyMDM2NGQwODA3ODI3
N2I4Njk3YTJjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVwb3J0LmgKQEAgLTI1LDcgKzI1LDcgQEAKICNpZm5kZWYgUlRDU3RhdHNS
ZXBvcnRfaAogI2RlZmluZSBSVENTdGF0c1JlcG9ydF9oCiAKLSNpbmNsdWRlICJSVENTdGF0c0Vs
ZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CkBAIC0zNSwxOSArMzUsMzMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSVENT
dGF0c1JlcG9ydCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVwb3J0PiB7CiBwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZShTdHJpbmcgaWQs
IFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZSgpOwogCi0gICAgY29uc3Qg
UGFzc1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IGxvY2FsKCkgY29uc3QgeyByZXR1cm4gbV9sb2Nh
bC5nZXQoKTsgfQotICAgIGNvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiByZW1vdGUo
KSBjb25zdCB7IHJldHVybiBtX3JlbW90ZS5nZXQoKTsgfQorICAgIGRvdWJsZSB0aW1lc3RhbXAo
KSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgIFN0cmluZyBpZCgpIHsgcmV0dXJu
IG1faWQ7IH0KKyAgICBTdHJpbmcgc3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIHsgcmV0dXJuIG1f
c3RhdHMuZ2V0KG5hbWUpOyB9CisgICAgVmVjdG9yPFN0cmluZz4gbmFtZXMoKSBjb25zdDsKIAor
ICAgIC8vIERFUFJFQ0FURUQKKyAgICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBs
b2NhbCgpOworICAgIC8vIERFUFJFQ0FURUQKKyAgICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRz
UmVwb3J0PiByZW1vdGUoKTsKKworICAgIHZvaWQgYWRkU3RhdGlzdGljKFN0cmluZyBuYW1lLCBT
dHJpbmcgdmFsdWUpOworICAgIC8vIERFUFJFQ0FURUQKICAgICB2b2lkIGFkZEVsZW1lbnQoYm9v
bCBpc0xvY2FsLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAgdm9p
ZCBhZGRTdGF0aXN0aWMoYm9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKTsK
IAogcHJpdmF0ZToKLSAgICBSVENTdGF0c1JlcG9ydCgpOworICAgIFJUQ1N0YXRzUmVwb3J0KFN0
cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApOwogCi0gICAgUmVmUHRyPFJU
Q1N0YXRzRWxlbWVudD4gbV9sb2NhbDsKLSAgICBSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBtX3Jl
bW90ZTsKKyAgICBTdHJpbmcgbV9pZDsKKyAgICBTdHJpbmcgbV90eXBlOworICAgIGRvdWJsZSBt
X3RpbWVzdGFtcDsKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3N0YXRzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAppbmRleCBmZTZmN2YzMTE1MjY5ODA4YmM4
MjI5OTc0NGJkMDg4NWZhZGNlZDA2Li4xZDZkN2IyNzZlNTMyYzcxZWExOWUwYTdhZDRhMGY1ZTNi
NGEwNTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVwb3J0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVwb3J0LmlkbApAQCAtMjYsNiArMjYsMTEgQEAKICAgICBDb25kaXRpb25hbD1N
RURJQV9TVFJFQU0sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQogXSBpbnRlcmZhY2Ug
UlRDU3RhdHNSZXBvcnQgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTdGF0c0VsZW1lbnQg
bG9jYWw7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0YXRzRWxlbWVudCByZW1vdGU7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGUgdGltZXN0YW1wOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgaWQ7CisgICAgRE9NU3RyaW5nIHN0YXQoaW4gRE9NU3RyaW5nIG5hbWUp
OworICAgIHNlcXVlbmNlPERPTVN0cmluZz4gbmFtZXMoKTsKKyAgICAvLyBERVBSRUNBVEVEIC0g
ZmFrZSBmb3Igb2xkIFJUQ1N0YXRzRWxlbWVudCBvYmplY3QuCisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFJUQ1N0YXRzUmVwb3J0IGxvY2FsOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTdGF0
c1JlcG9ydCByZW1vdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKaW5kZXggZTM3NWNiZWQwYjEzZDE1ZDAw
MWE1MTQzY2NmZjFhNjE4YjMwMDJjYy4uMjU5ZmU4ODc5ZjdkNjE0MGVjZDIyNTVhM2I0NmVkNDBi
YTAzMmE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJS
VENTdGF0c1Jlc3BvbnNlLmgiCiAKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRy
PFJUQ1N0YXRzUmVzcG9uc2U+IFJUQ1N0YXRzUmVzcG9uc2U6OmNyZWF0ZSgpCkBAIC0zOSwxMiAr
NDAsMzMgQEAgUlRDU3RhdHNSZXNwb25zZTo6UlRDU3RhdHNSZXNwb25zZSgpCiB7CiB9CiAKLXNp
emVfdCBSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQoKQorUGFzc1JlZlB0cjxSVENTdGF0c1Jl
cG9ydD4gUlRDU3RhdHNSZXNwb25zZTo6bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkKIHsKLSAgICBtX3Jlc3VsdC5hcHBlbmQoUlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSgpKTsKKyAg
ICBpZiAobV9pZG1hcC5maW5kKG5hbWUpICE9IG1faWRtYXAuZW5kKCkpCisgICAgICAgIHJldHVy
biBtX3Jlc3VsdFttX2lkbWFwLmdldChuYW1lKV07CisgICAgcmV0dXJuIDA7Cit9CisKK3NpemVf
dCBSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQoU3RyaW5nIGlkLCBTdHJpbmcgdHlwZSwgZG91
YmxlIHRpbWVzdGFtcCkKK3sKKyAgICBtX3Jlc3VsdC5hcHBlbmQoUlRDU3RhdHNSZXBvcnQ6OmNy
ZWF0ZShpZCwgdHlwZSwgdGltZXN0YW1wKSk7CisgICAgbV9pZG1hcC5hZGQoaWQsIG1fcmVzdWx0
LnNpemUoKSAtIDEpOwogICAgIHJldHVybiBtX3Jlc3VsdC5zaXplKCkgLSAxOwogfQogCit2b2lk
IFJUQ1N0YXRzUmVzcG9uc2U6OmFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBTdHJpbmcgbmFt
ZSwgU3RyaW5nIHZhbHVlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KHJlcG9ydCA+PSAwICYmIHJlcG9ydCA8IG1fcmVzdWx0LnNpemUoKSk7CisgICAgbV9yZXN1bHRb
cmVwb3J0XS0+YWRkU3RhdGlzdGljKG5hbWUsIHZhbHVlKTsKK30KKworLy8gREVQUkVDQVRFRAor
c2l6ZV90IFJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9ydCgpCit7CisgICAgU3RyaW5nIGZha2VJ
ZCA9IFN0cmluZzo6Zm9ybWF0KCJGYWtlIElEICVsdSIsICh1bnNpZ25lZCBsb25nKSBtX3Jlc3Vs
dC5zaXplKCkpOworICAgIHJldHVybiBhZGRSZXBvcnQoZmFrZUlkLCAibm8gdHlwZSIsIDApOwor
fQorCiB2b2lkIFJUQ1N0YXRzUmVzcG9uc2U6OmFkZEVsZW1lbnQoc2l6ZV90IHJlcG9ydCwgYm9v
bCBpc0xvY2FsLCBkb3VibGUgdGltZXN0YW1wKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKHJlcG9ydCA+PSAwICYmIHJlcG9ydCA8IG1fcmVzdWx0LnNpemUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVz
cG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNw
b25zZS5oCmluZGV4IGQxYmNjYzM3YzcyNGQ4ZTVlMmY2Nzg4ODA2YjQ0Zjk0YjQ3MzZiYWMuLjU2
NjhhNGU0Mjc1M2RlOTAzN2RkMGZkZDQ5ODAyMGZiZDBjMTNmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIlJU
Q1N0YXRzUmVwb3J0LmgiCiAjaW5jbHVkZSAiUlRDU3RhdHNSZXNwb25zZUJhc2UuaCIKKyNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0LDEzICs0
NSwyMSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzUmVwb3J0
PiA+JiByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdDsgfTsKIAorICAgIFBhc3NSZWZQ
dHI8UlRDU3RhdHNSZXBvcnQ+IG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpOwor
CisgICAgdmlydHVhbCBzaXplX3QgYWRkUmVwb3J0KFN0cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRv
dWJsZSB0aW1lc3RhbXApIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGRTdGF0aXN0aWMo
c2l6ZV90IHJlcG9ydCwgU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkgT1ZFUlJJREU7CisgICAg
Ly8gREVQUkVDQVRFRAogICAgIHZpcnR1YWwgc2l6ZV90IGFkZFJlcG9ydCgpIE9WRVJSSURFOwor
ICAgIC8vIERFUFJFQ0FURUQKICAgICB2aXJ0dWFsIHZvaWQgYWRkRWxlbWVudChzaXplX3QgcmVw
b3J0LCBib29sIGlzTG9jYWwsIGRvdWJsZSB0aW1lc3RhbXApIE9WRVJSSURFOworICAgIC8vIERF
UFJFQ0FURUQKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3RhdGlzdGljKHNpemVfdCByZXBvcnQsIGJv
b2wgaXNMb2NhbCwgU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkgT1ZFUlJJREU7CiAKIHByaXZh
dGU6CiAgICAgUlRDU3RhdHNSZXNwb25zZSgpOwogICAgIFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNS
ZXBvcnQ+ID4gbV9yZXN1bHQ7CisgICAgSGFzaE1hcDxTdHJpbmcsIGludD4gbV9pZG1hcDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsCmluZGV4IGFiY2QxOTgxMWE0
YzRjOGU5MmNhNmE2N2ZmODkwZGI2ZWI0NDUwNGEuLmY2ZThiYjk3MzQ0ZmM4YTdhNjE3NWVjMzNl
YTEyYzg0NzQwZTRjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbApAQCAtMjMsNyArMjMsOSBAQAogICovCiAK
IFsKLSAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0KKyAgICBDb25kaXRpb25hbD1NRURJQV9T
VFJFQU0sCisgICAgTmFtZWRHZXR0ZXIKIF0gaW50ZXJmYWNlIFJUQ1N0YXRzUmVzcG9uc2Ugewog
ICAgIHNlcXVlbmNlPFJUQ1N0YXRzUmVwb3J0PiByZXN1bHQoKTsKKyAgICBSVENTdGF0c1JlcG9y
dCBuYW1lZEl0ZW0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5h
bWUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA2ZDVhNWM5ODM2MjU4Y2JhNGUxMTI1ZDNmMGVk
NTEyMTQ4MmQ1MzQ3Li4yNWE1MWI0OTAwZjYyNTE2MWVlM2Y5ODYwMmU5ZjFlNTc2NmExMDA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0xNjQsNyArMTY0LDYgQEAKICAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsJywKICAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRsJywKLSAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwnLAogICAg
ICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsJywKICAgICAg
ICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsJywKICAgICAg
ICAgICAgICdNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRp
bHMuaWRsJywKQEAgLTkxNCw4ICs5MTMsNiBAQAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwuaCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0Vs
ZW1lbnQuY3BwJywKLSAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxl
bWVudC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0
LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5o
JywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViUlRDU3RhdHNSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVzcG9uc2UuY3BwCmluZGV4IGU2OWM3NTk1Yjk2MjJh
NTAxNjQ4NzBkOWFhM2Q4YzczNDFjYTU4NTkuLmYwODEwNzE1OTgxNWYwNjdhY2NiMjE5ZDY1YWRl
Y2ZiODk0YzhmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1Jlc3BvbnNlLmNwcApAQCAtNTUsMTgg
KzU1LDMzIEBAIFdlYlJUQ1N0YXRzUmVzcG9uc2U6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlQmFzZT4oKSBjCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS5n
ZXQoKTsKIH0KIAorc2l6ZV90IFdlYlJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9ydChXZWJTdHJp
bmcgaWQsIFdlYlN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQoreworICAgIEFTU0VSVCgh
bV9wcml2YXRlLmlzTnVsbCgpKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5hZGRSZXBvcnQoaWQs
IHR5cGUsIHRpbWVzdGFtcCk7Cit9CisKK3ZvaWQgV2ViUlRDU3RhdHNSZXNwb25zZTo6YWRkU3Rh
dGlzdGljKHNpemVfdCByZXBvcnQsIFdlYlN0cmluZyBuYW1lLCBXZWJTdHJpbmcgdmFsdWUpCit7
CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIG1fcHJpdmF0ZS0+YWRkU3Rh
dGlzdGljKHJlcG9ydCwgbmFtZSwgdmFsdWUpOworfQorCiBzaXplX3QgV2ViUlRDU3RhdHNSZXNw
b25zZTo6YWRkUmVwb3J0KCkKIHsKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CiAg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+YWRkUmVwb3J0KCk7CiB9CiAKIHZvaWQgV2ViUlRDU3RhdHNS
ZXNwb25zZTo6YWRkRWxlbWVudChzaXplX3QgcmVwb3J0LCBib29sIGlzTG9jYWwsIGRvdWJsZSB0
aW1lc3RhbXApCiB7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwogICAgIG1fcHJp
dmF0ZS0+YWRkRWxlbWVudChyZXBvcnQsIGlzTG9jYWwsIHRpbWVzdGFtcCk7CiB9CiAKIHZvaWQg
V2ViUlRDU3RhdHNSZXNwb25zZTo6YWRkU3RhdGlzdGljKHNpemVfdCByZXBvcnQsIGJvb2wgaXNM
b2NhbCwgV2ViU3RyaW5nIG5hbWUsIFdlYlN0cmluZyB2YWx1ZSkKIHsKKyAgICBBU1NFUlQoIW1f
cHJpdmF0ZS5pc051bGwoKSk7CiAgICAgbV9wcml2YXRlLT5hZGRTdGF0aXN0aWMocmVwb3J0LCBp
c0xvY2FsLCBuYW1lLCB2YWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2VCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlQmFzZS5oCmluZGV4IDkxY2Jm
YTY4NjM4MzU5ODgzN2E2NTk1NWE1NGZhNjQ0MWFmNzA5OTEuLmM3ZmE2OGU3ZWU3ZDI4ODk0NTE4
Y2E1ODk5ZWY3OTVlNjI0YTI5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZUJhc2UuaApAQCAtMzcsOCArMzcs
MTMgQEAgY2xhc3MgUlRDU3RhdHNSZXNwb25zZUJhc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENT
dGF0c1Jlc3BvbnNlQmFzZT4gewogcHVibGljOgogICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVzcG9u
c2VCYXNlKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHNpemVfdCBhZGRSZXBvcnQoU3RyaW5nIGlkLCBT
dHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRT
dGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkgPSAwOwor
ICAgIC8vIERFUFJFQ0FURUQgLSB1c2UgYWRkUmVwb3J0KGlkLCB0eXBlLCB0aW1lc3RhbXApCiAg
ICAgdmlydHVhbCBzaXplX3QgYWRkUmVwb3J0KCkgPSAwOworICAgIC8vIERFUFJFQ0FURUQgLSB1
c2UgYWRkUmVwb3J0KGlkLCB0eXBlLCB0aW1lc3RhbXApCiAgICAgdmlydHVhbCB2b2lkIGFkZEVs
ZW1lbnQoc2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBkb3VibGUgdGltZXN0YW1wKSA9IDA7
CisgICAgLy8gREVQUkVDQVRFRCAtIHVzZSBhZGRTdGF0aXN0aWMocmVwb3J0LCBuYW1lLCB2YWx1
ZSkKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3RhdGlzdGljKHNpemVfdCByZXBvcnQsIGJvb2wgaXNM
b2NhbCwgU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZmOGQwZmEwZDdjZWRkZDY1
OTg5YmMyZTY0ZmFmMWQwYjRmNDcyYzguLmM1NTc2M2IxMzJlZTQ3YmMyNmY4NDQ5YmVkMDVkZTUz
YjBjM2NlNDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMy0wOCAgSGFyYWxkIEFsdmVzdHJhbmQgIDxodGFA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudGVkIG5ldyBBUEkgZm9yIFJUQ1N0YXRz
UmVwb3J0IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExMDMzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpNb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpnZXRTdGF0cyk6CisKIDIwMTMtMDItMjcgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmluZ0hhc2hlciBmdW5j
dGlvbnMgcmVxdWlyZSBhbGlnbm1lbnQgdGhhdCBjYWxsIHNpdGVzIGRvIG5vdCBhbGwgZ3VhcmFu
dGVlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuY3BwCmluZGV4IGMwNTNkMmRjNmY4ODZhN2QzNjRlMjhiYTgwYmY3NDllNGMzYThmZmIu
LmE5ZDBiNzU5Mzg0YmM1ZmI1Zjc5YzU5MmFiYzc1YjcwNzRhNTU0MmQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0y
NzUsMTkgKzI3NSwxNCBAQCB2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6Omdl
dFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYgcmVxdWVzdAogICAgIGlmIChyZXF1ZXN0
Lmhhc1NlbGVjdG9yKCkpIHsKICAgICAgICAgV2ViTWVkaWFTdHJlYW0gc3RyZWFtID0gcmVxdWVz
dC5zdHJlYW0oKTsKICAgICAgICAgLy8gRklYTUU6IFRoZXJlIGlzIG5vIGNoZWNrIHRoYXQgdGhl
IGZldGNoZWQgdmFsdWVzIGFyZSB2YWxpZC4KLSAgICAgICAgc2l6ZV90IHJlcG9ydEluZGV4ID0g
cmVzcG9uc2UuYWRkUmVwb3J0KCk7Ci0gICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVwb3J0
SW5kZXgsIHRydWUsIGN1cnJlbnREYXRlKTsKLSAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGlj
KHJlcG9ydEluZGV4LCB0cnVlLCAidHlwZSIsICJ2aWRlbyIpOworICAgICAgICBzaXplX3QgcmVw
b3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQoIk1vY2sgdmlkZW8iLCAic3NyYyIsIGN1cnJl
bnREYXRlKTsKKyAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCAidHlw
ZSIsICJ2aWRlbyIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bV9zdHJlYW1Db3VudDsgKytpKSB7Ci0gICAgICAgICAgICBzaXplX3QgcmVwb3J0SW5kZXggPSBy
ZXNwb25zZS5hZGRSZXBvcnQoKTsKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVw
b3J0SW5kZXgsIHRydWUsIGN1cnJlbnREYXRlKTsKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZFN0
YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1ZSwgInR5cGUiLCAiYXVkaW8iKTsKLSAgICAgICAgICAg
IHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCk7Ci0gICAgICAgICAgICByZXNwb25z
ZS5hZGRFbGVtZW50KHJlcG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0ZSk7Ci0gICAgICAgICAg
ICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0eXBlIiwgInZpZGVv
Iik7Ci0gICAgICAgICAgICAvLyBXZSBhZGQgYW4gZW1wdHkgcmVtb3RlIHJlcG9ydCBlbGVtZW50
LgotICAgICAgICAgICAgcmVzcG9uc2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgZmFsc2UsIGN1
cnJlbnREYXRlKTsKKyAgICAgICAgICAgIHNpemVfdCByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFk
ZFJlcG9ydCgiTW9jayBhdWRpbyIsICJzc3JjIiwgY3VycmVudERhdGUpOworICAgICAgICAgICAg
cmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCAidHlwZSIsICJhdWRpbyIpOworICAg
ICAgICAgICAgcmVwb3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQoIk1vY2sgdmlkZW8iLCAi
c3NyYyIsIGN1cnJlbnREYXRlKTsKKyAgICAgICAgICAgIHJlc3BvbnNlLmFkZFN0YXRpc3RpYyhy
ZXBvcnRJbmRleCwgInR5cGUiLCAidmlkZW8iKTsKICAgICAgICAgfQogICAgIH0KICAgICBtX2lu
dGVyZmFjZXMtPmRlbGVnYXRlKCktPnBvc3RUYXNrKG5ldyBSVENTdGF0c1JlcXVlc3RTdWNjZWVk
ZWRUYXNrKHRoaXMsIHJlcXVlc3QsIHJlc3BvbnNlKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTM1YmQzZjYwMGNhNjU5
OTZhYmE4ZWE0MjJhZDZlOTk0ZDE0YWEyZS4uMGEyMjZjYzRiM2ZjNzZlN2MwZTU2OTYzZTc2NTZl
ODA3MDZlZDYwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAzLTA4ICBIYXJhbGQgQWx2
ZXN0cmFuZCAgPGh0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50ZWQgbmV3IEFQ
SSBmb3IgUlRDU3RhdHNSZXBvcnQgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LXN0YXRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLXN0YXRzLmh0bWw6CisKIDIwMTMtMDMtMDIgIFphbiBEb2JlcnNlayAgPHpkb2Jl
cnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxNDQ1MTcpOiBJbmRleGVk
REIgbGF5b3V0IHRlc3QgZmFpbHVyZXMgb24gR1RLCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0
ZWQudHh0CmluZGV4IGE2ZDc1MjI3ZTA0MThhMjgzZDBmN2ZiZTYwZjM3MzdhZmQ2OTYxNmUuLjZi
ZWM2ZTc1ZGE3YzQzOTc1NzczNzg3MDhjZWRkMzYzMTEyNzQxOTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
c3RhdHMtZXhwZWN0ZWQudHh0CkBAIC0xNyw2ICsxNywxMyBAQCBQQVNTIHRpbWVzdGFtcCBpcyA+
PSBzdGFydFRpbWUKIFBBU1MgbG9jYWwubmFtZXMoKS5sZW5ndGggaXMgPj0gMQogUEFTUyBsb2Nh
bC5uYW1lcygpLmluZGV4T2YoInR5cGUiKSBpcyA+PSAwCiBQQVNTIGxvY2FsLnN0YXQoInR5cGUi
KSBpcyAiYXVkaW8iCitQQVNTIHJlcy50aW1lc3RhbXAgaXMgPj0gc3RhcnRUaW1lCitQQVNTIHJl
cy5pZCBpcyBub24tbnVsbC4KK1BBU1MgcmVzLm5hbWVzKCkubGVuZ3RoIGlzID49IDEKK1BBU1Mg
cmVzLm5hbWVzKCkuaW5kZXhPZigidHlwZSIpIGlzID49IDAKK1BBU1MgcmVzLnN0YXQoInR5cGUi
KSBpcyAiYXVkaW8iCitQQVNTIHN0YXR1c19nLm5hbWVkSXRlbShyZXMuaWQpIGlzIG5vbi1udWxs
LgorUEFTUyBzdGF0dXNfZ1tyZXMuaWRdIGlzIG5vbi1udWxsLgogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKaW5kZXggMjlk
NTgxNDRiNWM5ZDcxZmRmMWZlZjFjM2MxNzM3ZTVlMjYwZTFkMS4uNjIyOGVmYmE2MGFhNDAzZjg2
YmIwYzUyYTdiNDZkZTViYzJmNGY4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbApAQCAtNDcsMTQgKzQ3
LDI3IEBAIGZ1bmN0aW9uIGdvdFN0cmVhbShzKSB7CiBmdW5jdGlvbiBzdGF0c0hhbmRsZXIyKHN0
YXR1cykKIHsKICAgICB0ZXN0UGFzc2VkKCJzdGF0c0hhbmRsZXIyIHdhcyBjYWxsZWQiKTsKKyAg
ICAvLyBTdGF0dXMgbXVzdCBiZSBhIGdsb2JhbCB2YXJpYWJsZSB0byBiZSB1c2VkIGluIHRlc3Qg
c3RhdGVtZW50cy4KKyAgICBzdGF0dXNfZyA9IHN0YXR1czsKICAgICByZXN1bHQgPSBzdGF0dXMu
cmVzdWx0KCk7CiAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3Jlc3VsdC5sZW5ndGgn
LCAnMicpOworICAgIC8vIFRoZSAibG9jYWwiIGludGVyZmFjZSBpcyBkZXByZWNhdGVkLiBLZWVw
IHRlc3QgdW50aWwgaW50ZXJmYWNlIGRlbGV0ZWQuCiAgICAgbG9jYWwgPSByZXN1bHRbMF0ubG9j
YWw7CiAgICAgdGltZXN0YW1wID0gbG9jYWwudGltZXN0YW1wOwogICAgIHNob3VsZEJlR3JlYXRl
clRoYW5PckVxdWFsKCd0aW1lc3RhbXAnLCAnc3RhcnRUaW1lJyk7CiAgICAgc2hvdWxkQmVHcmVh
dGVyVGhhbk9yRXF1YWwoJ2xvY2FsLm5hbWVzKCkubGVuZ3RoJywgJzEnKTsKICAgICBzaG91bGRC
ZUdyZWF0ZXJUaGFuT3JFcXVhbCgnbG9jYWwubmFtZXMoKS5pbmRleE9mKCJ0eXBlIiknLCAnMCcp
OwogICAgIHNob3VsZEJlKCdsb2NhbC5zdGF0KCJ0eXBlIiknLCAnImF1ZGlvIicpOworICAgIC8v
IE5ld2VyIGludGVyZmFjZS4KKyAgICByZXMgPSByZXN1bHRbMF07CisgICAgc2hvdWxkQmVHcmVh
dGVyVGhhbk9yRXF1YWwoJ3Jlcy50aW1lc3RhbXAnLCAnc3RhcnRUaW1lJyk7CisgICAgc2hvdWxk
QmVOb25OdWxsKCdyZXMuaWQnKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVz
Lm5hbWVzKCkubGVuZ3RoJywgJzEnKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgn
cmVzLm5hbWVzKCkuaW5kZXhPZigidHlwZSIpJywgJzAnKTsKKyAgICBzaG91bGRCZSgncmVzLnN0
YXQoInR5cGUiKScsICciYXVkaW8iJyk7CisgICAgLy8gTmFtZWQgZ2V0dGVyOiBDYW4gYWNjZXNz
IHJlc3VsdHMgYnkgdGhlaXIgSUQgdmFsdWVzLgorICAgIHNob3VsZEJlTm9uTnVsbCgnc3RhdHVz
X2cubmFtZWRJdGVtKHJlcy5pZCknKTsKKyAgICBzaG91bGRCZU5vbk51bGwoJ3N0YXR1c19nW3Jl
cy5pZF0nKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192218</attachid>
            <date>2013-03-08 06:52:36 -0800</date>
            <delta_ts>2013-03-08 07:18:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110333-20130308154842.patch</filename>
            <type>text/plain</type>
            <size>30832</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNzc5YmFkYmFmZjAz
YWIxNjc2YjdiNjA5ODE1MDFmMzVjMjkyY2ZhLi43MDg0OWZjZDEyN2VkODlkMjQ2MmZkZjQyY2My
NWQyYjc5NTkwOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0wOCAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dGVkIG5ldyBBUEkgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMzMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0
YXRzUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXNwb25zZTo6V2Vi
UlRDU3RhdHNSZXNwb25zZSk6CisgICAgICAgIChXZWJSVENTdGF0c1Jlc3BvbnNlKToKKwogMjAx
My0wMi0yNiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIEVYVF9kcmF3
X2J1ZmZlcnMgbmVlZHMgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YWZkYmJhZWY1NTdm
YWUyZjQ2YzNjZmJlNGUwMTQyMzA0MWU4ZGM1Li4yNWRlMTk4NjQ1NmMxMmM4Y2ZkYzc3NTM3NTM0
NDEzMDgwYjMxMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDMtMDggIEhh
cmFsZCBBbHZlc3RyYW5kICA8aHRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnRl
ZCBuZXcgQVBJIGZvciBSVENTdGF0c1JlcG9ydCBvYmplY3QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBSZW1vdmVkIFJU
Q1N0YXRzRWxlbWVudCBvYmplY3QsIG1vdmVkIGl0cyBpbnRlcmZhY2UgdG8KKyAgICAgICAgUlRD
U3RhdHNSZXBvcnQuIFByZXNlcnZlZCBzb21lIGludGVyZmFjZXMgZm9yCisgICAgICAgIGJhY2t3
YXJkcyBjb21wYXRpYmlsaXR5OyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBsYXRlciBwYXRjaC4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0ZWQgYnkg
ZXh0ZW5zaW9ucyB0byBSVENQZWVyQ29ubmVjdGlvbi1zdGF0cyB0ZXN0LgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50Lmg6IFJlbW92ZWQuCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTdGF0c1JlcG9ydDo6UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6bmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNSZXBvcnQ6OmxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0
OjpyZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmFkZFN0YXRpc3Rp
Yyk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6YWRkRWxlbWVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oOgorICAgICAgICAoUlRD
U3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OnRpbWVzdGFt
cCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6aWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXBvcnQ6OnN0YXQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpu
YW1lZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1Jlc3BvbnNlOjphZGRSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25z
ZTo6YWRkU3RhdGlzdGljKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuaDoKKyAgICAgICAgKFJUQ1N0YXRzUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNw
b25zZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9y
dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3Bv
bnNlOjphZGRTdGF0aXN0aWMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3BvbnNl
OjphZGRFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlQmFzZS5oOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZUJhc2UpOgorCiAyMDEzLTAz
LTAyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMTQ0NTE3KTogSW5kZXhlZERCIGxheW91dCB0ZXN0IGZhaWx1cmVzIG9uIEdUSwpk
aWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1Jl
c3BvbnNlLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVz
cG9uc2UuaAppbmRleCBjYzZmMzhlODEyOWUwNDEzMGJiMTg2MmRiYjY3ODRjNTljNWZkMTFhLi5k
YzM2NDEyZTc0M2JkOTkwMjAzYmFiZWIyYTc2ZDQzMWM3MDUzNWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaAorKysgYi9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaApAQCAt
MzcsOCArMzcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUlRDU3RhdHNSZXNw
b25zZSB7CiBwdWJsaWM6Ci0gICAgV2ViUlRDU3RhdHNSZXNwb25zZSgpIHsgfQogICAgIFdlYlJU
Q1N0YXRzUmVzcG9uc2UoY29uc3QgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3RoZXIpIHsgYXNzaWdu
KG90aGVyKTsgfQorICAgIFdlYlJUQ1N0YXRzUmVzcG9uc2UoKSB7IH0KICAgICB+V2ViUlRDU3Rh
dHNSZXNwb25zZSgpIHsgcmVzZXQoKTsgfQogCiAgICAgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3Bl
cmF0b3I9KGNvbnN0IFdlYlJUQ1N0YXRzUmVzcG9uc2UmIG90aGVyKQpAQCAtNTEsOCArNTEsMTMg
QEAgcHVibGljOgogCiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAKKyAgICBXRUJL
SVRfRVhQT1JUIHNpemVfdCBhZGRSZXBvcnQoV2ViU3RyaW5nIGlkLCBXZWJTdHJpbmcgdHlwZSwg
ZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFkZFN0YXRpc3RpYyhz
aXplX3QgcmVwb3J0LCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKKyAgICAvLyBE
RVBSRUNBVEVECiAgICAgV0VCS0lUX0VYUE9SVCBzaXplX3QgYWRkUmVwb3J0KCk7CisgICAgLy8g
REVQUkVDQVRFRAogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRFbGVtZW50KHNpemVfdCByZXBv
cnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgLy8gREVQUkVDQVRFRAog
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgYm9vbCBp
c0xvY2FsLCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKIAogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmE2ZWZmMWUx
Zjc5YzUwZjJlOWYxNWY5OGI5ZTJiZDg4MDE4MGY0My4uY2EyY2RjODRkMjY0Njg2ZTljMjgyZDU2
MTZkN2RjOGY4NjZmNWY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02NjEs
OCArNjYxLDYgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1JUQ1N0YXRzQ2FsbGJhY2suY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTUlRDU3RhdHNDYWxsYmFjay5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
U3RhdHNFbGVtZW50LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1N0YXRzRWxl
bWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNSZXBvcnQuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNSZXBvcnQuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIFwKQEAgLTEyNjUsNyArMTI2Myw2
IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwgXAotCSQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9u
YXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbCBcCkBAIC0xOTc1
LDggKzE5NzIsNiBAQCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c0NhbGxiYWNrLmggXAotCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNFbGVtZW50LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c0VsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDYyNDE2NzNiZTg1ZTAwNzNjNzI5NDZkODBmYjhlNWFiNzQ1YWVkOTcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIlJUQ1N0YXRzRWxlbWVudC5o
IgotCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLVBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBSVENTdGF0c0VsZW1lbnQ6OmNyZWF0
ZShkb3VibGUgdGltZXN0YW1wKQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNF
bGVtZW50KHRpbWVzdGFtcCkpOwotfQotCi1SVENTdGF0c0VsZW1lbnQ6OlJUQ1N0YXRzRWxlbWVu
dChkb3VibGUgdGltZXN0YW1wKQotICAgIDogbV90aW1lc3RhbXAodGltZXN0YW1wKQotewotfQot
Ci1TdHJpbmcgUlRDU3RhdHNFbGVtZW50OjpzdGF0KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9zdGF0cy5nZXQobmFtZSk7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IFJU
Q1N0YXRzRWxlbWVudDo6bmFtZXMoKSBjb25zdAotewotICAgIFZlY3RvcjxTdHJpbmc+IHJlc3Vs
dDsKLSAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9
IG1fc3RhdHMuYmVnaW4oKTsKLSAgICAgICAgaXQgIT0gbV9zdGF0cy5lbmQoKTsgKytpdCkgewot
ICAgICAgICByZXN1bHQuYXBwZW5kKGl0LT5rZXkpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCi12b2lkIFJUQ1N0YXRzRWxlbWVudDo6YWRkU3RhdGlzdGljKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBtX3N0YXRzLmFkZChuYW1lLCB2YWx1
ZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0VsZW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjJkNGFjZjBi
YjIxMGU4YTlmMTI4NTA0NjQ5ZDBmNjdkZjhkOTk2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzRWxlbWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBSVENTdGF0c0VsZW1lbnRfaAotI2RlZmluZSBSVENTdGF0c0VsZW1l
bnRfaAotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUlRDU3RhdHNFbGVtZW50
IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNFbGVtZW50PiB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBjcmVhdGUoZG91YmxlIHRpbWVzdGFtcCk7
Ci0gICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9Ci0g
ICAgU3RyaW5nIHN0YXQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKLSAgICBWZWN0b3I8U3Ry
aW5nPiBuYW1lcygpIGNvbnN0OwotICAgIHZvaWQgYWRkU3RhdGlzdGljKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgUlRD
U3RhdHNFbGVtZW50KGRvdWJsZSB0aW1lc3RhbXApOwotCi0gICAgZG91YmxlIG1fdGltZXN0YW1w
OwotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc3RhdHM7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBSVENTdGF0c0VsZW1lbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYmQ0MzMyYzQ0NGNlMzI5N2RjMTQ2MWYwODM1
NTVkODZlMjNiMGI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50Lmlk
bAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBD
b25kaXRpb25hbD1NRURJQV9TVFJFQU0sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQot
XSBpbnRlcmZhY2UgUlRDU3RhdHNFbGVtZW50IHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRGF0
ZSB0aW1lc3RhbXA7Ci0gICAgRE9NU3RyaW5nIHN0YXQoaW4gRE9NU3RyaW5nIG5hbWUpOwotICAg
IHNlcXVlbmNlPERPTVN0cmluZz4gbmFtZXMoKTsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwCmluZGV4IGE1NjE2ZDU5
ZTlmYTAyYzhjMjNlOThiZDhmNTU2OGU1M2FhYTQ0YzIuLmZkYzIyNGFkOWJjODUzNmE3NDgyZDAy
NjhiNTIyOTM1N2IzMjNiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwCkBAIC0yOCwzNyArMjgsNjEgQEAKIAogI2lu
Y2x1ZGUgIlJUQ1N0YXRzUmVwb3J0LmgiCiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4g
UlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENT
dGF0c1JlcG9ydCgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRzUmVwb3J0KCJp
bm5lciBmYWtlIElEIiwgImlubmVyIGZha2UgdHlwZSIsIDApKTsKIH0KIAotUlRDU3RhdHNSZXBv
cnQ6OlJUQ1N0YXRzUmVwb3J0KCkKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRz
UmVwb3J0OjpjcmVhdGUoU3RyaW5nIGlkLCBTdHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkK
IHsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRzUmVwb3J0KGlkLCB0eXBlLCB0aW1l
c3RhbXApKTsKIH0KIAotdm9pZCBSVENTdGF0c1JlcG9ydDo6YWRkRWxlbWVudChib29sIGlzTG9j
YWwsIGRvdWJsZSB0aW1lc3RhbXApCitSVENTdGF0c1JlcG9ydDo6UlRDU3RhdHNSZXBvcnQoU3Ry
aW5nIGlkLCBTdHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICA6IG1faWQoaWQpCisg
ICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKK3sKK30KKwor
VmVjdG9yPFN0cmluZz4gUlRDU3RhdHNSZXBvcnQ6Om5hbWVzKCkgY29uc3QKIHsKLSAgICBpZiAo
aXNMb2NhbCkgewotICAgICAgICBBU1NFUlQoIW1fbG9jYWwpOwotICAgICAgICBtX2xvY2FsID0g
UlRDU3RhdHNFbGVtZW50OjpjcmVhdGUodGltZXN0YW1wKTsKLSAgICAgICAgcmV0dXJuOworICAg
IFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKKyAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fc3RhdHMuYmVnaW4oKTsgaXQgIT0gbV9zdGF0cy5lbmQo
KTsgKytpdCkgeworICAgICAgICByZXN1bHQuYXBwZW5kKGl0LT5rZXkpOwogICAgIH0KLSAgICBB
U1NFUlQoIW1fcmVtb3RlKTsKLSAgICBtX3JlbW90ZSA9IFJUQ1N0YXRzRWxlbWVudDo6Y3JlYXRl
KHRpbWVzdGFtcCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworY29uc3QgUGFzc1JlZlB0cjxS
VENTdGF0c1JlcG9ydD4gUlRDU3RhdHNSZXBvcnQ6OmxvY2FsKCkKK3sKKyAgICByZXR1cm4gdGhp
czsKK30KKworY29uc3QgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gUlRDU3RhdHNSZXBvcnQ6
OnJlbW90ZSgpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXBvcnQ6
OmFkZFN0YXRpc3RpYyhTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKQoreworICAgIG1fc3RhdHMu
YWRkKG5hbWUsIHZhbHVlKTsKK30KKwordm9pZCBSVENTdGF0c1JlcG9ydDo6YWRkRWxlbWVudChi
b29sIGlzTG9jYWwsIGRvdWJsZSB0aW1lc3RhbXApCit7CisgICAgLy8gV2UgaWdub3JlIGlzTG9j
YWwuCisgICAgbV90aW1lc3RhbXAgPSB0aW1lc3RhbXA7CiB9CiAKIHZvaWQgUlRDU3RhdHNSZXBv
cnQ6OmFkZFN0YXRpc3RpYyhib29sIGlzTG9jYWwsIFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUp
CiB7Ci0gICAgaWYgKGlzTG9jYWwpIHsKLSAgICAgICAgQVNTRVJUKG1fbG9jYWwpOwotICAgICAg
ICBtX2xvY2FsLT5hZGRTdGF0aXN0aWMobmFtZSwgdmFsdWUpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIEFTU0VSVChtX3JlbW90ZSk7Ci0gICAgICAgIG1fcmVtb3RlLT5hZGRTdGF0aXN0aWMobmFt
ZSwgdmFsdWUpOwotICAgIH0KKyAgICAvLyBXZSBpZ25vcmUgaXNMb2NhbC4KKyAgICBhZGRTdGF0
aXN0aWMobmFtZSwgdmFsdWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgKaW5k
ZXggM2QwY2NjZjU1ODQ0YTIxNDg3ZDY3MjcyODExMzM0OGQyOGRjOGM1OS4uY2FmNzdkNGE2ZTZi
MjYyNzIwMzY0ZDA4MDc4Mjc3Yjg2OTdhMmMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaApAQCAtMjUsNyArMjUsNyBAQAog
I2lmbmRlZiBSVENTdGF0c1JlcG9ydF9oCiAjZGVmaW5lIFJUQ1N0YXRzUmVwb3J0X2gKIAotI2lu
Y2x1ZGUgIlJUQ1N0YXRzRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM1LDE5ICszNSwzMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFJUQ1N0YXRzUmVwb3J0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNS
ZXBvcnQ+IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4g
Y3JlYXRlKFN0cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIC8v
IERFUFJFQ0FURUQKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gY3JlYXRl
KCk7CiAKLSAgICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gbG9jYWwoKSBjb25z
dCB7IHJldHVybiBtX2xvY2FsLmdldCgpOyB9Ci0gICAgY29uc3QgUGFzc1JlZlB0cjxSVENTdGF0
c0VsZW1lbnQ+IHJlbW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlLmdldCgpOyB9CisgICAg
ZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgU3Ry
aW5nIGlkKCkgeyByZXR1cm4gbV9pZDsgfQorICAgIFN0cmluZyBzdGF0KGNvbnN0IFN0cmluZyYg
bmFtZSkgeyByZXR1cm4gbV9zdGF0cy5nZXQobmFtZSk7IH0KKyAgICBWZWN0b3I8U3RyaW5nPiBu
YW1lcygpIGNvbnN0OwogCisgICAgLy8gREVQUkVDQVRFRAorICAgIGNvbnN0IFBhc3NSZWZQdHI8
UlRDU3RhdHNSZXBvcnQ+IGxvY2FsKCk7CisgICAgLy8gREVQUkVDQVRFRAorICAgIGNvbnN0IFBh
c3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IHJlbW90ZSgpOworCisgICAgdm9pZCBhZGRTdGF0aXN0
aWMoU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSk7CisgICAgLy8gREVQUkVDQVRFRAogICAgIHZv
aWQgYWRkRWxlbWVudChib29sIGlzTG9jYWwsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIC8vIERF
UFJFQ0FURUQKICAgICB2b2lkIGFkZFN0YXRpc3RpYyhib29sIGlzTG9jYWwsIFN0cmluZyBuYW1l
LCBTdHJpbmcgdmFsdWUpOwogCiBwcml2YXRlOgotICAgIFJUQ1N0YXRzUmVwb3J0KCk7CisgICAg
UlRDU3RhdHNSZXBvcnQoU3RyaW5nIGlkLCBTdHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCk7
CiAKLSAgICBSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBtX2xvY2FsOwotICAgIFJlZlB0cjxSVENT
dGF0c0VsZW1lbnQ+IG1fcmVtb3RlOworICAgIFN0cmluZyBtX2lkOworICAgIFN0cmluZyBtX3R5
cGU7CisgICAgZG91YmxlIG1fdGltZXN0YW1wOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IG1fc3RhdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCmluZGV4IGZl
NmY3ZjMxMTUyNjk4MDhiYzgyMjk5NzQ0YmQwODg1ZmFkY2VkMDYuLjFkNmQ3YjI3NmU1MzJjNzFl
YTE5ZTBhN2FkNGEwZjVlM2I0YTA1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCkBAIC0yNiw2ICsyNiwxMSBAQAog
ICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlCiBdIGludGVyZmFjZSBSVENTdGF0c1JlcG9ydCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IFJUQ1N0YXRzRWxlbWVudCBsb2NhbDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU3RhdHNF
bGVtZW50IHJlbW90ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGF0ZSB0aW1lc3RhbXA7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpZDsKKyAgICBET01TdHJpbmcgc3RhdChp
biBET01TdHJpbmcgbmFtZSk7CisgICAgc2VxdWVuY2U8RE9NU3RyaW5nPiBuYW1lcygpOworICAg
IC8vIERFUFJFQ0FURUQgLSBmYWtlIGZvciBvbGQgUlRDU3RhdHNFbGVtZW50IG9iamVjdC4KKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU3RhdHNSZXBvcnQgbG9jYWw7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFJUQ1N0YXRzUmVwb3J0IHJlbW90ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNwcAppbmRleCBl
Mzc1Y2JlZDBiMTNkMTVkMDAxYTUxNDNjY2ZmMWE2MThiMzAwMmNjLi4yNTlmZTg4NzlmN2Q2MTQw
ZWNkMjI1NWEzYjQ2ZWQ0MGJhMDMyYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2UuaCIKIAorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZT4gUlRDU3RhdHNSZXNwb25zZTo6Y3Jl
YXRlKCkKQEAgLTM5LDEyICs0MCwzMyBAQCBSVENTdGF0c1Jlc3BvbnNlOjpSVENTdGF0c1Jlc3Bv
bnNlKCkKIHsKIH0KIAotc2l6ZV90IFJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9ydCgpCitQYXNz
UmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBSVENTdGF0c1Jlc3BvbnNlOjpuYW1lZEl0ZW0oY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lKQogewotICAgIG1fcmVzdWx0LmFwcGVuZChSVENTdGF0c1JlcG9y
dDo6Y3JlYXRlKCkpOworICAgIGlmIChtX2lkbWFwLmZpbmQobmFtZSkgIT0gbV9pZG1hcC5lbmQo
KSkKKyAgICAgICAgcmV0dXJuIG1fcmVzdWx0W21faWRtYXAuZ2V0KG5hbWUpXTsKKyAgICByZXR1
cm4gMDsKK30KKworc2l6ZV90IFJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9ydChTdHJpbmcgaWQs
IFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQoreworICAgIG1fcmVzdWx0LmFwcGVuZChS
VENTdGF0c1JlcG9ydDo6Y3JlYXRlKGlkLCB0eXBlLCB0aW1lc3RhbXApKTsKKyAgICBtX2lkbWFw
LmFkZChpZCwgbV9yZXN1bHQuc2l6ZSgpIC0gMSk7CiAgICAgcmV0dXJuIG1fcmVzdWx0LnNpemUo
KSAtIDE7CiB9CiAKK3ZvaWQgUlRDU3RhdHNSZXNwb25zZTo6YWRkU3RhdGlzdGljKHNpemVfdCBy
ZXBvcnQsIFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpCit7CisgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04ocmVwb3J0ID49IDAgJiYgcmVwb3J0IDwgbV9yZXN1bHQuc2l6ZSgp
KTsKKyAgICBtX3Jlc3VsdFtyZXBvcnRdLT5hZGRTdGF0aXN0aWMobmFtZSwgdmFsdWUpOworfQor
CisvLyBERVBSRUNBVEVECitzaXplX3QgUlRDU3RhdHNSZXNwb25zZTo6YWRkUmVwb3J0KCkKK3sK
KyAgICBTdHJpbmcgZmFrZUlkID0gU3RyaW5nOjpmb3JtYXQoIkZha2UgSUQgJWx1IiwgKHVuc2ln
bmVkIGxvbmcpIG1fcmVzdWx0LnNpemUoKSk7CisgICAgcmV0dXJuIGFkZFJlcG9ydChmYWtlSWQs
ICJubyB0eXBlIiwgMCk7Cit9CisKIHZvaWQgUlRDU3RhdHNSZXNwb25zZTo6YWRkRWxlbWVudChz
aXplX3QgcmVwb3J0LCBib29sIGlzTG9jYWwsIGRvdWJsZSB0aW1lc3RhbXApCiB7CiAgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVwb3J0ID49IDAgJiYgcmVwb3J0IDwgbV9y
ZXN1bHQuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgKaW5kZXggZDFiY2NjMzdjNzI0ZDhlNWUyZjY3ODg4MDZi
NDRmOTRiNDczNmJhYy4uNTY2OGE0ZTQyNzUzZGU5MDM3ZGQwZmRkNDk4MDIwZmJkMGMxM2YwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1Jlc3BvbnNlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNr
LmgiCiAjaW5jbHVkZSAiUlRDU3RhdHNSZXBvcnQuaCIKICNpbmNsdWRlICJSVENTdGF0c1Jlc3Bv
bnNlQmFzZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDQsMTMgKzQ1LDIxIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8UlRDU3RhdHNSZXBvcnQ+ID4mIHJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9
OwogCisgICAgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gbmFtZWRJdGVtKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSk7CisKKyAgICB2aXJ0dWFsIHNpemVfdCBhZGRSZXBvcnQoU3RyaW5nIGlk
LCBTdHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVl
KSBPVkVSUklERTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAgdmlydHVhbCBzaXplX3QgYWRkUmVw
b3J0KCkgT1ZFUlJJREU7CisgICAgLy8gREVQUkVDQVRFRAogICAgIHZpcnR1YWwgdm9pZCBhZGRF
bGVtZW50KHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCkgT1ZF
UlJJREU7CisgICAgLy8gREVQUkVDQVRFRAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdGF0aXN0aWMo
c2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKSBP
VkVSUklERTsKIAogcHJpdmF0ZToKICAgICBSVENTdGF0c1Jlc3BvbnNlKCk7CiAgICAgVmVjdG9y
PFJlZlB0cjxSVENTdGF0c1JlcG9ydD4gPiBtX3Jlc3VsdDsKKyAgICBIYXNoTWFwPFN0cmluZywg
aW50PiBtX2lkbWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwK
aW5kZXggYWJjZDE5ODExYTRjNGM4ZTkyY2E2YTY3ZmY4OTBkYjZlYjQ0NTA0YS4uZjZlOGJiOTcz
NDRmYzhhN2E2MTc1ZWMzM2VhMTJjODQ3NDBlNGNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsCkBAIC0yMyw3
ICsyMyw5IEBACiAgKi8KIAogWwotICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQorICAgIENv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICBOYW1lZEdldHRlcgogXSBpbnRlcmZhY2UgUlRD
U3RhdHNSZXNwb25zZSB7CiAgICAgc2VxdWVuY2U8UlRDU3RhdHNSZXBvcnQ+IHJlc3VsdCgpOwor
ICAgIFJUQ1N0YXRzUmVwb3J0IG5hbWVkSXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgbmFtZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDZkNWE1Yzk4MzYy
NThjYmE0ZTExMjVkM2YwZWQ1MTIxNDgyZDUzNDcuLjI1YTUxYjQ5MDBmNjI1MTYxZWUzZjk4NjAy
ZTlmMWU1NzY2YTEwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE2NCw3ICsxNjQsNiBAQAogICAg
ICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHND
YWxsYmFjay5pZGwnLAotICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNF
bGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cG9ydC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNw
b25zZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05h
dmlnYXRvckNvbnRlbnRVdGlscy5pZGwnLApAQCAtOTE0LDggKzkxMyw2IEBACiAgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oJywK
ICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oJywKLSAgICAgICAgICAgICdNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAnLAotICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNFbGVtZW50LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVwb3J0LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXF1ZXN0SW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNwb25zZS5jcHAKaW5k
ZXggZTY5Yzc1OTViOTYyMmE1MDE2NDg3MGQ5YWEzZDhjNzM0MWNhNTg1OS4uZjA4MTA3MTU5ODE1
ZjA2N2FjY2IyMTlkNjVhZGVjZmI4OTRjOGY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1Jlc3BvbnNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVzcG9u
c2UuY3BwCkBAIC01NSwxOCArNTUsMzMgQEAgV2ViUlRDU3RhdHNSZXNwb25zZTo6b3BlcmF0b3Ig
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1N0YXRzUmVzcG9uc2VCYXNlPigpIGMKICAgICBy
ZXR1cm4gbV9wcml2YXRlLmdldCgpOwogfQogCitzaXplX3QgV2ViUlRDU3RhdHNSZXNwb25zZTo6
YWRkUmVwb3J0KFdlYlN0cmluZyBpZCwgV2ViU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXAp
Cit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVybiBtX3ByaXZh
dGUtPmFkZFJlcG9ydChpZCwgdHlwZSwgdGltZXN0YW1wKTsKK30KKwordm9pZCBXZWJSVENTdGF0
c1Jlc3BvbnNlOjphZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgV2ViU3RyaW5nIG5hbWUsIFdl
YlN0cmluZyB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAg
bV9wcml2YXRlLT5hZGRTdGF0aXN0aWMocmVwb3J0LCBuYW1lLCB2YWx1ZSk7Cit9CisKIHNpemVf
dCBXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQoKQogeworICAgIEFTU0VSVCghbV9wcml2
YXRlLmlzTnVsbCgpKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT5hZGRSZXBvcnQoKTsKIH0KIAog
dm9pZCBXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRFbGVtZW50KHNpemVfdCByZXBvcnQsIGJvb2wg
aXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCkKIHsKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051
bGwoKSk7CiAgICAgbV9wcml2YXRlLT5hZGRFbGVtZW50KHJlcG9ydCwgaXNMb2NhbCwgdGltZXN0
YW1wKTsKIH0KIAogdm9pZCBXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRTdGF0aXN0aWMoc2l6ZV90
IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKQog
eworICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKICAgICBtX3ByaXZhdGUtPmFkZFN0
YXRpc3RpYyhyZXBvcnQsIGlzTG9jYWwsIG5hbWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZUJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2VC
YXNlLmgKaW5kZXggOTFjYmZhNjg2MzgzNTk4ODM3YTY1OTU1YTU0ZmE2NDQxYWY3MDk5MS4uYzdm
YTY4ZTdlZTdkMjg4OTQ1MThjYTU4OTllZjc5NWU2MjRhMjk1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZUJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlQmFz
ZS5oCkBAIC0zNyw4ICszNywxMyBAQCBjbGFzcyBSVENTdGF0c1Jlc3BvbnNlQmFzZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPiB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+UlRDU3RhdHNSZXNwb25zZUJhc2UoKSB7IH0KIAorICAgIHZpcnR1YWwgc2l6ZV90IGFkZFJl
cG9ydChTdHJpbmcgaWQsIFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBTdHJpbmcgbmFtZSwgU3Ry
aW5nIHZhbHVlKSA9IDA7CisgICAgLy8gREVQUkVDQVRFRCAtIHVzZSBhZGRSZXBvcnQoaWQsIHR5
cGUsIHRpbWVzdGFtcCkKICAgICB2aXJ0dWFsIHNpemVfdCBhZGRSZXBvcnQoKSA9IDA7CisgICAg
Ly8gREVQUkVDQVRFRCAtIHVzZSBhZGRSZXBvcnQoaWQsIHR5cGUsIHRpbWVzdGFtcCkKICAgICB2
aXJ0dWFsIHZvaWQgYWRkRWxlbWVudChzaXplX3QgcmVwb3J0LCBib29sIGlzTG9jYWwsIGRvdWJs
ZSB0aW1lc3RhbXApID0gMDsKKyAgICAvLyBERVBSRUNBVEVEIC0gdXNlIGFkZFN0YXRpc3RpYyhy
ZXBvcnQsIG5hbWUsIHZhbHVlKQogICAgIHZpcnR1YWwgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90
IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKSA9IDA7CiB9
OwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
ZmY4ZDBmYTBkN2NlZGRkNjU5ODliYzJlNjRmYWYxZDBiNGY0NzJjOC4uYzU1NzYzYjEzMmVlNDdi
YzI2Zjg0NDliZWQwNWRlNTNiMGMzY2U0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAzLTA4ICBIYXJhbGQg
QWx2ZXN0cmFuZCAgPGh0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50ZWQgbmV3
IEFQSSBmb3IgUlRDU3RhdHNSZXBvcnQgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6Ok1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKToK
KwogMjAxMy0wMi0yNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
U3RyaW5nSGFzaGVyIGZ1bmN0aW9ucyByZXF1aXJlIGFsaWdubWVudCB0aGF0IGNhbGwgc2l0ZXMg
ZG8gbm90IGFsbCBndWFyYW50ZWUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggYzA1M2QyZGM2Zjg4NmE3ZDM2NGUyOGJh
ODBiZjc0OWU0YzNhOGZmYi4uYTlkMGI3NTkzODRiYzVmYjVmNzljNTkyYWJjNzViNzA3NGE1NTQy
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlci5jcHAKQEAgLTI3NSwxOSArMjc1LDE0IEBAIHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0
CiAgICAgaWYgKHJlcXVlc3QuaGFzU2VsZWN0b3IoKSkgewogICAgICAgICBXZWJNZWRpYVN0cmVh
bSBzdHJlYW0gPSByZXF1ZXN0LnN0cmVhbSgpOwogICAgICAgICAvLyBGSVhNRTogVGhlcmUgaXMg
bm8gY2hlY2sgdGhhdCB0aGUgZmV0Y2hlZCB2YWx1ZXMgYXJlIHZhbGlkLgotICAgICAgICBzaXpl
X3QgcmVwb3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQoKTsKLSAgICAgICAgcmVzcG9uc2Uu
YWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVudERhdGUpOwotICAgICAgICByZXNw
b25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0eXBlIiwgInZpZGVvIik7Cisg
ICAgICAgIHNpemVfdCByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgiTW9jayB2aWRl
byIsICJzc3JjIiwgY3VycmVudERhdGUpOworICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMo
cmVwb3J0SW5kZXgsICJ0eXBlIiwgInZpZGVvIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBtX3N0cmVhbUNvdW50OyArK2kpIHsKLSAgICAgICAgICAgIHNpemVf
dCByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgpOwotICAgICAgICAgICAgcmVzcG9u
c2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVudERhdGUpOwotICAgICAgICAg
ICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCB0cnVlLCAidHlwZSIsICJhdWRp
byIpOwotICAgICAgICAgICAgcmVwb3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQoKTsKLSAg
ICAgICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVwb3J0SW5kZXgsIHRydWUsIGN1cnJlbnRE
YXRlKTsKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1
ZSwgInR5cGUiLCAidmlkZW8iKTsKLSAgICAgICAgICAgIC8vIFdlIGFkZCBhbiBlbXB0eSByZW1v
dGUgcmVwb3J0IGVsZW1lbnQuCi0gICAgICAgICAgICByZXNwb25zZS5hZGRFbGVtZW50KHJlcG9y
dEluZGV4LCBmYWxzZSwgY3VycmVudERhdGUpOworICAgICAgICAgICAgc2l6ZV90IHJlcG9ydElu
ZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCJNb2NrIGF1ZGlvIiwgInNzcmMiLCBjdXJyZW50RGF0
ZSk7CisgICAgICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsICJ0eXBl
IiwgImF1ZGlvIik7CisgICAgICAgICAgICByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9y
dCgiTW9jayB2aWRlbyIsICJzc3JjIiwgY3VycmVudERhdGUpOworICAgICAgICAgICAgcmVzcG9u
c2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCAidHlwZSIsICJ2aWRlbyIpOwogICAgICAgICB9
CiAgICAgfQogICAgIG1faW50ZXJmYWNlcy0+ZGVsZWdhdGUoKS0+cG9zdFRhc2sobmV3IFJUQ1N0
YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2sodGhpcywgcmVxdWVzdCwgcmVzcG9uc2UpKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBlMzViZDNmNjAwY2E2NTk5NmFiYThlYTQyMmFkNmU5OTRkMTRhYTJlLi4wYTIyNmNjNGIzZmM3
NmU3YzBlNTY5NjNlNzY1NmU4MDcwNmVkNjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMt
MDMtMDggIEhhcmFsZCBBbHZlc3RyYW5kICA8aHRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBJ
bXBsZW1lbnRlZCBuZXcgQVBJIGZvciBSVENTdGF0c1JlcG9ydCBvYmplY3QuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbDoKKwogMjAxMy0wMy0wMiAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjE0NDUxNyk6IEluZGV4ZWREQiBsYXlvdXQgdGVzdCBmYWlsdXJlcyBvbiBHVEsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1zdGF0cy1leHBlY3RlZC50eHQKaW5kZXggYTZkNzUyMjdlMDQxOGEyODNkMGY3ZmJlNjBm
MzczN2FmZDY5NjE2ZS4uNmJlYzZlNzVkYTdjNDM5NzU3NzM3ODcwOGNlZGQzNjMxMTI3NDE5MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1zdGF0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQKQEAgLTE3LDYgKzE3LDEzIEBAIFBB
U1MgdGltZXN0YW1wIGlzID49IHN0YXJ0VGltZQogUEFTUyBsb2NhbC5uYW1lcygpLmxlbmd0aCBp
cyA+PSAxCiBQQVNTIGxvY2FsLm5hbWVzKCkuaW5kZXhPZigidHlwZSIpIGlzID49IDAKIFBBU1Mg
bG9jYWwuc3RhdCgidHlwZSIpIGlzICJhdWRpbyIKK1BBU1MgcmVzLnRpbWVzdGFtcCBpcyA+PSBz
dGFydFRpbWUKK1BBU1MgcmVzLmlkIGlzIG5vbi1udWxsLgorUEFTUyByZXMubmFtZXMoKS5sZW5n
dGggaXMgPj0gMQorUEFTUyByZXMubmFtZXMoKS5pbmRleE9mKCJ0eXBlIikgaXMgPj0gMAorUEFT
UyByZXMuc3RhdCgidHlwZSIpIGlzICJhdWRpbyIKK1BBU1Mgc3RhdHVzX2cubmFtZWRJdGVtKHJl
cy5pZCkgaXMgbm9uLW51bGwuCitQQVNTIHN0YXR1c19nW3Jlcy5pZF0gaXMgbm9uLW51bGwuCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3Rh
dHMuaHRtbAppbmRleCAyOWQ1ODE0NGI1YzlkNzFmZGYxZmVmMWMzYzE3MzdlNWUyNjBlMWQxLi42
MjI4ZWZiYTYwYWE0MDNmODZiYjBjNTJhN2I0NmRlNWJjMmY0Zjg4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5o
dG1sCkBAIC00NywxNCArNDcsMjcgQEAgZnVuY3Rpb24gZ290U3RyZWFtKHMpIHsKIGZ1bmN0aW9u
IHN0YXRzSGFuZGxlcjIoc3RhdHVzKQogewogICAgIHRlc3RQYXNzZWQoInN0YXRzSGFuZGxlcjIg
d2FzIGNhbGxlZCIpOworICAgIC8vIFN0YXR1cyBtdXN0IGJlIGEgZ2xvYmFsIHZhcmlhYmxlIHRv
IGJlIHVzZWQgaW4gdGVzdCBzdGF0ZW1lbnRzLgorICAgIHN0YXR1c19nID0gc3RhdHVzOwogICAg
IHJlc3VsdCA9IHN0YXR1cy5yZXN1bHQoKTsKICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVh
bCgncmVzdWx0Lmxlbmd0aCcsICcyJyk7CisgICAgLy8gVGhlICJsb2NhbCIgaW50ZXJmYWNlIGlz
IGRlcHJlY2F0ZWQuIEtlZXAgdGVzdCB1bnRpbCBpbnRlcmZhY2UgZGVsZXRlZC4KICAgICBsb2Nh
bCA9IHJlc3VsdFswXS5sb2NhbDsKICAgICB0aW1lc3RhbXAgPSBsb2NhbC50aW1lc3RhbXA7CiAg
ICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3RpbWVzdGFtcCcsICdzdGFydFRpbWUnKTsK
ICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgnbG9jYWwubmFtZXMoKS5sZW5ndGgnLCAn
MScpOwogICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdsb2NhbC5uYW1lcygpLmluZGV4
T2YoInR5cGUiKScsICcwJyk7CiAgICAgc2hvdWxkQmUoJ2xvY2FsLnN0YXQoInR5cGUiKScsICci
YXVkaW8iJyk7CisgICAgLy8gTmV3ZXIgaW50ZXJmYWNlLgorICAgIHJlcyA9IHJlc3VsdFswXTsK
KyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzLnRpbWVzdGFtcCcsICdzdGFydFRp
bWUnKTsKKyAgICBzaG91bGRCZU5vbk51bGwoJ3Jlcy5pZCcpOworICAgIHNob3VsZEJlR3JlYXRl
clRoYW5PckVxdWFsKCdyZXMubmFtZXMoKS5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlR3Jl
YXRlclRoYW5PckVxdWFsKCdyZXMubmFtZXMoKS5pbmRleE9mKCJ0eXBlIiknLCAnMCcpOworICAg
IHNob3VsZEJlKCdyZXMuc3RhdCgidHlwZSIpJywgJyJhdWRpbyInKTsKKyAgICAvLyBOYW1lZCBn
ZXR0ZXI6IENhbiBhY2Nlc3MgcmVzdWx0cyBieSB0aGVpciBJRCB2YWx1ZXMuCisgICAgc2hvdWxk
QmVOb25OdWxsKCdzdGF0dXNfZy5uYW1lZEl0ZW0ocmVzLmlkKScpOworICAgIHNob3VsZEJlTm9u
TnVsbCgnc3RhdHVzX2dbcmVzLmlkXScpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192224</attachid>
            <date>2013-03-08 07:18:42 -0800</date>
            <delta_ts>2013-03-08 15:19:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110333-20130308161448.patch</filename>
            <type>text/plain</type>
            <size>31794</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNzc5YmFkYmFmZjAz
YWIxNjc2YjdiNjA5ODE1MDFmMzVjMjkyY2ZhLi43MDg0OWZjZDEyN2VkODlkMjQ2MmZkZjQyY2My
NWQyYjc5NTkwOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0wOCAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dGVkIG5ldyBBUEkgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMzMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0
YXRzUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXNwb25zZTo6V2Vi
UlRDU3RhdHNSZXNwb25zZSk6CisgICAgICAgIChXZWJSVENTdGF0c1Jlc3BvbnNlKToKKwogMjAx
My0wMi0yNiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIEVYVF9kcmF3
X2J1ZmZlcnMgbmVlZHMgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YWZkYmJhZWY1NTdm
YWUyZjQ2YzNjZmJlNGUwMTQyMzA0MWU4ZGM1Li4yNWRlMTk4NjQ1NmMxMmM4Y2ZkYzc3NTM3NTM0
NDEzMDgwYjMxMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDMtMDggIEhh
cmFsZCBBbHZlc3RyYW5kICA8aHRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnRl
ZCBuZXcgQVBJIGZvciBSVENTdGF0c1JlcG9ydCBvYmplY3QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBSZW1vdmVkIFJU
Q1N0YXRzRWxlbWVudCBvYmplY3QsIG1vdmVkIGl0cyBpbnRlcmZhY2UgdG8KKyAgICAgICAgUlRD
U3RhdHNSZXBvcnQuIFByZXNlcnZlZCBzb21lIGludGVyZmFjZXMgZm9yCisgICAgICAgIGJhY2t3
YXJkcyBjb21wYXRpYmlsaXR5OyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBsYXRlciBwYXRjaC4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0ZWQgYnkg
ZXh0ZW5zaW9ucyB0byBSVENQZWVyQ29ubmVjdGlvbi1zdGF0cyB0ZXN0LgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50Lmg6IFJlbW92ZWQuCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTdGF0c1JlcG9ydDo6UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6bmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNSZXBvcnQ6OmxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0
OjpyZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmFkZFN0YXRpc3Rp
Yyk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6YWRkRWxlbWVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oOgorICAgICAgICAoUlRD
U3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OnRpbWVzdGFt
cCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6aWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXBvcnQ6OnN0YXQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpu
YW1lZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1Jlc3BvbnNlOjphZGRSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25z
ZTo6YWRkU3RhdGlzdGljKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuaDoKKyAgICAgICAgKFJUQ1N0YXRzUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNw
b25zZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9y
dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3Bv
bnNlOjphZGRTdGF0aXN0aWMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3BvbnNl
OjphZGRFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlQmFzZS5oOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZUJhc2UpOgorCiAyMDEzLTAz
LTAyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMTQ0NTE3KTogSW5kZXhlZERCIGxheW91dCB0ZXN0IGZhaWx1cmVzIG9uIEdUSwpk
aWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1Jl
c3BvbnNlLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVz
cG9uc2UuaAppbmRleCBjYzZmMzhlODEyOWUwNDEzMGJiMTg2MmRiYjY3ODRjNTljNWZkMTFhLi5k
YzM2NDEyZTc0M2JkOTkwMjAzYmFiZWIyYTc2ZDQzMWM3MDUzNWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaAorKysgYi9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaApAQCAt
MzcsOCArMzcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUlRDU3RhdHNSZXNw
b25zZSB7CiBwdWJsaWM6Ci0gICAgV2ViUlRDU3RhdHNSZXNwb25zZSgpIHsgfQogICAgIFdlYlJU
Q1N0YXRzUmVzcG9uc2UoY29uc3QgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3RoZXIpIHsgYXNzaWdu
KG90aGVyKTsgfQorICAgIFdlYlJUQ1N0YXRzUmVzcG9uc2UoKSB7IH0KICAgICB+V2ViUlRDU3Rh
dHNSZXNwb25zZSgpIHsgcmVzZXQoKTsgfQogCiAgICAgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3Bl
cmF0b3I9KGNvbnN0IFdlYlJUQ1N0YXRzUmVzcG9uc2UmIG90aGVyKQpAQCAtNTEsOCArNTEsMTMg
QEAgcHVibGljOgogCiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAKKyAgICBXRUJL
SVRfRVhQT1JUIHNpemVfdCBhZGRSZXBvcnQoV2ViU3RyaW5nIGlkLCBXZWJTdHJpbmcgdHlwZSwg
ZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFkZFN0YXRpc3RpYyhz
aXplX3QgcmVwb3J0LCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKKyAgICAvLyBE
RVBSRUNBVEVECiAgICAgV0VCS0lUX0VYUE9SVCBzaXplX3QgYWRkUmVwb3J0KCk7CisgICAgLy8g
REVQUkVDQVRFRAogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRFbGVtZW50KHNpemVfdCByZXBv
cnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgLy8gREVQUkVDQVRFRAog
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgYm9vbCBp
c0xvY2FsLCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKIAogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkMzAyNzNlNjM2MjFjNWEyYjYz
OTRjODY5NmRhODk4NDM0MDc5OWMyLi4wYjVlYzU2YjYyMmYyYzcyNGZmMmIwOTllZjQzNDc5MDQ2
NWEyOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI2LDcgKzIyNiw2IEBAIHNldChXZWJD
b3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2Fs
bGJhY2suaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbAot
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbAogICAgIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmlkbAogCkBAIC04NjQsNyArODYzLDYgQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwCiAgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKLSAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0SW1wbC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9u
c2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiYTZlZmYxZTFmNzljNTBm
MmU5ZjE1Zjk4YjllMmJkODgwMTgwZjQzLi5jYTJjZGM4NGQyNjQ2ODZlOWMyODJkNTYxNmQ3ZGM4
Zjg2NmY1Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTY2MSw4ICs2NjEs
NiBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTUlRDU3RhdHNDYWxsYmFjay5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNS
VENTdGF0c0NhbGxiYWNrLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c0Vs
ZW1lbnQuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNFbGVtZW50Lmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1JlcG9ydC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1JlcG9ydC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUlRDU3RhdHNSZXNwb25zZS5jcHAgXApAQCAtMTI2NSw3ICsxMjYzLDYgQEAgZG9t
X2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbCBcCi0JJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25hdmlnYXRv
cmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaWRsIFwKQEAgLTE5NzUsOCArMTk3
Miw2IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0SW1wbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzQ2FsbGJhY2suaCBcCi0JU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0VsZW1lbnQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVwb3J0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcG9ydC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVxdWVzdEltcGwuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjI0MTY3M2JlODVlMDA3M2M3Mjk0NmQ4MGZiOGU1YWI3NDVhZWQ5Ny4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiUlRDU3RhdHNFbGVtZW50LmgiCi0KLSNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
UGFzc1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IFJUQ1N0YXRzRWxlbWVudDo6Y3JlYXRlKGRvdWJs
ZSB0aW1lc3RhbXApCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c0VsZW1lbnQo
dGltZXN0YW1wKSk7Ci19Ci0KLVJUQ1N0YXRzRWxlbWVudDo6UlRDU3RhdHNFbGVtZW50KGRvdWJs
ZSB0aW1lc3RhbXApCi0gICAgOiBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCi17Ci19Ci0KLVN0cmlu
ZyBSVENTdGF0c0VsZW1lbnQ6OnN0YXQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAotewotICAg
IHJldHVybiBtX3N0YXRzLmdldChuYW1lKTsKLX0KLQotVmVjdG9yPFN0cmluZz4gUlRDU3RhdHNF
bGVtZW50OjpuYW1lcygpIGNvbnN0Ci17Ci0gICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OwotICAg
IGZvciAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zdGF0
cy5iZWdpbigpOwotICAgICAgICBpdCAhPSBtX3N0YXRzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAg
IHJlc3VsdC5hcHBlbmQoaXQtPmtleSk7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0K
LXZvaWQgUlRDU3RhdHNFbGVtZW50OjphZGRTdGF0aXN0aWMoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIG1fc3RhdHMuYWRkKG5hbWUsIHZhbHVlKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
RWxlbWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMmQ0YWNmMGJiMjEwZThh
OWYxMjg1MDQ2NDlkMGY2N2RmOGQ5OTY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNFbGVtZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgot
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFJUQ1N0YXRzRWxlbWVudF9oCi0jZGVmaW5lIFJUQ1N0YXRzRWxlbWVudF9oCi0K
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSVENTdGF0c0VsZW1lbnQgOiBwdWJs
aWMgUmVmQ291bnRlZDxSVENTdGF0c0VsZW1lbnQ+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IGNyZWF0ZShkb3VibGUgdGltZXN0YW1wKTsKLSAgICBk
b3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KLSAgICBTdHJp
bmcgc3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwotICAgIFZlY3RvcjxTdHJpbmc+IG5h
bWVzKCkgY29uc3Q7Ci0gICAgdm9pZCBhZGRTdGF0aXN0aWMoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSVENTdGF0c0Vs
ZW1lbnQoZG91YmxlIHRpbWVzdGFtcCk7Ci0KLSAgICBkb3VibGUgbV90aW1lc3RhbXA7Ci0gICAg
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zdGF0czsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIFJUQ1N0YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiZDQzMzJjNDQ0Y2UzMjk3ZGMxNDYxZjA4MzU1NWQ4NmUy
M2IwYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsCisrKyAv
ZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIENvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVy
ZmFjZSBSVENTdGF0c0VsZW1lbnQgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRlIHRpbWVz
dGFtcDsKLSAgICBET01TdHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFtZSk7Ci0gICAgc2VxdWVu
Y2U8RE9NU3RyaW5nPiBuYW1lcygpOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKaW5kZXggYTU2MTZkNTllOWZhMDJj
OGMyM2U5OGJkOGY1NTY4ZTUzYWFhNDRjMi4uZmRjMjI0YWQ5YmM4NTM2YTc0ODJkMDI2OGI1MjI5
MzU3YjMyM2IzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKQEAgLTI4LDM3ICsyOCw2MSBAQAogCiAjaW5jbHVkZSAi
UlRDU3RhdHNSZXBvcnQuaCIKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBSVENTdGF0
c1JlcG9ydDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRzUmVw
b3J0KCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoImlubmVyIGZh
a2UgSUQiLCAiaW5uZXIgZmFrZSB0eXBlIiwgMCkpOwogfQogCi1SVENTdGF0c1JlcG9ydDo6UlRD
U3RhdHNSZXBvcnQoKQorUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gUlRDU3RhdHNSZXBvcnQ6
OmNyZWF0ZShTdHJpbmcgaWQsIFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQogeworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoaWQsIHR5cGUsIHRpbWVzdGFtcCkp
OwogfQogCi12b2lkIFJUQ1N0YXRzUmVwb3J0OjphZGRFbGVtZW50KGJvb2wgaXNMb2NhbCwgZG91
YmxlIHRpbWVzdGFtcCkKK1JUQ1N0YXRzUmVwb3J0OjpSVENTdGF0c1JlcG9ydChTdHJpbmcgaWQs
IFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQorICAgIDogbV9pZChpZCkKKyAgICAsIG1f
dHlwZSh0eXBlKQorICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQoreworfQorCitWZWN0b3I8
U3RyaW5nPiBSVENTdGF0c1JlcG9ydDo6bmFtZXMoKSBjb25zdAogewotICAgIGlmIChpc0xvY2Fs
KSB7Ci0gICAgICAgIEFTU0VSVCghbV9sb2NhbCk7Ci0gICAgICAgIG1fbG9jYWwgPSBSVENTdGF0
c0VsZW1lbnQ6OmNyZWF0ZSh0aW1lc3RhbXApOwotICAgICAgICByZXR1cm47CisgICAgVmVjdG9y
PFN0cmluZz4gcmVzdWx0OworICAgIGZvciAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz46OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9zdGF0cy5iZWdpbigpOyBpdCAhPSBtX3N0YXRzLmVuZCgpOyArK2l0
KSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQtPmtleSk7CiAgICAgfQotICAgIEFTU0VSVCgh
bV9yZW1vdGUpOwotICAgIG1fcmVtb3RlID0gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUodGltZXN0
YW1wKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRz
UmVwb3J0PiBSVENTdGF0c1JlcG9ydDo6bG9jYWwoKQoreworICAgIHJldHVybiB0aGlzOworfQor
Citjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBSVENTdGF0c1JlcG9ydDo6cmVtb3Rl
KCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30KKwordm9pZCBSVENTdGF0c1JlcG9ydDo6YWRkU3Rh
dGlzdGljKFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpCit7CisgICAgbV9zdGF0cy5hZGQobmFt
ZSwgdmFsdWUpOworfQorCit2b2lkIFJUQ1N0YXRzUmVwb3J0OjphZGRFbGVtZW50KGJvb2wgaXNM
b2NhbCwgZG91YmxlIHRpbWVzdGFtcCkKK3sKKyAgICAvLyBXZSBpZ25vcmUgaXNMb2NhbC4KKyAg
ICBtX3RpbWVzdGFtcCA9IHRpbWVzdGFtcDsKIH0KIAogdm9pZCBSVENTdGF0c1JlcG9ydDo6YWRk
U3RhdGlzdGljKGJvb2wgaXNMb2NhbCwgU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkKIHsKLSAg
ICBpZiAoaXNMb2NhbCkgewotICAgICAgICBBU1NFUlQobV9sb2NhbCk7Ci0gICAgICAgIG1fbG9j
YWwtPmFkZFN0YXRpc3RpYyhuYW1lLCB2YWx1ZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNT
RVJUKG1fcmVtb3RlKTsKLSAgICAgICAgbV9yZW1vdGUtPmFkZFN0YXRpc3RpYyhuYW1lLCB2YWx1
ZSk7Ci0gICAgfQorICAgIC8vIFdlIGlnbm9yZSBpc0xvY2FsLgorICAgIGFkZFN0YXRpc3RpYyhu
YW1lLCB2YWx1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaAppbmRleCAzZDBj
Y2NmNTU4NDRhMjE0ODdkNjcyNzI4MTEzMzQ4ZDI4ZGM4YzU5Li5jYWY3N2Q0YTZlNmIyNjI3MjAz
NjRkMDgwNzgyNzdiODY5N2EyYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCkBAIC0yNSw3ICsyNSw3IEBACiAjaWZuZGVm
IFJUQ1N0YXRzUmVwb3J0X2gKICNkZWZpbmUgUlRDU3RhdHNSZXBvcnRfaAogCi0jaW5jbHVkZSAi
UlRDU3RhdHNFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgpAQCAtMzUsMTkgKzM1LDMzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgUlRDU3RhdHNSZXBvcnQgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c1JlcG9ydD4g
ewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBjcmVhdGUo
U3RyaW5nIGlkLCBTdHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgLy8gREVQUkVD
QVRFRAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBjcmVhdGUoKTsKIAot
ICAgIGNvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBsb2NhbCgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9jYWwuZ2V0KCk7IH0KLSAgICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVu
dD4gcmVtb3RlKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGUuZ2V0KCk7IH0KKyAgICBkb3VibGUg
dGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBTdHJpbmcgaWQo
KSB7IHJldHVybiBtX2lkOyB9CisgICAgU3RyaW5nIHN0YXQoY29uc3QgU3RyaW5nJiBuYW1lKSB7
IHJldHVybiBtX3N0YXRzLmdldChuYW1lKTsgfQorICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzKCkg
Y29uc3Q7CiAKKyAgICAvLyBERVBSRUNBVEVECisgICAgY29uc3QgUGFzc1JlZlB0cjxSVENTdGF0
c1JlcG9ydD4gbG9jYWwoKTsKKyAgICAvLyBERVBSRUNBVEVECisgICAgY29uc3QgUGFzc1JlZlB0
cjxSVENTdGF0c1JlcG9ydD4gcmVtb3RlKCk7CisKKyAgICB2b2lkIGFkZFN0YXRpc3RpYyhTdHJp
bmcgbmFtZSwgU3RyaW5nIHZhbHVlKTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAgdm9pZCBhZGRF
bGVtZW50KGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgLy8gREVQUkVDQVRF
RAogICAgIHZvaWQgYWRkU3RhdGlzdGljKGJvb2wgaXNMb2NhbCwgU3RyaW5nIG5hbWUsIFN0cmlu
ZyB2YWx1ZSk7CiAKIHByaXZhdGU6Ci0gICAgUlRDU3RhdHNSZXBvcnQoKTsKKyAgICBSVENTdGF0
c1JlcG9ydChTdHJpbmcgaWQsIFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKTsKIAotICAg
IFJlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IG1fbG9jYWw7Ci0gICAgUmVmUHRyPFJUQ1N0YXRzRWxl
bWVudD4gbV9yZW1vdGU7CisgICAgU3RyaW5nIG1faWQ7CisgICAgU3RyaW5nIG1fdHlwZTsKKyAg
ICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zdGF0
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKaW5kZXggZmU2ZjdmMzEx
NTI2OTgwOGJjODIyOTk3NDRiZDA4ODVmYWRjZWQwNi4uMWQ2ZDdiMjc2ZTUzMmM3MWVhMTllMGE3
YWQ0YTBmNWUzYjRhMDUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKQEAgLTI2LDYgKzI2LDExIEBACiAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKIF0g
aW50ZXJmYWNlIFJUQ1N0YXRzUmVwb3J0IHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU3Rh
dHNFbGVtZW50IGxvY2FsOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTdGF0c0VsZW1lbnQg
cmVtb3RlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRlIHRpbWVzdGFtcDsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOworICAgIERPTVN0cmluZyBzdGF0KGluIERPTVN0
cmluZyBuYW1lKTsKKyAgICBzZXF1ZW5jZTxET01TdHJpbmc+IG5hbWVzKCk7CisgICAgLy8gREVQ
UkVDQVRFRCAtIGZha2UgZm9yIG9sZCBSVENTdGF0c0VsZW1lbnQgb2JqZWN0LgorICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBSVENTdGF0c1JlcG9ydCBsb2NhbDsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgUlRDU3RhdHNSZXBvcnQgcmVtb3RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCmluZGV4IGUzNzVjYmVk
MGIxM2QxNWQwMDFhNTE0M2NjZmYxYTYxOGIzMDAyY2MuLjI1OWZlODg3OWY3ZDYxNDBlY2QyMjU1
YTNiNDZlZDQwYmEwMzJhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAj
aW5jbHVkZSAiUlRDU3RhdHNSZXNwb25zZS5oIgogCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlPiBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKQpA
QCAtMzksMTIgKzQwLDMzIEBAIFJUQ1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2UoKQog
ewogfQogCi1zaXplX3QgUlRDU3RhdHNSZXNwb25zZTo6YWRkUmVwb3J0KCkKK1Bhc3NSZWZQdHI8
UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRzUmVzcG9uc2U6Om5hbWVkSXRlbShjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUpCiB7Ci0gICAgbV9yZXN1bHQuYXBwZW5kKFJUQ1N0YXRzUmVwb3J0OjpjcmVh
dGUoKSk7CisgICAgaWYgKG1faWRtYXAuZmluZChuYW1lKSAhPSBtX2lkbWFwLmVuZCgpKQorICAg
ICAgICByZXR1cm4gbV9yZXN1bHRbbV9pZG1hcC5nZXQobmFtZSldOworICAgIHJldHVybiAwOwor
fQorCitzaXplX3QgUlRDU3RhdHNSZXNwb25zZTo6YWRkUmVwb3J0KFN0cmluZyBpZCwgU3RyaW5n
IHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApCit7CisgICAgbV9yZXN1bHQuYXBwZW5kKFJUQ1N0YXRz
UmVwb3J0OjpjcmVhdGUoaWQsIHR5cGUsIHRpbWVzdGFtcCkpOworICAgIG1faWRtYXAuYWRkKGlk
LCBtX3Jlc3VsdC5zaXplKCkgLSAxKTsKICAgICByZXR1cm4gbV9yZXN1bHQuc2l6ZSgpIC0gMTsK
IH0KIAordm9pZCBSVENTdGF0c1Jlc3BvbnNlOjphZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwg
U3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihyZXBvcnQgPj0gMCAmJiByZXBvcnQgPCBtX3Jlc3VsdC5zaXplKCkpOworICAg
IG1fcmVzdWx0W3JlcG9ydF0tPmFkZFN0YXRpc3RpYyhuYW1lLCB2YWx1ZSk7Cit9CisKKy8vIERF
UFJFQ0FURUQKK3NpemVfdCBSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQoKQoreworICAgIFN0
cmluZyBmYWtlSWQgPSBTdHJpbmc6OmZvcm1hdCgiRmFrZSBJRCAlbHUiLCAodW5zaWduZWQgbG9u
ZykgbV9yZXN1bHQuc2l6ZSgpKTsKKyAgICByZXR1cm4gYWRkUmVwb3J0KGZha2VJZCwgIm5vIHR5
cGUiLCAwKTsKK30KKwogdm9pZCBSVENTdGF0c1Jlc3BvbnNlOjphZGRFbGVtZW50KHNpemVfdCBy
ZXBvcnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCkKIHsKICAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXBvcnQgPj0gMCAmJiByZXBvcnQgPCBtX3Jlc3VsdC5z
aXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVzcG9uc2UuaAppbmRleCBkMWJjY2MzN2M3MjRkOGU1ZTJmNjc4ODgwNmI0NGY5NGI0
NzM2YmFjLi41NjY4YTRlNDI3NTNkZTkwMzdkZDBmZGQ0OTgwMjBmYmQwYzEzZjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9u
c2UuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKICNp
bmNsdWRlICJSVENTdGF0c1JlcG9ydC5oIgogI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2VCYXNl
LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00NCwxMyArNDUsMjEgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxSVENT
dGF0c1JlcG9ydD4gPiYgcmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHQ7IH07CiAKKyAg
ICBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lKTsKKworICAgIHZpcnR1YWwgc2l6ZV90IGFkZFJlcG9ydChTdHJpbmcgaWQsIFN0cmlu
ZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRk
U3RhdGlzdGljKHNpemVfdCByZXBvcnQsIFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpIE9WRVJS
SURFOworICAgIC8vIERFUFJFQ0FURUQKICAgICB2aXJ0dWFsIHNpemVfdCBhZGRSZXBvcnQoKSBP
VkVSUklERTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAgdmlydHVhbCB2b2lkIGFkZEVsZW1lbnQo
c2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBkb3VibGUgdGltZXN0YW1wKSBPVkVSUklERTsK
KyAgICAvLyBERVBSRUNBVEVECiAgICAgdmlydHVhbCB2b2lkIGFkZFN0YXRpc3RpYyhzaXplX3Qg
cmVwb3J0LCBib29sIGlzTG9jYWwsIFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpIE9WRVJSSURF
OwogCiBwcml2YXRlOgogICAgIFJUQ1N0YXRzUmVzcG9uc2UoKTsKICAgICBWZWN0b3I8UmVmUHRy
PFJUQ1N0YXRzUmVwb3J0PiA+IG1fcmVzdWx0OworICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+IG1f
aWRtYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbAppbmRleCBh
YmNkMTk4MTFhNGM0YzhlOTJjYTZhNjdmZjg5MGRiNmViNDQ1MDRhLi5mNmU4YmI5NzM0NGZjOGE3
YTYxNzVlYzMzZWExMmM4NDc0MGU0Y2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKQEAgLTIzLDcgKzIzLDkg
QEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCisgICAgQ29uZGl0aW9u
YWw9TUVESUFfU1RSRUFNLAorICAgIE5hbWVkR2V0dGVyCiBdIGludGVyZmFjZSBSVENTdGF0c1Jl
c3BvbnNlIHsKICAgICBzZXF1ZW5jZTxSVENTdGF0c1JlcG9ydD4gcmVzdWx0KCk7CisgICAgUlRD
U3RhdHNSZXBvcnQgbmFtZWRJdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERP
TVN0cmluZyBuYW1lKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNmQ1YTVjOTgzNjI1OGNiYTRl
MTEyNWQzZjBlZDUxMjE0ODJkNTM0Ny4uMjVhNTFiNDkwMGY2MjUxNjFlZTNmOTg2MDJlOWYxZTU3
NjZhMTAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTY0LDcgKzE2NCw2IEBACiAgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb24uaWRsJywKICAgICAg
ICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNr
LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNr
LmlkbCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQu
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0Lmlk
bCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlk
bCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9y
Q29udGVudFV0aWxzLmlkbCcsCkBAIC05MTQsOCArOTEzLDYgQEAKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdElt
cGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsLmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNFbGVtZW50LmNwcCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcG9ydC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXBvcnQuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cXVlc3RJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1Jlc3BvbnNlLmNwcAppbmRleCBlNjlj
NzU5NWI5NjIyYTUwMTY0ODcwZDlhYTNkOGM3MzQxY2E1ODU5Li5mMDgxMDcxNTk4MTVmMDY3YWNj
YjIxOWQ2NWFkZWNmYjg5NGM4ZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNwb25zZS5jcHAK
QEAgLTU1LDE4ICs1NSwzMyBAQCBXZWJSVENTdGF0c1Jlc3BvbnNlOjpvcGVyYXRvciBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZUJhc2U+KCkgYwogICAgIHJldHVybiBt
X3ByaXZhdGUuZ2V0KCk7CiB9CiAKK3NpemVfdCBXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBv
cnQoV2ViU3RyaW5nIGlkLCBXZWJTdHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkKK3sKKyAg
ICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YWRk
UmVwb3J0KGlkLCB0eXBlLCB0aW1lc3RhbXApOworfQorCit2b2lkIFdlYlJUQ1N0YXRzUmVzcG9u
c2U6OmFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5n
IHZhbHVlKQoreworICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKKyAgICBtX3ByaXZh
dGUtPmFkZFN0YXRpc3RpYyhyZXBvcnQsIG5hbWUsIHZhbHVlKTsKK30KKwogc2l6ZV90IFdlYlJU
Q1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9ydCgpCiB7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNO
dWxsKCkpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPmFkZFJlcG9ydCgpOwogfQogCiB2b2lkIFdl
YlJUQ1N0YXRzUmVzcG9uc2U6OmFkZEVsZW1lbnQoc2l6ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2Fs
LCBkb3VibGUgdGltZXN0YW1wKQogeworICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsK
ICAgICBtX3ByaXZhdGUtPmFkZEVsZW1lbnQocmVwb3J0LCBpc0xvY2FsLCB0aW1lc3RhbXApOwog
fQogCiB2b2lkIFdlYlJUQ1N0YXRzUmVzcG9uc2U6OmFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0
LCBib29sIGlzTG9jYWwsIFdlYlN0cmluZyBuYW1lLCBXZWJTdHJpbmcgdmFsdWUpCiB7CisgICAg
QVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwogICAgIG1fcHJpdmF0ZS0+YWRkU3RhdGlzdGlj
KHJlcG9ydCwgaXNMb2NhbCwgbmFtZSwgdmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZUJhc2UuaApp
bmRleCA5MWNiZmE2ODYzODM1OTg4MzdhNjU5NTVhNTRmYTY0NDFhZjcwOTkxLi5jN2ZhNjhlN2Vl
N2QyODg5NDUxOGNhNTg5OWVmNzk1ZTYyNGEyOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlQmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2VCYXNlLmgKQEAg
LTM3LDggKzM3LDEzIEBAIGNsYXNzIFJUQ1N0YXRzUmVzcG9uc2VCYXNlIDogcHVibGljIFJlZkNv
dW50ZWQ8UlRDU3RhdHNSZXNwb25zZUJhc2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SVENT
dGF0c1Jlc3BvbnNlQmFzZSgpIHsgfQogCisgICAgdmlydHVhbCBzaXplX3QgYWRkUmVwb3J0KFN0
cmluZyBpZCwgU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkU3RhdGlzdGljKHNpemVfdCByZXBvcnQsIFN0cmluZyBuYW1lLCBTdHJpbmcgdmFs
dWUpID0gMDsKKyAgICAvLyBERVBSRUNBVEVEIC0gdXNlIGFkZFJlcG9ydChpZCwgdHlwZSwgdGlt
ZXN0YW1wKQogICAgIHZpcnR1YWwgc2l6ZV90IGFkZFJlcG9ydCgpID0gMDsKKyAgICAvLyBERVBS
RUNBVEVEIC0gdXNlIGFkZFJlcG9ydChpZCwgdHlwZSwgdGltZXN0YW1wKQogICAgIHZpcnR1YWwg
dm9pZCBhZGRFbGVtZW50KHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVz
dGFtcCkgPSAwOworICAgIC8vIERFUFJFQ0FURUQgLSB1c2UgYWRkU3RhdGlzdGljKHJlcG9ydCwg
bmFtZSwgdmFsdWUpCiAgICAgdmlydHVhbCB2b2lkIGFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0
LCBib29sIGlzTG9jYWwsIFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpID0gMDsKIH07CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmZjhkMGZh
MGQ3Y2VkZGQ2NTk4OWJjMmU2NGZhZjFkMGI0ZjQ3MmM4Li5jNTU3NjNiMTMyZWU0N2JjMjZmODQ0
OWJlZDA1ZGU1M2IwYzNjZTQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDMtMDggIEhhcmFsZCBBbHZlc3Ry
YW5kICA8aHRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnRlZCBuZXcgQVBJIGZv
ciBSVENTdGF0c1JlcG9ydCBvYmplY3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMpOgorCiAyMDEz
LTAyLTI3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmdI
YXNoZXIgZnVuY3Rpb25zIHJlcXVpcmUgYWxpZ25tZW50IHRoYXQgY2FsbCBzaXRlcyBkbyBub3Qg
YWxsIGd1YXJhbnRlZQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyLmNwcAppbmRleCBjMDUzZDJkYzZmODg2YTdkMzY0ZTI4YmE4MGJmNzQ5
ZTRjM2E4ZmZiLi5hOWQwYjc1OTM4NGJjNWZiNWY3OWM1OTJhYmM3NWI3MDc0YTU1NDJkIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmNwcApAQCAtMjc1LDE5ICsyNzUsMTQgQEAgdm9pZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyOjpnZXRTdGF0cyhjb25zdCBXZWJSVENTdGF0c1JlcXVlc3QmIHJlcXVlc3QKICAgICBp
ZiAocmVxdWVzdC5oYXNTZWxlY3RvcigpKSB7CiAgICAgICAgIFdlYk1lZGlhU3RyZWFtIHN0cmVh
bSA9IHJlcXVlc3Quc3RyZWFtKCk7CiAgICAgICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBubyBjaGVj
ayB0aGF0IHRoZSBmZXRjaGVkIHZhbHVlcyBhcmUgdmFsaWQuCi0gICAgICAgIHNpemVfdCByZXBv
cnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgpOwotICAgICAgICByZXNwb25zZS5hZGRFbGVt
ZW50KHJlcG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0ZSk7Ci0gICAgICAgIHJlc3BvbnNlLmFk
ZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1ZSwgInR5cGUiLCAidmlkZW8iKTsKKyAgICAgICAg
c2l6ZV90IHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCJNb2NrIHZpZGVvIiwgInNz
cmMiLCBjdXJyZW50RGF0ZSk7CisgICAgICAgIHJlc3BvbnNlLmFkZFN0YXRpc3RpYyhyZXBvcnRJ
bmRleCwgInR5cGUiLCAidmlkZW8iKTsKICAgICB9IGVsc2UgewogICAgICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG1fc3RyZWFtQ291bnQ7ICsraSkgewotICAgICAgICAgICAgc2l6ZV90IHJlcG9y
dEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCk7Ci0gICAgICAgICAgICByZXNwb25zZS5hZGRF
bGVtZW50KHJlcG9ydEluZGV4LCB0cnVlLCBjdXJyZW50RGF0ZSk7Ci0gICAgICAgICAgICByZXNw
b25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0eXBlIiwgImF1ZGlvIik7Ci0g
ICAgICAgICAgICByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgpOwotICAgICAgICAg
ICAgcmVzcG9uc2UuYWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVudERhdGUpOwot
ICAgICAgICAgICAgcmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCB0cnVlLCAidHlw
ZSIsICJ2aWRlbyIpOwotICAgICAgICAgICAgLy8gV2UgYWRkIGFuIGVtcHR5IHJlbW90ZSByZXBv
cnQgZWxlbWVudC4KLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVwb3J0SW5kZXgs
IGZhbHNlLCBjdXJyZW50RGF0ZSk7CisgICAgICAgICAgICBzaXplX3QgcmVwb3J0SW5kZXggPSBy
ZXNwb25zZS5hZGRSZXBvcnQoIk1vY2sgYXVkaW8iLCAic3NyYyIsIGN1cnJlbnREYXRlKTsKKyAg
ICAgICAgICAgIHJlc3BvbnNlLmFkZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgInR5cGUiLCAiYXVk
aW8iKTsKKyAgICAgICAgICAgIHJlcG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCJNb2Nr
IHZpZGVvIiwgInNzcmMiLCBjdXJyZW50RGF0ZSk7CisgICAgICAgICAgICByZXNwb25zZS5hZGRT
dGF0aXN0aWMocmVwb3J0SW5kZXgsICJ0eXBlIiwgInZpZGVvIik7CiAgICAgICAgIH0KICAgICB9
CiAgICAgbV9pbnRlcmZhY2VzLT5kZWxlZ2F0ZSgpLT5wb3N0VGFzayhuZXcgUlRDU3RhdHNSZXF1
ZXN0U3VjY2VlZGVkVGFzayh0aGlzLCByZXF1ZXN0LCByZXNwb25zZSkpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUzNWJk
M2Y2MDBjYTY1OTk2YWJhOGVhNDIyYWQ2ZTk5NGQxNGFhMmUuLjBhMjI2Y2M0YjNmYzc2ZTdjMGU1
Njk2M2U3NjU2ZTgwNzA2ZWQ2MDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMy0wOCAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dGVkIG5ldyBBUEkgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMzMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sOgorCiAyMDEzLTAzLTAyICBaYW4gRG9iZXJz
ZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTQ0NTE3
KTogSW5kZXhlZERCIGxheW91dCB0ZXN0IGZhaWx1cmVzIG9uIEdUSwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0
YXRzLWV4cGVjdGVkLnR4dAppbmRleCBhNmQ3NTIyN2UwNDE4YTI4M2QwZjdmYmU2MGYzNzM3YWZk
Njk2MTZlLi42YmVjNmU3NWRhN2M0Mzk3NTc3Mzc4NzA4Y2VkZDM2MzExMjc0MTkwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dApAQCAtMTcsNiArMTcsMTMgQEAgUEFTUyB0aW1l
c3RhbXAgaXMgPj0gc3RhcnRUaW1lCiBQQVNTIGxvY2FsLm5hbWVzKCkubGVuZ3RoIGlzID49IDEK
IFBBU1MgbG9jYWwubmFtZXMoKS5pbmRleE9mKCJ0eXBlIikgaXMgPj0gMAogUEFTUyBsb2NhbC5z
dGF0KCJ0eXBlIikgaXMgImF1ZGlvIgorUEFTUyByZXMudGltZXN0YW1wIGlzID49IHN0YXJ0VGlt
ZQorUEFTUyByZXMuaWQgaXMgbm9uLW51bGwuCitQQVNTIHJlcy5uYW1lcygpLmxlbmd0aCBpcyA+
PSAxCitQQVNTIHJlcy5uYW1lcygpLmluZGV4T2YoInR5cGUiKSBpcyA+PSAwCitQQVNTIHJlcy5z
dGF0KCJ0eXBlIikgaXMgImF1ZGlvIgorUEFTUyBzdGF0dXNfZy5uYW1lZEl0ZW0ocmVzLmlkKSBp
cyBub24tbnVsbC4KK1BBU1Mgc3RhdHVzX2dbcmVzLmlkXSBpcyBub24tbnVsbC4KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1s
CmluZGV4IDI5ZDU4MTQ0YjVjOWQ3MWZkZjFmZWYxYzNjMTczN2U1ZTI2MGUxZDEuLjYyMjhlZmJh
NjBhYTQwM2Y4NmJiMGM1MmE3YjQ2ZGU1YmMyZjRmODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKQEAg
LTQ3LDE0ICs0NywyNyBAQCBmdW5jdGlvbiBnb3RTdHJlYW0ocykgewogZnVuY3Rpb24gc3RhdHNI
YW5kbGVyMihzdGF0dXMpCiB7CiAgICAgdGVzdFBhc3NlZCgic3RhdHNIYW5kbGVyMiB3YXMgY2Fs
bGVkIik7CisgICAgLy8gU3RhdHVzIG11c3QgYmUgYSBnbG9iYWwgdmFyaWFibGUgdG8gYmUgdXNl
ZCBpbiB0ZXN0IHN0YXRlbWVudHMuCisgICAgc3RhdHVzX2cgPSBzdGF0dXM7CiAgICAgcmVzdWx0
ID0gc3RhdHVzLnJlc3VsdCgpOwogICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdyZXN1
bHQubGVuZ3RoJywgJzInKTsKKyAgICAvLyBUaGUgImxvY2FsIiBpbnRlcmZhY2UgaXMgZGVwcmVj
YXRlZC4gS2VlcCB0ZXN0IHVudGlsIGludGVyZmFjZSBkZWxldGVkLgogICAgIGxvY2FsID0gcmVz
dWx0WzBdLmxvY2FsOwogICAgIHRpbWVzdGFtcCA9IGxvY2FsLnRpbWVzdGFtcDsKICAgICBzaG91
bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgndGltZXN0YW1wJywgJ3N0YXJ0VGltZScpOwogICAgIHNo
b3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdsb2NhbC5uYW1lcygpLmxlbmd0aCcsICcxJyk7CiAg
ICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ2xvY2FsLm5hbWVzKCkuaW5kZXhPZigidHlw
ZSIpJywgJzAnKTsKICAgICBzaG91bGRCZSgnbG9jYWwuc3RhdCgidHlwZSIpJywgJyJhdWRpbyIn
KTsKKyAgICAvLyBOZXdlciBpbnRlcmZhY2UuCisgICAgcmVzID0gcmVzdWx0WzBdOworICAgIHNo
b3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdyZXMudGltZXN0YW1wJywgJ3N0YXJ0VGltZScpOwor
ICAgIHNob3VsZEJlTm9uTnVsbCgncmVzLmlkJyk7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9y
RXF1YWwoJ3Jlcy5uYW1lcygpLmxlbmd0aCcsICcxJyk7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhh
bk9yRXF1YWwoJ3Jlcy5uYW1lcygpLmluZGV4T2YoInR5cGUiKScsICcwJyk7CisgICAgc2hvdWxk
QmUoJ3Jlcy5zdGF0KCJ0eXBlIiknLCAnImF1ZGlvIicpOworICAgIC8vIE5hbWVkIGdldHRlcjog
Q2FuIGFjY2VzcyByZXN1bHRzIGJ5IHRoZWlyIElEIHZhbHVlcy4KKyAgICBzaG91bGRCZU5vbk51
bGwoJ3N0YXR1c19nLm5hbWVkSXRlbShyZXMuaWQpJyk7CisgICAgc2hvdWxkQmVOb25OdWxsKCdz
dGF0dXNfZ1tyZXMuaWRdJyk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192293</attachid>
            <date>2013-03-08 15:09:43 -0800</date>
            <delta_ts>2013-03-08 15:48:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110333-20130309000549.patch</filename>
            <type>text/plain</type>
            <size>31912</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNzc5YmFkYmFmZjAz
YWIxNjc2YjdiNjA5ODE1MDFmMzVjMjkyY2ZhLi43MDg0OWZjZDEyN2VkODlkMjQ2MmZkZjQyY2My
NWQyYjc5NTkwOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0wOCAg
SGFyYWxkIEFsdmVzdHJhbmQgIDxodGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dGVkIG5ldyBBUEkgZm9yIFJUQ1N0YXRzUmVwb3J0IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMzMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0
YXRzUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXNwb25zZTo6V2Vi
UlRDU3RhdHNSZXNwb25zZSk6CisgICAgICAgIChXZWJSVENTdGF0c1Jlc3BvbnNlKToKKwogMjAx
My0wMi0yNiAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIEVYVF9kcmF3
X2J1ZmZlcnMgbmVlZHMgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YWZkYmJhZWY1NTdm
YWUyZjQ2YzNjZmJlNGUwMTQyMzA0MWU4ZGM1Li4yNWRlMTk4NjQ1NmMxMmM4Y2ZkYzc3NTM3NTM0
NDEzMDgwYjMxMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDMtMDggIEhh
cmFsZCBBbHZlc3RyYW5kICA8aHRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnRl
ZCBuZXcgQVBJIGZvciBSVENTdGF0c1JlcG9ydCBvYmplY3QuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBSZW1vdmVkIFJU
Q1N0YXRzRWxlbWVudCBvYmplY3QsIG1vdmVkIGl0cyBpbnRlcmZhY2UgdG8KKyAgICAgICAgUlRD
U3RhdHNSZXBvcnQuIFByZXNlcnZlZCBzb21lIGludGVyZmFjZXMgZm9yCisgICAgICAgIGJhY2t3
YXJkcyBjb21wYXRpYmlsaXR5OyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBsYXRlciBwYXRjaC4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0ZWQgYnkg
ZXh0ZW5zaW9ucyB0byBSVENQZWVyQ29ubmVjdGlvbi1zdGF0cyB0ZXN0LgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50Lmg6IFJlbW92ZWQuCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTdGF0c1JlcG9ydDo6UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6bmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNSZXBvcnQ6OmxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0
OjpyZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmFkZFN0YXRpc3Rp
Yyk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6YWRkRWxlbWVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oOgorICAgICAgICAoUlRD
U3RhdHNSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OnRpbWVzdGFt
cCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6aWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXBvcnQ6OnN0YXQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpu
YW1lZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1Jlc3BvbnNlOjphZGRSZXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25z
ZTo6YWRkU3RhdGlzdGljKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuaDoKKyAgICAgICAgKFJUQ1N0YXRzUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNw
b25zZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9y
dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3Bv
bnNlOjphZGRTdGF0aXN0aWMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jlc3BvbnNl
OjphZGRFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlQmFzZS5oOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZUJhc2UpOgorCiAyMDEzLTAz
LTAyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMTQ0NTE3KTogSW5kZXhlZERCIGxheW91dCB0ZXN0IGZhaWx1cmVzIG9uIEdUSwpk
aWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1Jl
c3BvbnNlLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVz
cG9uc2UuaAppbmRleCBjYzZmMzhlODEyOWUwNDEzMGJiMTg2MmRiYjY3ODRjNTljNWZkMTFhLi5k
YzM2NDEyZTc0M2JkOTkwMjAzYmFiZWIyYTc2ZDQzMWM3MDUzNWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaAorKysgYi9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVzcG9uc2UuaApAQCAt
MzcsOCArMzcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUlRDU3RhdHNSZXNw
b25zZSB7CiBwdWJsaWM6Ci0gICAgV2ViUlRDU3RhdHNSZXNwb25zZSgpIHsgfQogICAgIFdlYlJU
Q1N0YXRzUmVzcG9uc2UoY29uc3QgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3RoZXIpIHsgYXNzaWdu
KG90aGVyKTsgfQorICAgIFdlYlJUQ1N0YXRzUmVzcG9uc2UoKSB7IH0KICAgICB+V2ViUlRDU3Rh
dHNSZXNwb25zZSgpIHsgcmVzZXQoKTsgfQogCiAgICAgV2ViUlRDU3RhdHNSZXNwb25zZSYgb3Bl
cmF0b3I9KGNvbnN0IFdlYlJUQ1N0YXRzUmVzcG9uc2UmIG90aGVyKQpAQCAtNTEsOCArNTEsMTMg
QEAgcHVibGljOgogCiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAKKyAgICBXRUJL
SVRfRVhQT1JUIHNpemVfdCBhZGRSZXBvcnQoV2ViU3RyaW5nIGlkLCBXZWJTdHJpbmcgdHlwZSwg
ZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFkZFN0YXRpc3RpYyhz
aXplX3QgcmVwb3J0LCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKKyAgICAvLyBE
RVBSRUNBVEVECiAgICAgV0VCS0lUX0VYUE9SVCBzaXplX3QgYWRkUmVwb3J0KCk7CisgICAgLy8g
REVQUkVDQVRFRAogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRFbGVtZW50KHNpemVfdCByZXBv
cnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgLy8gREVQUkVDQVRFRAog
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgYm9vbCBp
c0xvY2FsLCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKTsKIAogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkMzAyNzNlNjM2MjFjNWEyYjYz
OTRjODY5NmRhODk4NDM0MDc5OWMyLi4wYjVlYzU2YjYyMmYyYzcyNGZmMmIwOTllZjQzNDc5MDQ2
NWEyOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI2LDcgKzIyNiw2IEBAIHNldChXZWJD
b3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2Fs
bGJhY2suaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbAot
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbAogICAgIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmlkbAogCkBAIC04NjQsNyArODYzLDYgQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwCiAgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKLSAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0SW1wbC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9u
c2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiYTZlZmYxZTFmNzljNTBm
MmU5ZjE1Zjk4YjllMmJkODgwMTgwZjQzLi5jYTJjZGM4NGQyNjQ2ODZlOWMyODJkNTYxNmQ3ZGM4
Zjg2NmY1Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTY2MSw4ICs2NjEs
NiBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTUlRDU3RhdHNDYWxsYmFjay5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNS
VENTdGF0c0NhbGxiYWNrLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c0Vs
ZW1lbnQuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNFbGVtZW50Lmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1JlcG9ydC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1JlcG9ydC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUlRDU3RhdHNSZXNwb25zZS5jcHAgXApAQCAtMTI2NSw3ICsxMjYzLDYgQEAgZG9t
X2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbCBcCi0JJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25hdmlnYXRv
cmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaWRsIFwKQEAgLTE5NzUsOCArMTk3
Miw2IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0SW1wbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzQ2FsbGJhY2suaCBcCi0JU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0VsZW1lbnQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVwb3J0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcG9ydC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVxdWVzdEltcGwuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjI0MTY3M2JlODVlMDA3M2M3Mjk0NmQ4MGZiOGU1YWI3NDVhZWQ5Ny4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiUlRDU3RhdHNFbGVtZW50LmgiCi0KLSNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
UGFzc1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IFJUQ1N0YXRzRWxlbWVudDo6Y3JlYXRlKGRvdWJs
ZSB0aW1lc3RhbXApCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c0VsZW1lbnQo
dGltZXN0YW1wKSk7Ci19Ci0KLVJUQ1N0YXRzRWxlbWVudDo6UlRDU3RhdHNFbGVtZW50KGRvdWJs
ZSB0aW1lc3RhbXApCi0gICAgOiBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCi17Ci19Ci0KLVN0cmlu
ZyBSVENTdGF0c0VsZW1lbnQ6OnN0YXQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAotewotICAg
IHJldHVybiBtX3N0YXRzLmdldChuYW1lKTsKLX0KLQotVmVjdG9yPFN0cmluZz4gUlRDU3RhdHNF
bGVtZW50OjpuYW1lcygpIGNvbnN0Ci17Ci0gICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OwotICAg
IGZvciAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zdGF0
cy5iZWdpbigpOwotICAgICAgICBpdCAhPSBtX3N0YXRzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAg
IHJlc3VsdC5hcHBlbmQoaXQtPmtleSk7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0K
LXZvaWQgUlRDU3RhdHNFbGVtZW50OjphZGRTdGF0aXN0aWMoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIG1fc3RhdHMuYWRkKG5hbWUsIHZhbHVlKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
RWxlbWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMmQ0YWNmMGJiMjEwZThh
OWYxMjg1MDQ2NDlkMGY2N2RmOGQ5OTY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNFbGVtZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgot
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFJUQ1N0YXRzRWxlbWVudF9oCi0jZGVmaW5lIFJUQ1N0YXRzRWxlbWVudF9oCi0K
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSVENTdGF0c0VsZW1lbnQgOiBwdWJs
aWMgUmVmQ291bnRlZDxSVENTdGF0c0VsZW1lbnQ+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IGNyZWF0ZShkb3VibGUgdGltZXN0YW1wKTsKLSAgICBk
b3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KLSAgICBTdHJp
bmcgc3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwotICAgIFZlY3RvcjxTdHJpbmc+IG5h
bWVzKCkgY29uc3Q7Ci0gICAgdm9pZCBhZGRTdGF0aXN0aWMoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSVENTdGF0c0Vs
ZW1lbnQoZG91YmxlIHRpbWVzdGFtcCk7Ci0KLSAgICBkb3VibGUgbV90aW1lc3RhbXA7Ci0gICAg
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zdGF0czsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIFJUQ1N0YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiZDQzMzJjNDQ0Y2UzMjk3ZGMxNDYxZjA4MzU1NWQ4NmUy
M2IwYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsCisrKyAv
ZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIENvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVy
ZmFjZSBSVENTdGF0c0VsZW1lbnQgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRlIHRpbWVz
dGFtcDsKLSAgICBET01TdHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFtZSk7Ci0gICAgc2VxdWVu
Y2U8RE9NU3RyaW5nPiBuYW1lcygpOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKaW5kZXggYTU2MTZkNTllOWZhMDJj
OGMyM2U5OGJkOGY1NTY4ZTUzYWFhNDRjMi4uNmFmZWEyMGYyYmFkN2JlY2I3YmUwMmYwYmE4NmE1
ODQwMTdjOGY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKQEAgLTI4LDM3ICsyOCw2MSBAQAogCiAjaW5jbHVkZSAi
UlRDU3RhdHNSZXBvcnQuaCIKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBSVENTdGF0
c1JlcG9ydDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRzUmVw
b3J0KCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoImlubmVyIGZh
a2UgSUQiLCAiaW5uZXIgZmFrZSB0eXBlIiwgMCkpOwogfQogCi1SVENTdGF0c1JlcG9ydDo6UlRD
U3RhdHNSZXBvcnQoKQorUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gUlRDU3RhdHNSZXBvcnQ6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGRvdWJsZSB0aW1l
c3RhbXApCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c1JlcG9ydChpZCwgdHlw
ZSwgdGltZXN0YW1wKSk7CiB9CiAKLXZvaWQgUlRDU3RhdHNSZXBvcnQ6OmFkZEVsZW1lbnQoYm9v
bCBpc0xvY2FsLCBkb3VibGUgdGltZXN0YW1wKQorUlRDU3RhdHNSZXBvcnQ6OlJUQ1N0YXRzUmVw
b3J0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYgdHlwZSwgZG91YmxlIHRpbWVzdGFt
cCkKKyAgICA6IG1faWQoaWQpCisgICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fdGltZXN0YW1w
KHRpbWVzdGFtcCkKIHsKLSAgICBpZiAoaXNMb2NhbCkgewotICAgICAgICBBU1NFUlQoIW1fbG9j
YWwpOwotICAgICAgICBtX2xvY2FsID0gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUodGltZXN0YW1w
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBBU1NFUlQoIW1fcmVtb3RlKTsKLSAgICBt
X3JlbW90ZSA9IFJUQ1N0YXRzRWxlbWVudDo6Y3JlYXRlKHRpbWVzdGFtcCk7CiB9CiAKLXZvaWQg
UlRDU3RhdHNSZXBvcnQ6OmFkZFN0YXRpc3RpYyhib29sIGlzTG9jYWwsIFN0cmluZyBuYW1lLCBT
dHJpbmcgdmFsdWUpCitWZWN0b3I8U3RyaW5nPiBSVENTdGF0c1JlcG9ydDo6bmFtZXMoKSBjb25z
dAogewotICAgIGlmIChpc0xvY2FsKSB7Ci0gICAgICAgIEFTU0VSVChtX2xvY2FsKTsKLSAgICAg
ICAgbV9sb2NhbC0+YWRkU3RhdGlzdGljKG5hbWUsIHZhbHVlKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBBU1NFUlQobV9yZW1vdGUpOwotICAgICAgICBtX3JlbW90ZS0+YWRkU3RhdGlzdGljKG5h
bWUsIHZhbHVlKTsKKyAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7CisgICAgZm9yIChIYXNoTWFw
PFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N0YXRzLmJlZ2luKCk7IGl0
ICE9IG1fc3RhdHMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChpdC0+a2V5
KTsKICAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworY29uc3QgUGFzc1JlZlB0cjxSVENT
dGF0c1JlcG9ydD4gUlRDU3RhdHNSZXBvcnQ6OmxvY2FsKCkKK3sKKyAgICByZXR1cm4gdGhpczsK
K30KKworY29uc3QgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gUlRDU3RhdHNSZXBvcnQ6OnJl
bW90ZSgpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXBvcnQ6OmFk
ZFN0YXRpc3RpYyhjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7Cisg
ICAgbV9zdGF0cy5hZGQobmFtZSwgdmFsdWUpOworfQorCit2b2lkIFJUQ1N0YXRzUmVwb3J0Ojph
ZGRFbGVtZW50KGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCkKK3sKKyAgICAvLyBXZSBp
Z25vcmUgaXNMb2NhbC4KKyAgICBtX3RpbWVzdGFtcCA9IHRpbWVzdGFtcDsKK30KKwordm9pZCBS
VENTdGF0c1JlcG9ydDo6YWRkU3RhdGlzdGljKGJvb2wgaXNMb2NhbCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIC8vIFdlIGlnbm9yZSBpc0xvY2FsLgor
ICAgIGFkZFN0YXRpc3RpYyhuYW1lLCB2YWx1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaAppbmRleCAzZDBjY2NmNTU4NDRhMjE0ODdkNjcyNzI4MTEzMzQ4ZDI4ZGM4YzU5Li45
MjhmOWM1YmI1NWFmM2Y5NGRkZWEyNjIyMzkzODkzZGM0MmFmN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCkBAIC0yNSw3
ICsyNSw3IEBACiAjaWZuZGVmIFJUQ1N0YXRzUmVwb3J0X2gKICNkZWZpbmUgUlRDU3RhdHNSZXBv
cnRfaAogCi0jaW5jbHVkZSAiUlRDU3RhdHNFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzUsMTkgKzM1LDMzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUlRDU3RhdHNSZXBvcnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSVENTdGF0c1JlcG9ydD4gewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1N0
YXRzUmVwb3J0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3RyaW5nJiB0eXBlLCBk
b3VibGUgdGltZXN0YW1wKTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZSgpOwogCi0gICAgY29uc3QgUGFzc1JlZlB0cjxSVENT
dGF0c0VsZW1lbnQ+IGxvY2FsKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbC5nZXQoKTsgfQotICAg
IGNvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiByZW1vdGUoKSBjb25zdCB7IHJldHVy
biBtX3JlbW90ZS5nZXQoKTsgfQorICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVy
biBtX3RpbWVzdGFtcDsgfQorICAgIFN0cmluZyBpZCgpIHsgcmV0dXJuIG1faWQ7IH0KKyAgICBT
dHJpbmcgc3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIHsgcmV0dXJuIG1fc3RhdHMuZ2V0KG5hbWUp
OyB9CisgICAgVmVjdG9yPFN0cmluZz4gbmFtZXMoKSBjb25zdDsKIAorICAgIC8vIERFUFJFQ0FU
RUQKKyAgICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiBsb2NhbCgpOworICAgIC8v
IERFUFJFQ0FURUQKKyAgICBjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiByZW1vdGUo
KTsKKworICAgIHZvaWQgYWRkU3RhdGlzdGljKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSk7CisgICAgLy8gREVQUkVDQVRFRAogICAgIHZvaWQgYWRkRWxlbWVudChib29s
IGlzTG9jYWwsIGRvdWJsZSB0aW1lc3RhbXApOwotICAgIHZvaWQgYWRkU3RhdGlzdGljKGJvb2wg
aXNMb2NhbCwgU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSk7CisgICAgLy8gREVQUkVDQVRFRAor
ICAgIHZvaWQgYWRkU3RhdGlzdGljKGJvb2wgaXNMb2NhbCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKIAogcHJpdmF0ZToKLSAgICBSVENTdGF0c1JlcG9ydCgpOwor
ICAgIFJUQ1N0YXRzUmVwb3J0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYgdHlwZSwg
ZG91YmxlIHRpbWVzdGFtcCk7CiAKLSAgICBSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBtX2xvY2Fs
OwotICAgIFJlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IG1fcmVtb3RlOworICAgIFN0cmluZyBtX2lk
OworICAgIFN0cmluZyBtX3R5cGU7CisgICAgZG91YmxlIG1fdGltZXN0YW1wOworICAgIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IG1fc3RhdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVwb3J0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaWRsCmluZGV4IGZlNmY3ZjMxMTUyNjk4MDhiYzgyMjk5NzQ0YmQwODg1ZmFkY2VkMDYu
LjFkNmQ3YjI3NmU1MzJjNzFlYTE5ZTBhN2FkNGEwZjVlM2I0YTA1MjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCkBA
IC0yNiw2ICsyNiwxMSBAQAogICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKICAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFjZSBSVENTdGF0c1JlcG9ydCB7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0YXRzRWxlbWVudCBsb2NhbDsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgUlRDU3RhdHNFbGVtZW50IHJlbW90ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
RGF0ZSB0aW1lc3RhbXA7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpZDsKKyAg
ICBET01TdHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFtZSk7CisgICAgc2VxdWVuY2U8RE9NU3Ry
aW5nPiBuYW1lcygpOworICAgIC8vIERFUFJFQ0FURUQgLSBmYWtlIGZvciBvbGQgUlRDU3RhdHNF
bGVtZW50IG9iamVjdC4KKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU3RhdHNSZXBvcnQgbG9j
YWw7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0YXRzUmVwb3J0IHJlbW90ZTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVz
cG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlLmNwcAppbmRleCBlMzc1Y2JlZDBiMTNkMTVkMDAxYTUxNDNjY2ZmMWE2MThiMzAwMmNj
Li40OWI2NTJlOGY0MGMwNjljZDcyYjExN2ZkMDg3MjZlMDdjMjE3OGJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5j
cHAKQEAgLTM5LDEyICszOSwzMyBAQCBSVENTdGF0c1Jlc3BvbnNlOjpSVENTdGF0c1Jlc3BvbnNl
KCkKIHsKIH0KIAotc2l6ZV90IFJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9ydCgpCitQYXNzUmVm
UHRyPFJUQ1N0YXRzUmVwb3J0PiBSVENTdGF0c1Jlc3BvbnNlOjpuYW1lZEl0ZW0oY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChtX2lkbWFwLmZpbmQobmFtZSkgIT0gbV9pZG1h
cC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIG1fcmVzdWx0W21faWRtYXAuZ2V0KG5hbWUpXTsKKyAg
ICByZXR1cm4gMDsKK30KKworc2l6ZV90IFJUQ1N0YXRzUmVzcG9uc2U6OmFkZFJlcG9ydChTdHJp
bmcgaWQsIFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQogewotICAgIG1fcmVzdWx0LmFw
cGVuZChSVENTdGF0c1JlcG9ydDo6Y3JlYXRlKCkpOworICAgIG1fcmVzdWx0LmFwcGVuZChSVENT
dGF0c1JlcG9ydDo6Y3JlYXRlKGlkLCB0eXBlLCB0aW1lc3RhbXApKTsKKyAgICBtX2lkbWFwLmFk
ZChpZCwgbV9yZXN1bHQuc2l6ZSgpIC0gMSk7CiAgICAgcmV0dXJuIG1fcmVzdWx0LnNpemUoKSAt
IDE7CiB9CiAKK3ZvaWQgUlRDU3RhdHNSZXNwb25zZTo6YWRkU3RhdGlzdGljKHNpemVfdCByZXBv
cnQsIFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpCit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04ocmVwb3J0ID49IDAgJiYgcmVwb3J0IDwgbV9yZXN1bHQuc2l6ZSgpKTsK
KyAgICBtX3Jlc3VsdFtyZXBvcnRdLT5hZGRTdGF0aXN0aWMobmFtZSwgdmFsdWUpOworfQorCisv
LyBERVBSRUNBVEVECitzaXplX3QgUlRDU3RhdHNSZXNwb25zZTo6YWRkUmVwb3J0KCkKK3sKKyAg
ICBTdHJpbmcgZmFrZUlkID0gU3RyaW5nOjpmb3JtYXQoIkZha2UgSUQgJWx1IiwgKHVuc2lnbmVk
IGxvbmcpIG1fcmVzdWx0LnNpemUoKSk7CisgICAgcmV0dXJuIGFkZFJlcG9ydChmYWtlSWQsICJu
byB0eXBlIiwgMCk7Cit9CisKIHZvaWQgUlRDU3RhdHNSZXNwb25zZTo6YWRkRWxlbWVudChzaXpl
X3QgcmVwb3J0LCBib29sIGlzTG9jYWwsIGRvdWJsZSB0aW1lc3RhbXApCiB7CiAgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVwb3J0ID49IDAgJiYgcmVwb3J0IDwgbV9yZXN1
bHQuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmgKaW5kZXggZDFiY2NjMzdjNzI0ZDhlNWUyZjY3ODg4MDZiNDRm
OTRiNDczNmJhYy4uNTY2OGE0ZTQyNzUzZGU5MDM3ZGQwZmRkNDk4MDIwZmJkMGMxM2YwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3Bv
bnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgi
CiAjaW5jbHVkZSAiUlRDU3RhdHNSZXBvcnQuaCIKICNpbmNsdWRlICJSVENTdGF0c1Jlc3BvbnNl
QmFzZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDQsMTMgKzQ1LDIxIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8
UlRDU3RhdHNSZXBvcnQ+ID4mIHJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9Owog
CisgICAgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSk7CisKKyAgICB2aXJ0dWFsIHNpemVfdCBhZGRSZXBvcnQoU3RyaW5nIGlkLCBT
dHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKSBP
VkVSUklERTsKKyAgICAvLyBERVBSRUNBVEVECiAgICAgdmlydHVhbCBzaXplX3QgYWRkUmVwb3J0
KCkgT1ZFUlJJREU7CisgICAgLy8gREVQUkVDQVRFRAogICAgIHZpcnR1YWwgdm9pZCBhZGRFbGVt
ZW50KHNpemVfdCByZXBvcnQsIGJvb2wgaXNMb2NhbCwgZG91YmxlIHRpbWVzdGFtcCkgT1ZFUlJJ
REU7CisgICAgLy8gREVQUkVDQVRFRAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdGF0aXN0aWMoc2l6
ZV90IHJlcG9ydCwgYm9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKSBPVkVS
UklERTsKIAogcHJpdmF0ZToKICAgICBSVENTdGF0c1Jlc3BvbnNlKCk7CiAgICAgVmVjdG9yPFJl
ZlB0cjxSVENTdGF0c1JlcG9ydD4gPiBtX3Jlc3VsdDsKKyAgICBIYXNoTWFwPFN0cmluZywgaW50
PiBtX2lkbWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKaW5k
ZXggYWJjZDE5ODExYTRjNGM4ZTkyY2E2YTY3ZmY4OTBkYjZlYjQ0NTA0YS4uZjZlOGJiOTczNDRm
YzhhN2E2MTc1ZWMzM2VhMTJjODQ3NDBlNGNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsCkBAIC0yMyw3ICsy
Myw5IEBACiAgKi8KIAogWwotICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQorICAgIENvbmRp
dGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICBOYW1lZEdldHRlcgogXSBpbnRlcmZhY2UgUlRDU3Rh
dHNSZXNwb25zZSB7CiAgICAgc2VxdWVuY2U8UlRDU3RhdHNSZXBvcnQ+IHJlc3VsdCgpOworICAg
IFJUQ1N0YXRzUmVwb3J0IG5hbWVkSXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgbmFtZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDZkNWE1Yzk4MzYyNThj
YmE0ZTExMjVkM2YwZWQ1MTIxNDgyZDUzNDcuLjI1YTUxYjQ5MDBmNjI1MTYxZWUzZjk4NjAyZTlm
MWU1NzY2YTEwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE2NCw3ICsxNjQsNiBAQAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxs
YmFjay5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxs
YmFjay5pZGwnLAotICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVt
ZW50LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9y
dC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmln
YXRvckNvbnRlbnRVdGlscy5pZGwnLApAQCAtOTE0LDggKzkxMyw2IEBACiAgICAgICAgICAgICAn
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oJywKICAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oJywKLSAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzRWxlbWVudC5jcHAnLAotICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNFbGVtZW50LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXBvcnQuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVwb3J0LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0SW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXNwb25zZS5jcHAKaW5kZXgg
ZTY5Yzc1OTViOTYyMmE1MDE2NDg3MGQ5YWEzZDhjNzM0MWNhNTg1OS4uZjA4MTA3MTU5ODE1ZjA2
N2FjY2IyMTlkNjVhZGVjZmI4OTRjOGY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1Jlc3BvbnNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVzcG9uc2Uu
Y3BwCkBAIC01NSwxOCArNTUsMzMgQEAgV2ViUlRDU3RhdHNSZXNwb25zZTo6b3BlcmF0b3IgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1N0YXRzUmVzcG9uc2VCYXNlPigpIGMKICAgICByZXR1
cm4gbV9wcml2YXRlLmdldCgpOwogfQogCitzaXplX3QgV2ViUlRDU3RhdHNSZXNwb25zZTo6YWRk
UmVwb3J0KFdlYlN0cmluZyBpZCwgV2ViU3RyaW5nIHR5cGUsIGRvdWJsZSB0aW1lc3RhbXApCit7
CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVybiBtX3ByaXZhdGUt
PmFkZFJlcG9ydChpZCwgdHlwZSwgdGltZXN0YW1wKTsKK30KKwordm9pZCBXZWJSVENTdGF0c1Jl
c3BvbnNlOjphZGRTdGF0aXN0aWMoc2l6ZV90IHJlcG9ydCwgV2ViU3RyaW5nIG5hbWUsIFdlYlN0
cmluZyB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAgbV9w
cml2YXRlLT5hZGRTdGF0aXN0aWMocmVwb3J0LCBuYW1lLCB2YWx1ZSk7Cit9CisKIHNpemVfdCBX
ZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRSZXBvcnQoKQogeworICAgIEFTU0VSVCghbV9wcml2YXRl
LmlzTnVsbCgpKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT5hZGRSZXBvcnQoKTsKIH0KIAogdm9p
ZCBXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRFbGVtZW50KHNpemVfdCByZXBvcnQsIGJvb2wgaXNM
b2NhbCwgZG91YmxlIHRpbWVzdGFtcCkKIHsKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwo
KSk7CiAgICAgbV9wcml2YXRlLT5hZGRFbGVtZW50KHJlcG9ydCwgaXNMb2NhbCwgdGltZXN0YW1w
KTsKIH0KIAogdm9pZCBXZWJSVENTdGF0c1Jlc3BvbnNlOjphZGRTdGF0aXN0aWMoc2l6ZV90IHJl
cG9ydCwgYm9vbCBpc0xvY2FsLCBXZWJTdHJpbmcgbmFtZSwgV2ViU3RyaW5nIHZhbHVlKQogewor
ICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKICAgICBtX3ByaXZhdGUtPmFkZFN0YXRp
c3RpYyhyZXBvcnQsIGlzTG9jYWwsIG5hbWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZUJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2VCYXNl
LmgKaW5kZXggOTFjYmZhNjg2MzgzNTk4ODM3YTY1OTU1YTU0ZmE2NDQxYWY3MDk5MS4uYzdmYTY4
ZTdlZTdkMjg4OTQ1MThjYTU4OTllZjc5NWU2MjRhMjk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZUJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlQmFzZS5o
CkBAIC0zNyw4ICszNywxMyBAQCBjbGFzcyBSVENTdGF0c1Jlc3BvbnNlQmFzZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
UlRDU3RhdHNSZXNwb25zZUJhc2UoKSB7IH0KIAorICAgIHZpcnR1YWwgc2l6ZV90IGFkZFJlcG9y
dChTdHJpbmcgaWQsIFN0cmluZyB0eXBlLCBkb3VibGUgdGltZXN0YW1wKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBTdHJpbmcgbmFtZSwgU3RyaW5n
IHZhbHVlKSA9IDA7CisgICAgLy8gREVQUkVDQVRFRCAtIHVzZSBhZGRSZXBvcnQoaWQsIHR5cGUs
IHRpbWVzdGFtcCkKICAgICB2aXJ0dWFsIHNpemVfdCBhZGRSZXBvcnQoKSA9IDA7CisgICAgLy8g
REVQUkVDQVRFRCAtIHVzZSBhZGRSZXBvcnQoaWQsIHR5cGUsIHRpbWVzdGFtcCkKICAgICB2aXJ0
dWFsIHZvaWQgYWRkRWxlbWVudChzaXplX3QgcmVwb3J0LCBib29sIGlzTG9jYWwsIGRvdWJsZSB0
aW1lc3RhbXApID0gMDsKKyAgICAvLyBERVBSRUNBVEVEIC0gdXNlIGFkZFN0YXRpc3RpYyhyZXBv
cnQsIG5hbWUsIHZhbHVlKQogICAgIHZpcnR1YWwgdm9pZCBhZGRTdGF0aXN0aWMoc2l6ZV90IHJl
cG9ydCwgYm9vbCBpc0xvY2FsLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKSA9IDA7CiB9Owog
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmY4
ZDBmYTBkN2NlZGRkNjU5ODliYzJlNjRmYWYxZDBiNGY0NzJjOC4uYzU1NzYzYjEzMmVlNDdiYzI2
Zjg0NDliZWQwNWRlNTNiMGMzY2U0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAzLTA4ICBIYXJhbGQgQWx2
ZXN0cmFuZCAgPGh0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50ZWQgbmV3IEFQ
SSBmb3IgUlRDU3RhdHNSZXBvcnQgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6Ok1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKToKKwog
MjAxMy0wMi0yNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3Ry
aW5nSGFzaGVyIGZ1bmN0aW9ucyByZXF1aXJlIGFsaWdubWVudCB0aGF0IGNhbGwgc2l0ZXMgZG8g
bm90IGFsbCBndWFyYW50ZWUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggYzA1M2QyZGM2Zjg4NmE3ZDM2NGUyOGJhODBi
Zjc0OWU0YzNhOGZmYi4uYTlkMGI3NTkzODRiYzVmYjVmNzljNTkyYWJjNzViNzA3NGE1NTQyZCAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5jcHAKQEAgLTI3NSwxOSArMjc1LDE0IEBAIHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlcjo6Z2V0U3RhdHMoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0CiAg
ICAgaWYgKHJlcXVlc3QuaGFzU2VsZWN0b3IoKSkgewogICAgICAgICBXZWJNZWRpYVN0cmVhbSBz
dHJlYW0gPSByZXF1ZXN0LnN0cmVhbSgpOwogICAgICAgICAvLyBGSVhNRTogVGhlcmUgaXMgbm8g
Y2hlY2sgdGhhdCB0aGUgZmV0Y2hlZCB2YWx1ZXMgYXJlIHZhbGlkLgotICAgICAgICBzaXplX3Qg
cmVwb3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQoKTsKLSAgICAgICAgcmVzcG9uc2UuYWRk
RWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVudERhdGUpOwotICAgICAgICByZXNwb25z
ZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsIHRydWUsICJ0eXBlIiwgInZpZGVvIik7CisgICAg
ICAgIHNpemVfdCByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgiTW9jayB2aWRlbyIs
ICJzc3JjIiwgY3VycmVudERhdGUpOworICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVw
b3J0SW5kZXgsICJ0eXBlIiwgInZpZGVvIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBtX3N0cmVhbUNvdW50OyArK2kpIHsKLSAgICAgICAgICAgIHNpemVfdCBy
ZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgpOwotICAgICAgICAgICAgcmVzcG9uc2Uu
YWRkRWxlbWVudChyZXBvcnRJbmRleCwgdHJ1ZSwgY3VycmVudERhdGUpOwotICAgICAgICAgICAg
cmVzcG9uc2UuYWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCB0cnVlLCAidHlwZSIsICJhdWRpbyIp
OwotICAgICAgICAgICAgcmVwb3J0SW5kZXggPSByZXNwb25zZS5hZGRSZXBvcnQoKTsKLSAgICAg
ICAgICAgIHJlc3BvbnNlLmFkZEVsZW1lbnQocmVwb3J0SW5kZXgsIHRydWUsIGN1cnJlbnREYXRl
KTsKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZFN0YXRpc3RpYyhyZXBvcnRJbmRleCwgdHJ1ZSwg
InR5cGUiLCAidmlkZW8iKTsKLSAgICAgICAgICAgIC8vIFdlIGFkZCBhbiBlbXB0eSByZW1vdGUg
cmVwb3J0IGVsZW1lbnQuCi0gICAgICAgICAgICByZXNwb25zZS5hZGRFbGVtZW50KHJlcG9ydElu
ZGV4LCBmYWxzZSwgY3VycmVudERhdGUpOworICAgICAgICAgICAgc2l6ZV90IHJlcG9ydEluZGV4
ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCJNb2NrIGF1ZGlvIiwgInNzcmMiLCBjdXJyZW50RGF0ZSk7
CisgICAgICAgICAgICByZXNwb25zZS5hZGRTdGF0aXN0aWMocmVwb3J0SW5kZXgsICJ0eXBlIiwg
ImF1ZGlvIik7CisgICAgICAgICAgICByZXBvcnRJbmRleCA9IHJlc3BvbnNlLmFkZFJlcG9ydCgi
TW9jayB2aWRlbyIsICJzc3JjIiwgY3VycmVudERhdGUpOworICAgICAgICAgICAgcmVzcG9uc2Uu
YWRkU3RhdGlzdGljKHJlcG9ydEluZGV4LCAidHlwZSIsICJ2aWRlbyIpOwogICAgICAgICB9CiAg
ICAgfQogICAgIG1faW50ZXJmYWNlcy0+ZGVsZWdhdGUoKS0+cG9zdFRhc2sobmV3IFJUQ1N0YXRz
UmVxdWVzdFN1Y2NlZWRlZFRhc2sodGhpcywgcmVxdWVzdCwgcmVzcG9uc2UpKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBl
MzViZDNmNjAwY2E2NTk5NmFiYThlYTQyMmFkNmU5OTRkMTRhYTJlLi4wYTIyNmNjNGIzZmM3NmU3
YzBlNTY5NjNlNzY1NmU4MDcwNmVkNjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDMt
MDggIEhhcmFsZCBBbHZlc3RyYW5kICA8aHRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBs
ZW1lbnRlZCBuZXcgQVBJIGZvciBSVENTdGF0c1JlcG9ydCBvYmplY3QuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMzMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbDoKKwogMjAxMy0wMy0wMiAgWmFuIERv
YmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE0
NDUxNyk6IEluZGV4ZWREQiBsYXlvdXQgdGVzdCBmYWlsdXJlcyBvbiBHVEsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1zdGF0cy1leHBlY3RlZC50eHQKaW5kZXggYTZkNzUyMjdlMDQxOGEyODNkMGY3ZmJlNjBmMzcz
N2FmZDY5NjE2ZS4uNmJlYzZlNzVkYTdjNDM5NzU3NzM3ODcwOGNlZGQzNjMxMTI3NDE5MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1z
dGF0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQKQEAgLTE3LDYgKzE3LDEzIEBAIFBBU1Mg
dGltZXN0YW1wIGlzID49IHN0YXJ0VGltZQogUEFTUyBsb2NhbC5uYW1lcygpLmxlbmd0aCBpcyA+
PSAxCiBQQVNTIGxvY2FsLm5hbWVzKCkuaW5kZXhPZigidHlwZSIpIGlzID49IDAKIFBBU1MgbG9j
YWwuc3RhdCgidHlwZSIpIGlzICJhdWRpbyIKK1BBU1MgcmVzLnRpbWVzdGFtcCBpcyA+PSBzdGFy
dFRpbWUKK1BBU1MgcmVzLmlkIGlzIG5vbi1udWxsLgorUEFTUyByZXMubmFtZXMoKS5sZW5ndGgg
aXMgPj0gMQorUEFTUyByZXMubmFtZXMoKS5pbmRleE9mKCJ0eXBlIikgaXMgPj0gMAorUEFTUyBy
ZXMuc3RhdCgidHlwZSIpIGlzICJhdWRpbyIKK1BBU1Mgc3RhdHVzX2cubmFtZWRJdGVtKHJlcy5p
ZCkgaXMgbm9uLW51bGwuCitQQVNTIHN0YXR1c19nW3Jlcy5pZF0gaXMgbm9uLW51bGwuCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMu
aHRtbAppbmRleCAyOWQ1ODE0NGI1YzlkNzFmZGYxZmVmMWMzYzE3MzdlNWUyNjBlMWQxLi42MjI4
ZWZiYTYwYWE0MDNmODZiYjBjNTJhN2I0NmRlNWJjMmY0Zjg4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1s
CkBAIC00NywxNCArNDcsMjcgQEAgZnVuY3Rpb24gZ290U3RyZWFtKHMpIHsKIGZ1bmN0aW9uIHN0
YXRzSGFuZGxlcjIoc3RhdHVzKQogewogICAgIHRlc3RQYXNzZWQoInN0YXRzSGFuZGxlcjIgd2Fz
IGNhbGxlZCIpOworICAgIC8vIFN0YXR1cyBtdXN0IGJlIGEgZ2xvYmFsIHZhcmlhYmxlIHRvIGJl
IHVzZWQgaW4gdGVzdCBzdGF0ZW1lbnRzLgorICAgIHN0YXR1c19nID0gc3RhdHVzOwogICAgIHJl
c3VsdCA9IHN0YXR1cy5yZXN1bHQoKTsKICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgn
cmVzdWx0Lmxlbmd0aCcsICcyJyk7CisgICAgLy8gVGhlICJsb2NhbCIgaW50ZXJmYWNlIGlzIGRl
cHJlY2F0ZWQuIEtlZXAgdGVzdCB1bnRpbCBpbnRlcmZhY2UgZGVsZXRlZC4KICAgICBsb2NhbCA9
IHJlc3VsdFswXS5sb2NhbDsKICAgICB0aW1lc3RhbXAgPSBsb2NhbC50aW1lc3RhbXA7CiAgICAg
c2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3RpbWVzdGFtcCcsICdzdGFydFRpbWUnKTsKICAg
ICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgnbG9jYWwubmFtZXMoKS5sZW5ndGgnLCAnMScp
OwogICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCdsb2NhbC5uYW1lcygpLmluZGV4T2Yo
InR5cGUiKScsICcwJyk7CiAgICAgc2hvdWxkQmUoJ2xvY2FsLnN0YXQoInR5cGUiKScsICciYXVk
aW8iJyk7CisgICAgLy8gTmV3ZXIgaW50ZXJmYWNlLgorICAgIHJlcyA9IHJlc3VsdFswXTsKKyAg
ICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVzLnRpbWVzdGFtcCcsICdzdGFydFRpbWUn
KTsKKyAgICBzaG91bGRCZU5vbk51bGwoJ3Jlcy5pZCcpOworICAgIHNob3VsZEJlR3JlYXRlclRo
YW5PckVxdWFsKCdyZXMubmFtZXMoKS5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlR3JlYXRl
clRoYW5PckVxdWFsKCdyZXMubmFtZXMoKS5pbmRleE9mKCJ0eXBlIiknLCAnMCcpOworICAgIHNo
b3VsZEJlKCdyZXMuc3RhdCgidHlwZSIpJywgJyJhdWRpbyInKTsKKyAgICAvLyBOYW1lZCBnZXR0
ZXI6IENhbiBhY2Nlc3MgcmVzdWx0cyBieSB0aGVpciBJRCB2YWx1ZXMuCisgICAgc2hvdWxkQmVO
b25OdWxsKCdzdGF0dXNfZy5uYW1lZEl0ZW0ocmVzLmlkKScpOworICAgIHNob3VsZEJlTm9uTnVs
bCgnc3RhdHVzX2dbcmVzLmlkXScpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>