<?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>84886</bug_id>
          
          <creation_ts>2012-04-25 12:41:09 -0700</creation_ts>
          <short_desc>[Resource Timing] Implement cross-origin restrictions</short_desc>
          <delta_ts>2012-12-02 03:24:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/ResourceTiming/Overview.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>84883</dependson>
          <blocked>61138</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="James Simonsen">simonjam</assigned_to>
          <cc>levin+threading</cc>
    
    <cc>pan.deng</cc>
    
    <cc>sullivan</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>609980</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-04-25 12:41:09 -0700</bug_when>
    <thetext>Resources fetched from another origin should not appear in detail on the Performance Timeline. Instead, only the startTime and duration attributes should be populated. Optionally, hosts can supply a Timing-Allow-Origin header to override this behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710642</commentid>
    <comment_count>1</comment_count>
      <attachid>161925</attachid>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-09-03 07:31:14 -0700</bug_when>
    <thetext>Created attachment 161925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748609</commentid>
    <comment_count>2</comment_count>
      <attachid>170155</attachid>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-23 07:12:16 -0700</bug_when>
    <thetext>Created attachment 170155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780397</commentid>
    <comment_count>3</comment_count>
      <attachid>170155</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-30 13:58:04 -0800</bug_when>
    <thetext>Comment on attachment 170155
Patch

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

&gt; Source/WebCore/page/Performance.cpp:189
&gt; +static bool passesTimingAllowCheck(const ResourceResponse&amp; response, SecurityOrigin* securityOrigin)

I think this should happen in the PerformanceResourceTiming constructor. It&apos;s really only applicable to that class.

&gt; Source/WebCore/page/Performance.cpp:201
&gt; +    if (timingAllowOriginString != securityOrigin-&gt;toString())

The string may be a space separated list. We should check each item in it.

&gt; Source/WebCore/page/Performance.cpp:207
&gt; +void Performance::addResourceTiming(const ResourceRequest&amp; request, const ResourceResponse&amp; response, double finishTime, Document* requestingDocument, SecurityOrigin* initiatorOrigin)

We don&apos;t need to pass in the origin. You can get it from requestingDocument-&gt;securityOrigin().

&gt; Source/WebCore/page/Performance.cpp:213
&gt; +    bool allowTiming = WebCore::SecurityOrigin::create(response.url())-&gt;equal(initiatorOrigin) || passesTimingAllowCheck(response, initiatorOrigin);

allowTiming -&gt; shouldReportDetails

&gt; Source/WebCore/page/PerformanceResourceTiming.h:52
&gt; +    static PassRefPtr&lt;PerformanceResourceTiming&gt; create(const ResourceRequest&amp; request, const ResourceResponse&amp; response, double finishTime, Document* requestingDocument, bool isAllowTiming)

isAllowTiming -&gt; shouldReportDetails

&gt; Source/WebCore/page/PerformanceResourceTiming.h:74
&gt; +    PerformanceResourceTiming(const ResourceRequest&amp;, const ResourceResponse&amp;, double finishTime, Document*, bool);

This needs a name. You can only omit the name if it&apos;s clear what it is.

&gt; LayoutTests/http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html:51
&gt; +            requestUrl += &apos;?origin=http://&apos; + pageOrigin;

We should have a test where it&apos;s allowed by this parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780504</commentid>
    <comment_count>4</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-30 15:55:49 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; LayoutTests/http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html:51
&gt; &gt; +            requestUrl += &apos;?origin=http://&apos; + pageOrigin;
&gt; 
&gt; We should have a test where it&apos;s allowed by this parameter.

Sorry, I misread the code. I saw the 0&apos;s but didn&apos;t notice the greater_than. I think we&apos;re good here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780511</commentid>
    <comment_count>5</comment_count>
      <attachid>177042</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-30 16:05:42 -0800</bug_when>
    <thetext>Created attachment 177042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780512</commentid>
    <comment_count>6</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-11-30 16:06:33 -0800</bug_when>
    <thetext>In the interest of getting this landed soon, I made the suggestions. Someone else (Tony?) will have to review it still.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780905</commentid>
    <comment_count>7</comment_count>
      <attachid>177042</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-02 03:23:58 -0800</bug_when>
    <thetext>Comment on attachment 177042
Patch

Clearing flags on attachment: 177042

Committed r136329: &lt;http://trac.webkit.org/changeset/136329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780906</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-02 03:24:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161925</attachid>
            <date>2012-09-03 07:31:14 -0700</date>
            <delta_ts>2012-10-23 07:11:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84886-20120903223550.patch</filename>
            <type>text/plain</type>
            <size>36309</size>
            <attacher name="pdeng6">pan.deng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBjNzAyMDM0MTJlOGNj
NTJiM2RiYTYxMTkzYTdiOTc3ZmJmMjYxMy4uYzc5MDM3ZWI4ZjA2OGE4MjlhNzFlOTUwOGUyMGQ2
NTEzNjI2NDVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA5LTAzICBQYW4g
RGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXSBp
bXBsZW1lbnRhdGlvbiBvZiBjcm9zcyBvcmlnaW4gcmVzb3VjZSB0aW1pbmcgcmVzdHJpY3Rpb25z
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4ODYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcGxlbWVudGVkIHJlc291cmNlIHRpbWluZyBiZWhhdmlvcnMgb2YgY3Jvc3Mgb3JpZ2lu
LgorICAgICAgICBCeSBkZWZhdWx0LCBkZXRhaWxlZCB0aW1pbmcgaW5mbyBpcyBoaWRlZCBpbiBj
cm9zcyBvcmlnaW4gcmVzb3VyY2UgdGltaW5nLCBvbmx5IHN0YXJ0VGltZSwgZHVyYXRpb24sIGZl
dGNoU3RhcnQgYW5kIHJlc3BvbnNlRW5kIGNhbiBiZSBvYnNlcnZlZC4gRXhjZXB0aW9ucyBhcmUs
IHNlcnZlciBzaWRlIGFsbG93IGl0cyBvcmlnaW4gY2FuIGJlIHRpbWluZyBieSBhbm90aGVyIHRo
cm91Z2ggYSBoZWFkZXIgd2l0aCAidGltaW5nLWFsbG93LW9yaWdpbiIgZmllbGQuCisKKyAgICAg
ICAgVGVzdHM6IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJvcG9zYWwvcmVzb3VyY2UtdGltaW5n
L3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJvcG9zYWwvcmVzb3VyY2Ut
dGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3RpbWluZ19hbGxvd19jcm9zc19vcmlnaW5fcmVz
b3VyY2VfcmVxdWVzdC5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9h
ZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QpOgorICAgICAg
ICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlcjo6UmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
ZXI6OnNldFNob3VsZEJ1ZmZlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6
CisgICAgICAgIChSZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlcjo6c2V0T3JpZ2luUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBhc3Nlc1RpbWluZ0FsbG93Q2hlY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6YWRkUmVzb3VyY2VUaW1pbmcpOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUGVyZm9ybWFu
Y2UpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oOgorICAgICAgICAoUGVyZm9y
bWFuY2VFbnRyeSk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5oOgorICAg
ICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnN0YXJ0VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6cmVkaXJlY3RFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluTG9va3VwU3RhcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNvbm5lY3RTdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25uZWN0RW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rp
b25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpy
ZXF1ZXN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zzo6cmVzcG9uc2VTdGFydCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjcmVh
dGUpOgorICAgICAgICAoUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyk6CisKIDIwMTItMDctMjQg
IEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtKU0NdIFJF
R1JFU1NJT04ocjEyMjkxMik6IENvZGVHZW5lcmF0b3JKUy5wbSBzaG91bGQgbm90CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGZlN2QxZjlmMjNm
YTJjMTJhMDFlMzViNjZlYzU3MThkNjA0Njc1NDEuLjk5ZGVlNTkzY2JiYTJhNWRlM2E1YTliZTQ4
ODYzZTAxNmE0MDFjOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6
Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQ1LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIkluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQZXJm
b3JtYW5jZS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgpAQCAtNTE3LDYg
KzUxOSwxMCBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhkb3Vi
bGUgZmluaXNoVGltZSkKICAgICAgICAgZGwtPm1heWJlRmluaXNoTG9hZGluZ011bHRpcGFydENv
bnRlbnQoKTsKIAogICAgIGRvY3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5zZXRSZXNwb25zZUVu
ZChmaW5pc2hUaW1lID8gZmluaXNoVGltZSA6IChtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgPyBt
X3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgOiBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSkp
OworI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCisgICAgaWYgKG1fZnJhbWUtPnRyZWUoKS0+
cGFyZW50KCkpCisgICAgICAgIG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCktPmRvY3VtZW50KCkt
PmRvbVdpbmRvdygpLT5wZXJmb3JtYW5jZSgpLT5hZGRSZXNvdXJjZVRpbWluZyhvcmlnaW5hbFJl
cXVlc3QoKSwgbV9yZXNwb25zZSwgZmluaXNoVGltZSwgbV9yZWRpcmVjdFN0YXJ0LCBtX3JlZGly
ZWN0RW5kLCBtX2ZyYW1lLT5kb2N1bWVudCgpLCBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0Vf
VElNSU5HKQogICAgIGRvY3VtZW50TG9hZGVyKCktPmZpbmlzaGVkTG9hZGluZygpOwogICAgIFJl
c291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOwogCkBAIC02NDIsNiAr
NjQ4LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3UKICAgICBkb2N1bWVudExvYWRlcigpLT50
aW1pbmcoKS0+bWFya0ZldGNoU3RhcnQoKTsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChy
KTsKIAorICAgIHNldE9yaWdpblJlcXVlc3QocmVxdWVzdCk7CiAgICAgZG9jdW1lbnRMb2FkZXIo
KS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkTWFpblJlc291cmNlKHJlcXVlc3Qs
IG1fc3Vic3RpdHV0ZURhdGEpOwogCiAgICAgYm9vbCBkZWZlciA9IGRlZmVyc0xvYWRpbmcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCmluZGV4
IGI3ZDU2ODY2ODUzMWEzOTI1YTdhOWE1ZGQxNjUxNmM5ZTI1ZTNmNmYuLjczOGU4ZmUzYjNmMzQz
OGFlNTkyN2E1MDg1MDY3ZWMyZDQwYzk4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcApAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExOCw4ICsxMTksOCBAQCB2b2lkIFJlc291
cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciog
bG9hZGVyLCB1bnNpZwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJl
cXVlc3QobV9mcmFtZSwgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3Bv
bnNlKTsKIAotICAgIC8vIFJlcG9ydCBXZWJUaW1pbmcgZm9yIGFsbCBmcmFtZXMuCi0gICAgaWYg
KGxvYWRlciAmJiAhcmVxdWVzdC5pc051bGwoKSAmJiByZXF1ZXN0LnVybCgpID09IGxvYWRlci0+
cmVxdWVzdFVSTCgpKQorICAgIC8vIE1lYXN1cmUgdGltaW5nIGZvciBhbnkgcmVzb3VyY2UsIGFz
IHRpbWluZy1hbGxvdy1vcmlnaW4gbWF5IGJlIGNvbnRhaW5lZCBpbiByZXNwb25zZSBoZWFkZXIu
CisgICAgaWYgKGxvYWRlciAmJiAhcmVxdWVzdC5pc051bGwoKSkKICAgICAgICAgcmVxdWVzdC5z
ZXRSZXBvcnRMb2FkVGltaW5nKHRydWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCA5MzE1MTA4YWU3NjA2MWRmMDc2ZjhkMDA5YWUxMDBjMzFmMmVm
ZDRjLi5kMmFiOTBmNmFmMGUzMjFmMWM0M2IyMDk3ODcwYzIwZWI5NTA5Njk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNyBHcmFoYW0gRGVubmlzIChncmFoYW0u
ZGVubmlzQGdtYWlsLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYg
KzU3LDggQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNlTG9hZGVyOjpyZXNvdXJj
ZURhdGEoKQogUmVzb3VyY2VMb2FkZXI6OlJlc291cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSwgUmVz
b3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwg
bV9kb2N1bWVudExvYWRlcihmcmFtZS0+bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkp
CisgICAgLCBtX3JlZGlyZWN0U3RhcnQoMC4wKQorICAgICwgbV9yZWRpcmVjdEVuZCgwLjApCiAg
ICAgLCBtX2lkZW50aWZpZXIoMCkKICAgICAsIG1fcmVhY2hlZFRlcm1pbmFsU3RhdGUoZmFsc2Up
CiAgICAgLCBtX2NhbGxlZFdpbGxDYW5jZWwoZmFsc2UpCkBAIC0xOTAsNyArMTkzLDYgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVmZmVyaW5nUG9saWN5
IHNob3VsZEJ1ZmZlckRhdGEpCiAgICAgaWYgKCFzaG91bGRCdWZmZXJEYXRhKQogICAgICAgICBt
X3Jlc291cmNlRGF0YSA9IDA7CiB9Ci0gICAgCiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmFkZERh
dGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpCiB7CkBAIC0y
MzEsOCArMjMzLDE3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzCiAgICAgICAgIGZyYW1lTG9h
ZGVyKCktPm5vdGlmaWVyKCktPndpbGxTZW5kUmVxdWVzdCh0aGlzLCByZXF1ZXN0LCByZWRpcmVj
dFJlc3BvbnNlKTsKICAgICB9CiAKLSAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkp
CisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7CiAgICAgICAgIHJlc291cmNl
TG9hZFNjaGVkdWxlcigpLT5jcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQodGhpcywgcmVxdWVz
dC51cmwoKSk7CisjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlORykKKyAgICAgICAgIGlmIChyZWRp
cmVjdFJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKSB7CisgICAgICAgICAgICAgaWYgKCFt
X3JlZGlyZWN0U3RhcnQpCisgICAgICAgICAgICAgICAgIG1fcmVkaXJlY3RTdGFydCA9IHJlZGly
ZWN0UmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lOworICAgICAgICAg
ICAgIG1fcmVkaXJlY3RFbmQgPSByZWRpcmVjdFJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
LT5yZXF1ZXN0VGltZSArIHJlZGlyZWN0UmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJl
Y2VpdmVIZWFkZXJzRW5kIC8gMTAwMC4wOworICAgICAgICAgfQorI2VuZGlmIC8vIEVOQUJMRShS
RVNPVVJDRV9USU1JTkcpCisgICAgfQorCiAgICAgbV9yZXF1ZXN0ID0gcmVxdWVzdDsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCBkYmYxYWIxMWRkOTE4MzI3
ZDM1YTU5NTNmM2I1NzVmYmUzMTIyNzIwLi5hZTUyNzc5YzY1MjhhODg0MTFiYWFmZDkxOTM1MGVj
MTJlMjRmZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NTksNyArNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEZyYW1lTG9hZGVyKiBm
cmFtZUxvYWRlcigpIGNvbnN0OwogICAgICAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2Fk
ZXIoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50TG9hZGVyLmdldCgpOyB9CiAgICAgICAgIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9v
cmlnaW5hbFJlcXVlc3Q7IH0KLSAgICAgICAgCisKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNl
bChjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgICAgIFJlc291cmNlRXJyb3IgY2FuY2VsbGVk
RXJyb3IoKTsKICAgICAgICAgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoKTsKQEAgLTE2Niw3
ICsxNjcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8RnJhbWU+IG1f
ZnJhbWU7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsK
ICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwotICAgICAgICAKKyAgICAgICAg
ZG91YmxlIG1fcmVkaXJlY3RTdGFydDsKKyAgICAgICAgZG91YmxlIG1fcmVkaXJlY3RFbmQ7Cisg
ICAgICAgIHZvaWQgc2V0T3JpZ2luUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dXJlc3QpIHttX29yaWdpbmFsUmVxdWVzdCA9IHJlc291cmNlUmVxdXJlc3Q7fQorCiAgICAgcHJp
dmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVy
cm9yJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAK
aW5kZXggMzRiNzA2NWVmNjQ3OTVhYjBhMmY5YjNkZDk2Y2ViN2MwZjNkOGU0Ny4uZjM2NmYzZjFh
ODNjZjIyY2EzOGYwOTM4YTk3NGM0OGU3YjUwNjU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwxMiArMzEsMTQgQEAKICNpbmNsdWRl
ICJTdWJyZXNvdXJjZUxvYWRlci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5o
IgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVh
a0NvdW50ZXIuaD4KQEAgLTI3NSw2ICsyNzgsOSBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKQogICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBwcm90ZWN0UmVzb3VyY2UobV9yZXNvdXJjZSk7CiAgICAgbV9z
dGF0ZSA9IEZpbmlzaGluZzsKICAgICBtX3Jlc291cmNlLT5zZXRMb2FkRmluaXNoVGltZShmaW5p
c2hUaW1lKTsKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfVElNSU5HKQorICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmRvbVdpbmRvdygpLT5wZXJmb3JtYW5jZSgpLT5hZGRSZXNvdXJjZVRpbWluZyhvcmln
aW5hbFJlcXVlc3QoKSwgbV9yZXNwb25zZSwgZmluaXNoVGltZSwgbV9yZWRpcmVjdFN0YXJ0LCBt
X3JlZGlyZWN0RW5kLCBtX2ZyYW1lLT5kb2N1bWVudCgpLCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfVElNSU5HKQogICAg
IG1fcmVzb3VyY2UtPmRhdGEocmVzb3VyY2VEYXRhKCksIHRydWUpOwogICAgIG1fcmVzb3VyY2Ut
PmZpbmlzaCgpOwogICAgIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGZpbmlzaFRp
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCA5MDMzOTMwMjE5ZTYwNDEx
NTE0Y2NkZTU2ZjY2YmU2Yjg1ODhkNTE5Li5iY2QzZmQ5MWIzYTkxYzliZjNhYWM0MjNlNzA1ZDJk
NWQ2MThkNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xMzMsNiArMTM0LDIz
IEBAIFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeUxpc3Q+IFBlcmZvcm1hbmNlOjp3ZWJraXRH
ZXRFbnRyaWVzQnlOYW1lKGNvbnN0IFN0cmluCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVElNSU5H
KQogCitzdGF0aWMgYm9vbCBwYXNzZXNUaW1pbmdBbGxvd0NoZWNrKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pCit7CisgICAg
QXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKEF0b21pY1N0cmluZyYsIHRpbWluZ0FsbG93T3Jp
Z2luID0gKm5ldyBBdG9taWNTdHJpbmcoInRpbWluZy1hbGxvdy1vcmlnaW4iKSk7CisKKyAgICBj
b25zdCBTdHJpbmcmIHRpbWluZ0FsbG93T3JpZ2luU3RyaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRl
ckZpZWxkKHRpbWluZ0FsbG93T3JpZ2luKTsKKyAgICBpZiAodGltaW5nQWxsb3dPcmlnaW5TdHJp
bmcuaXNFbXB0eSgpIHx8IGVxdWFsSWdub3JpbmdDYXNlKHRpbWluZ0FsbG93T3JpZ2luU3RyaW5n
LCAibnVsbCIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAodGltaW5nQWxsb3dP
cmlnaW5TdHJpbmcgPT0gIioiKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICh0aW1p
bmdBbGxvd09yaWdpblN0cmluZyAhPSBzZWN1cml0eU9yaWdpbi0+dG9TdHJpbmcoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgUGVyZm9ybWFu
Y2U6OndlYmtpdENsZWFyUmVzb3VyY2VUaW1pbmdzKCkKIHsKICAgICBtX3Jlc291cmNlVGltaW5n
QnVmZmVyLmNsZWFyKCk7CkBAIC0xNDMsMTIgKzE2MSwxNSBAQCB2b2lkIFBlcmZvcm1hbmNlOjp3
ZWJraXRTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5zaWduZWQgaW50KQogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KIAotdm9pZCBQZXJmb3JtYW5jZTo6YWRkUmVzb3VyY2VU
aW1pbmcoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9j
dW1lbnQpCit2b2lkIFBlcmZvcm1hbmNlOjphZGRSZXNvdXJjZVRpbWluZyhjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBkb3Vi
bGUgZmluaXNoVGltZSwgZG91YmxlIHJlZGlyZWN0U3RhcnQsIGRvdWJsZSByZWRpcmVjdEVuZCwg
RG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCwgU2VjdXJpdHlPcmlnaW4qIHBhcmVudEZyYW1l
T3JpZ2luKQogewogICAgIGlmICghcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNyZWF0ZShyZXF1ZXN0LCByZXNwb25zZSwgZmluaXNoVGlt
ZSwgcmVxdWVzdGluZ0RvY3VtZW50KTsKKyAgICBBU1NFUlQocmVzcG9uc2UudXJsKCkuaXNFbXB0
eSgpKTsKKyAgICBib29sIGFsbG93VGltaW5nID0gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShyZXNwb25zZS51cmwoKSktPmVxdWFsKHBhcmVudEZyYW1lT3JpZ2luKSB8fCBwYXNzZXNU
aW1pbmdBbGxvd0NoZWNrKHJlc3BvbnNlLCBwYXJlbnRGcmFtZU9yaWdpbik7CisgICAgUmVmUHRy
PFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y3Jl
YXRlKHJlcXVlc3QsIHJlc3BvbnNlLCBmaW5pc2hUaW1lLCByZWRpcmVjdFN0YXJ0LCByZWRpcmVj
dEVuZCwgcmVxdWVzdGluZ0RvY3VtZW50LCBhbGxvd1RpbWluZyk7CisKICAgICAvLyBGSVhNRTog
TmVlZCB0byBlbmZvcmNlIGJ1ZmZlciBsaW1pdHMuCiAgICAgbV9yZXNvdXJjZVRpbWluZ0J1ZmZl
ci5hcHBlbmQoZW50cnkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCmluZGV4IDhiYThj
NWVlYTk1ZWU1ZDQzZDhjYmRlNDY3MGVkOTJiMjE5NjFlNjguLjI4NjgyYTBjY2RkYzAyOGVlMTJm
MTQ1M2M0NDc5MGY2Njg5MWYzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzksNiAr
NDAsNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlRW50cnlMaXN0LmgiCiAjaW5jbHVkZSAiUGVy
Zm9ybWFuY2VOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VUaW1pbmcuaCIKKyNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC00
Nyw2ICs0OSw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xh
c3MgUGVyZm9ybWFuY2VFbnRyeTsKK2NsYXNzIFBlcmZvcm1hbmNlRW50cnlMaXN0OwogY2xhc3Mg
UmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIApAQCAtNzUsNyArNzks
NyBAQCBwdWJsaWM6CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdlYmtp
dHJlc291cmNldGltaW5nYnVmZmVyZnVsbCk7CiAKLSAgICB2b2lkIGFkZFJlc291cmNlVGltaW5n
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUg
ZmluaXNoVGltZSwgRG9jdW1lbnQqKTsKKyAgICB2b2lkIGFkZFJlc291cmNlVGltaW5nKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgZmluaXNo
VGltZSwgZG91YmxlIHJlZGlyZWN0U3RhcnQsIGRvdWJsZSByZWRpcmVjdEVuZCwgRG9jdW1lbnQq
LCBTZWN1cml0eU9yaWdpbiogcGFyZW50RnJhbWVPcmlnaW4pOwogI2VuZGlmCiAKICAgICB1c2lu
ZyBSZWZDb3VudGVkPFBlcmZvcm1hbmNlPjo6cmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlRW50cnkuaAppbmRleCA2ZDk2NzIxOTc1M2E0YjVhYzcyZGM0YzQ0NGNiMGYxYjNlZjI5MmNj
Li44NDQxOThmZjYwNGE1ZjZmZjU4NzExYmNkOGEyYTVlN2Y4ODJiYWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBJbnRlbCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00Niw4ICs0Nyw4IEBAIHB1YmxpYzoKIAogICAgIFN0
cmluZyBuYW1lKCkgY29uc3Q7CiAgICAgU3RyaW5nIGVudHJ5VHlwZSgpIGNvbnN0OwotICAgIGRv
dWJsZSBzdGFydFRpbWUoKSBjb25zdDsKLSAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGRvdWJsZSBzdGFydFRpbWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBk
dXJhdGlvbigpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGlzUmVzb3VyY2UoKSB7IHJldHVy
biBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
RW50cnlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0LmgK
aW5kZXggOGY3NjI2N2UxZDJhMTA0NGM1NzhkZDE2ZTdhYjE4ZDJiM2E3MWZhNi4uOWI5ZDU2ZmJh
N2M2NWFlM2JlYzQwOGEwODE2OTIyM2Q5ZWQ0NmFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VFbnRyeUxpc3QuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMyw2ICszNCw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1RJ
TUlORykgJiYgRU5BQkxFKFBFUkZPUk1BTkNFX1RJTUVMSU5FKQogCisjaW5jbHVkZSAiUGVyZm9y
bWFuY2VFbnRyeS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAppbmRleCAwOTc2YWRkNzgw
MzI4ODNjM2Y0YTVhMTdiZmZiZWFjNmRlZjRkZDFjLi4xYTk3MDRiZmVkMjVjMmI3MDY5NzU2NzQ4
ZWU2NjU1MTlhOTY3NDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtNDQsMTAgKzQ1LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBkb3VibGUgZmluaXNoVGltZSwgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVu
dCkKLSAgICA6IFBlcmZvcm1hbmNlRW50cnkocmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgInJlc291
cmNlIiwgcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lLCBmaW5pc2hU
aW1lKQorUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBkb3VibGUgZmluaXNoVGltZSwgZG91YmxlIHJlZGlyZWN0U3RhcnQsIGRvdWJs
ZSByZWRpcmVjdEVuZCwgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCwgYm9vbCBhbGxvd1Rp
bWluZykKKyAgICA6IFBlcmZvcm1hbmNlRW50cnkocmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgInJl
c291cmNlIiwgIDAuMCwgMC4wKQogICAgICwgbV90aW1pbmcocmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCkpCiAgICAgLCBtX2ZpbmlzaFRpbWUoZmluaXNoVGltZSkKKyAgICAsIG1fcmVkaXJl
Y3RTdGFydChyZWRpcmVjdFN0YXJ0KQorICAgICwgbV9yZWRpcmVjdEVuZChyZWRpcmVjdEVuZCkK
KyAgICAsIG1faXNBbGxvd1RpbWluZyhhbGxvd1RpbWluZykKICAgICAsIG1fcmVxdWVzdGluZ0Rv
Y3VtZW50KHJlcXVlc3RpbmdEb2N1bWVudCkKIHsKIH0KQEAgLTU2LDYgKzYwLDIwIEBAIFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc6On5QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKCkKIHsKIH0K
IAorZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnN0YXJ0VGltZSgpIGNvbnN0Cit7
CisgICAgaWYgKG1fcmVkaXJlY3RTdGFydCkKKyAgICAgICAgcmV0dXJuIG1vbm90b25pY1RpbWVU
b0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVkaXJlY3RTdGFydCk7CisgICAgcmV0dXJuIG1vbm90
b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5yZXF1ZXN0VGltZSk7Cit9
CisKK2RvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkdXJhdGlvbigpIGNvbnN0Cit7
CisgICAgaWYgKG1fcmVkaXJlY3RTdGFydCkKKyAgICAgICAgcmV0dXJuIChtX2ZpbmlzaFRpbWUg
LSBtX3JlZGlyZWN0U3RhcnQpICogMTAwMC4wOworICAgIHJldHVybiAobV9maW5pc2hUaW1lIC0g
bV90aW1pbmctPnJlcXVlc3RUaW1lKSAqIDEwMDAuMDsKK30KKwogU3RyaW5nIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmc6OmluaXRpYXRvclR5cGUoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBkZWNpZGVkIGJ5IHRoZSByZXNvdXJjZSB0eXBlLgpAQCAtNjYsMTMgKzg0
LDIyIEBAIFN0cmluZyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjppbml0aWF0b3JUeXBlKCkg
Y29uc3QKIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQo
KSBjb25zdAogewotICAgIC8vIEZJWE1FOiBOZWVkIHRvIHRyYWNrIGFuZCByZXBvcnQgcmVkaXJl
Y3RzIGZvciByZXNvdXJjZXMuCi0gICAgcmV0dXJuIDA7CisgICAgaWYgKCFtX2lzQWxsb3dUaW1p
bmcpCisgICAgICAgIHJldHVybiAwLjA7CisKKyAgICBpZiAoIW1fcmVkaXJlY3RTdGFydCkKKyAg
ICAgICAgcmV0dXJuIDAuMDsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxs
aXNlY29uZHMobV9yZWRpcmVjdFN0YXJ0KTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmc6OnJlZGlyZWN0RW5kKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICBpZiAo
IW1faXNBbGxvd1RpbWluZykKKyAgICAgICAgcmV0dXJuIDAuMDsKKworICAgIGlmICghbV9yZWRp
cmVjdEVuZCkKKyAgICAgICAgcmV0dXJuIDAuMDsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRv
RG9jdW1lbnRNaWxsaXNlY29uZHMobV9yZWRpcmVjdEVuZCk7CiB9CiAKIGRvdWJsZSBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKQEAgLTgyLDYgKzEwOSw5IEBA
IGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKIAog
ZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KCkgY29u
c3QKIHsKKyAgICBpZiAoIW1faXNBbGxvd1RpbWluZykKKyAgICAgICAgcmV0dXJuIDAuMDsKKwog
ICAgIGlmIChtX3RpbWluZy0+ZG5zU3RhcnQgPCAwKQogICAgICAgICByZXR1cm4gZmV0Y2hTdGFy
dCgpOwogCkBAIC05MCw2ICsxMjAsOSBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zzo6ZG9tYWluTG9va3VwU3RhcnQoKSBjb25zdAogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKCkgY29uc3QKIHsKKyAgICBpZiAoIW1faXNBbGxvd1Rp
bWluZykKKyAgICAgICAgcmV0dXJuIDAuMDsKKwogICAgIGlmIChtX3RpbWluZy0+ZG5zRW5kIDwg
MCkKICAgICAgICAgcmV0dXJuIGRvbWFpbkxvb2t1cFN0YXJ0KCk7CiAKQEAgLTk4LDYgKzEzMSw5
IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQoKSBj
b25zdAogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KCkg
Y29uc3QKIHsKKyAgICBpZiAoIW1faXNBbGxvd1RpbWluZykKKyAgICAgICAgcmV0dXJuIDAuMDsK
KwogICAgIGlmIChtX3RpbWluZy0+Y29ubmVjdFN0YXJ0IDwgMCkgLy8gQ29ubmVjdGlvbiB3YXMg
cmV1c2VkLgogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwRW5kKCk7CiAKQEAgLTExMSw2ICsx
NDcsOSBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KCkg
Y29uc3QKIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNvbm5lY3RFbmQoKSBj
b25zdAogeworICAgIGlmICghbV9pc0FsbG93VGltaW5nKQorICAgICAgICByZXR1cm4gMC4wOwor
CiAgICAgaWYgKG1fdGltaW5nLT5jb25uZWN0RW5kIDwgMCkgLy8gQ29ubmVjdGlvbiB3YXMgcmV1
c2VkLgogICAgICAgICByZXR1cm4gY29ubmVjdFN0YXJ0KCk7CiAKQEAgLTExOSw2ICsxNTgsOSBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdEVuZCgpIGNvbnN0CiAK
IGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpzZWN1cmVDb25uZWN0aW9uU3RhcnQo
KSBjb25zdAogeworICAgIGlmICghbV9pc0FsbG93VGltaW5nKQorICAgICAgICByZXR1cm4gMC4w
OworCiAgICAgaWYgKG1fdGltaW5nLT5zc2xTdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9u
IG5vdCBuZWdvdGlhdGVkLgogICAgICAgICByZXR1cm4gMDsKIApAQCAtMTI3LDExICsxNjksMTcg
QEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFy
dCgpIGNvbnN0CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXF1ZXN0U3Rh
cnQoKSBjb25zdAogeworICAgIGlmICghbV9pc0FsbG93VGltaW5nKQorICAgICAgICByZXR1cm4g
MC4wOworCiAgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90
aW1pbmctPnNlbmRTdGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKIHsKKyAgICBpZiAoIW1faXNBbGxvd1RpbWluZykKKyAg
ICAgICAgcmV0dXJuIDAuMDsKKwogICAgIC8vIEZJWE1FOiBUaGlzIG51bWJlciBpc24ndCBleGFj
dGx5IGNvcnJlY3QuIFNlZSB0aGUgbm90ZXMgaW4gUGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNl
U3RhcnQoKS4KICAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyht
X3RpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAppbmRleCAwODJiODkyNTE0OTYyOWU4OGQzZDcx
YWE2OGJiMTFiNzUyNjYwYTkyLi5hNzI2MWE2MTA3YTBjODNhNzcxYjdkNmYyOWE4YjAzNDhiNGE3
M2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC00OCwxMSArNDksMTAgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAogY2xhc3MgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZyA6IHB1YmxpYyBQZXJmb3JtYW5jZUVudHJ5IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nPiBjcmVh
dGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9jdW1l
bnQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4gY3Jl
YXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGRvdWJsZSBmaW5pc2hUaW1lLCBkb3VibGUgcmVkaXJlY3RTdGFydCwgZG91
YmxlIHJlZGlyZWN0RW5kLCBEb2N1bWVudCogcmVxdWVzdGluZ0RvY3VtZW50LCBib29sIGFsbG93
VGltaW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nKHJlcXVlc3QsIHJlc3BvbnNlLCBmaW5pc2hUaW1lLCByZXF1ZXN0aW5nRG9j
dW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nKHJlcXVlc3QsIHJlc3BvbnNlLCBmaW5pc2hUaW1lLCByZWRpcmVjdFN0YXJ0LCByZWRp
cmVjdEVuZCwgcmVxdWVzdGluZ0RvY3VtZW50LCBhbGxvd1RpbWluZykpOwogICAgIH0KLQogICAg
IFN0cmluZyBpbml0aWF0b3JUeXBlKCkgY29uc3Q7CiAKICAgICBkb3VibGUgcmVkaXJlY3RTdGFy
dCgpIGNvbnN0OwpAQCAtNjksOCArNjksMTEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29s
IGlzUmVzb3VyY2UoKSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGRvdWJsZSBzdGFy
dFRpbWUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBkdXJhdGlvbigpIGNv
bnN0IE9WRVJSSURFOworCiBwcml2YXRlOgotICAgIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmco
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGRvdWJsZSBm
aW5pc2hUaW1lLCBEb2N1bWVudCopOworICAgIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGRvdWJsZSBmaW5p
c2hUaW1lLCBkb3VibGUgcmVkaXJlY3RTdGFydCwgZG91YmxlIHJlZGlyZWN0RW5kLCBEb2N1bWVu
dCosIGJvb2wgYWxsb3dUaW1pbmcpOwogICAgIH5QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKCk7
CiAKICAgICBkb3VibGUgbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoZG91Ymxl
IHNlY29uZHMpIGNvbnN0OwpAQCAtNzgsNiArODEsOSBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRy
PFJlc291cmNlTG9hZFRpbWluZz4gbV90aW1pbmc7CiAgICAgZG91YmxlIG1fZmluaXNoVGltZTsK
KyAgICBkb3VibGUgbV9yZWRpcmVjdFN0YXJ0OworICAgIGRvdWJsZSBtX3JlZGlyZWN0RW5kOwor
ICAgIGJvb2wgbV9pc0FsbG93VGltaW5nOwogICAgIFJlZlB0cjxEb2N1bWVudD4gbV9yZXF1ZXN0
aW5nRG9jdW1lbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODRkNDM4YzQzZTVmZmNiYTRmZjEzZDZjNmM2OGZj
YTUwNmQxYmY0Yi4uZjY1MDBmMThiNTljZjQ2OTIxMGM3MTgwZmRmNDVhZmM3Mzk2ODMxMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA5LTAzICBQYW4gRGVuZyAgPHBhbi5kZW5nQGludGVs
LmNvbT4KKworICAgICAgICBUZXN0IGNhc2VzIG9mIGNyb3NzIG9yaWdpbiByZXNvdXJjZSB0aW1p
bmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDg4
Ni4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
IGNhc2VzIGluIHRoaXMgcGF0Y2ggdmFsaWRhdGUgcmVzb3VyY2UgdGltaW5nIGJlaGF2aW9yIHdo
ZW4gY3Jvc3Mgb3JpZ2luIHJlcXVlc3Qgd2l0aC93aXRob3V0ICJhbGxvdy10aW1pbmctb3JpZ2lu
IiByZXNwb25zZSBoZWFkZXIuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3By
b3Bvc2FsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9zc19vcmlnaW5f
cmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvcHJvcG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGlt
aW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJvcG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVz
b3VyY2VfdGltaW5nX3RpbWluZ19hbGxvd19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJv
cG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3RpbWluZ19hbGxvd19j
cm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdlX2dyZWVuX3dpdGhfYWxsb3df
dGltaW5nLnBocDogQWRkZWQuCisKIDIwMTItMDctMjMgIEJhbGF6cyBBbmtlcyAgPGJhbmtAaW5m
LnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gZnJvbSBwbGF0Zm9ybS9xdC9mYXN0L292ZXJm
bG93IHRvIHBsYXRmb3JtL3F0L2Zhc3QveHNsIHRlc3RzIG5lZWRzIHVwZGF0ZSBhZnRlciByZWJh
c2VsaW5lIGFuZCBuZXcgdGVzdGZvbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3Rp
bWluZ19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNlLXRpbWluZy90ZXN0
X3Jlc291cmNlX3RpbWluZ19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2YwZTY5NjEzNmE0YjEwZGIxNGFiNmZhYTgxOTA1MGI5YTBlMDNmNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJv
cG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9y
ZXNvdXJjZV9yZXF1ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACitEZXNjcmlwdGlv
bgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgaW4gcmVzb3VyY2UgdGltaW5nIGZv
ciBhIGNyb3NzLW9yaWdpbiByZXNvdXJjZSByZXF1ZXN0LgorCisKKworCitQQVNTIFN0YXJ0aW5n
IGRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lIGlzIGNvcnJlY3QgKDEyNy4wLjAuMTo4MDAwKSAK
K1BBU1MgcmVkaXJlY3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEg
CitQQVNTIHJlZGlyZWN0RW5kIHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISAK
K1BBU1MgZG9tYWluTG9va3VwU3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVl
c3QhIAorUEFTUyBkb21haW5Mb29rdXBFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJl
cXVlc3QhIAorUEFTUyBjb25uZWN0U3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJl
cXVlc3QhIAorUEFTUyBjb25uZWN0RW5kIHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1
ZXN0ISAKK1BBU1MgcmVxdWVzdFN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1
ZXN0ISAKK1BBU1MgcmVzcG9uc2VTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVx
dWVzdCEgCitQQVNTIHNlY3VyZUNvbm5lY3Rpb25TdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1v
cmlnaW4gcmVxdWVzdCEgCitQQVNTIGZldGNoU3RhcnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAw
IGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISAKK1BBU1MgcmVzcG9uc2VFbmQgc2hvdWxkIGJlIGdy
ZWF0ZXIgdGhhbiAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10aW1pbmcv
dGVzdF9yZXNvdXJjZV90aW1pbmdfY3Jvc3Nfb3JpZ2luX3Jlc291cmNlX3JlcXVlc3QuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJvcG9zYWwvcmVzb3VyY2UtdGlt
aW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2I4ZGRmMWIxZTM1MTY3YmU0MzhmYzJkOTg2OGViYTVlNTkzMGI0Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJv
cG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9y
ZXNvdXJjZV9yZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAg
ICAgIDx0aXRsZT5yZXNvdXJjZSB0aW1pbmcgaW5mb3JtYXRpb24gZm9yIGNyb3NzLW9yaWdpbiBy
ZXNvdXJjZSByZXF1ZXN0PC90aXRsZT4KKyAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPgorICAgICAgICA8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jcGVy
Zm9ybWFuY2VyZXNvdXJjZXRpbWluZyIvPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorCisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgIAorICAgICAgICAgICAgc2V0
dXAoe2V4cGxpY2l0X2RvbmU6IHRydWV9KTsKKworICAgICAgICAgICAgdmFyIHBhZ2VPcmlnaW4g
PSAiMTI3LjAuMC4xOjgwMDAiOworICAgICAgICAgICAgdmFyIGNyb3NzT3JpZ2luID0gImxvY2Fs
aG9zdDo4MDAwIjsKKworICAgICAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IHdpbmRvdy5wZXJmb3JtYW5jZS53
ZWJraXRHZXRFbnRyaWVzQnlOYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZUNvbnRl
eHQiKS5zcmMsICJyZXNvdXJjZSIpWzBdOworCisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMo
ZW50cnkucmVkaXJlY3RTdGFydCwgMCwgInJlZGlyZWN0U3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jv
c3Mtb3JpZ2luIHJlcXVlc3QhIik7CisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoZW50cnku
cmVkaXJlY3RFbmQsIDAsICJyZWRpcmVjdEVuZCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4g
cmVxdWVzdCEiKTsKKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5kb21haW5Mb29r
dXBTdGFydCwgMCwgImRvbWFpbkxvb2t1cFN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdp
biByZXF1ZXN0ISIpOworICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVudHJ5LmRvbWFpbkxv
b2t1cEVuZCwgMCwgImRvbWFpbkxvb2t1cEVuZCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4g
cmVxdWVzdCEiKTsKKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5jb25uZWN0U3Rh
cnQsIDAsICJjb25uZWN0U3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3Qh
Iik7CisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoZW50cnkuY29ubmVjdEVuZCwgMCwgImNv
bm5lY3RFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7CisgICAgICAg
ICAgICAgICAgdGVzdF9lcXVhbHMoZW50cnkucmVxdWVzdFN0YXJ0LCAwLCAicmVxdWVzdFN0YXJ0
IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIpOworICAgICAgICAgICAgICAg
IHRlc3RfZXF1YWxzKGVudHJ5LnJlc3BvbnNlU3RhcnQsIDAsICJyZXNwb25zZVN0YXJ0IHNob3Vs
ZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIpOworICAgICAgICAgICAgICAgIHRlc3Rf
ZXF1YWxzKGVudHJ5LnNlY3VyZUNvbm5lY3Rpb25TdGFydCwgMCwgInNlY3VyZUNvbm5lY3Rpb25T
dGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5mZXRjaFN0YXJ0LCAwLCAiZmV0Y2hTdGFydCBz
aG91bGQgYmUgZ3JlYXRlciB0aGFuIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7CisgICAg
ICAgICAgICAgICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnkucmVzcG9uc2VFbmQsIDAsICJyZXNw
b25zZUVuZCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3Qh
Iik7CisgICAgICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgIDwv
c2NyaXB0PgorCisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8aDE+RGVzY3JpcHRp
b248L2gxPgorICAgICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgaW4gcmVz
b3VyY2UgdGltaW5nIGZvciBhIGNyb3NzLW9yaWdpbiByZXNvdXJjZSByZXF1ZXN0LjwvcD4KKwor
ICAgICAgICA8YnIgLz4KKyAgICAgICAgPGlmcmFtZSBpZD0iZnJhbWVDb250ZXh0IiBzcmM9IiIg
c3R5bGU9IndpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvaWZyYW1lPgorICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgdGVzdF9lcXVhbHMoZG9jdW1lbnQubG9jYXRpb24uaG9zdCwg
cGFnZU9yaWdpbiwgJ1N0YXJ0aW5nIGRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lIGlzIGNvcnJl
Y3QgKCcgKyBwYWdlT3JpZ2luICsgJyknKTsKKyAgICAgICAgICAgIHZhciBkZXN0VXJsID0gJ2h0
dHA6Ly8nICsgY3Jvc3NPcmlnaW4gKyAnL3czYy93ZWJwZXJmL3Jlc291cmNlcy9ibGFua19wYWdl
X2dyZWVuLmh0bSc7CisKKyAgICAgICAgICAgIHZhciBmcmFtZUNvbnRleHQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZnJhbWVDb250ZXh0Iik7CisgICAgICAgICAgICBmcmFtZUNvbnRleHQu
b25sb2FkID0gb25sb2FkX3Rlc3Q7CisgICAgICAgICAgICBmcmFtZUNvbnRleHQuc3JjID0gZGVz
dFVybDsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10
aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNv
dXJjZV9yZXF1ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvcHJvcG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3RpbWlu
Z19hbGxvd19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDEzNWMyZWU1MDRiOGRiNzM0ZTFlNjlhNDI2MDRhMmJhM2EwMmFhZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJvcG9zYWwvcmVz
b3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3RpbWluZ19hbGxvd19jcm9zc19vcmln
aW5fcmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorRGVzY3Jp
cHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgdmFsdWVzIGluIHJlc291cmNlIHRpbWlu
ZyBmb3IgYSB0aW1pbmctYWxsb3ctb3JpZ2luIGNyb3NzLW9yaWdpbiByZXNvdXJjZSByZXF1ZXN0
LgorCisKKworCitQQVNTIFN0YXJ0aW5nIGRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lIGlzIGNv
cnJlY3QgKDEyNy4wLjAuMTo4MDAwKSAKK1BBU1MgcmVkaXJlY3RTdGFydCBzaG91bGQgYmUgMCBp
biBjcm9zcy1vcmlnaW4gcmVxdWVzdCBzaW5jZSBubyByZWRpcmVjdCEgCitQQVNTIHJlZGlyZWN0
RW5kIHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0IHNpbmNlIG5vIHJlZGlyZWN0
ISAKK1BBU1MgZG9tYWluTG9va3VwU3RhcnQgc2hvdWxkIG5vdCBiZSAwIGluIGNyb3NzLW9yaWdp
biByZXF1ZXN0ISAKK1BBU1MgZG9tYWluTG9va3VwRW5kIHNob3VsZCBub3QgYmUgMCBpbiBjcm9z
cy1vcmlnaW4gcmVxdWVzdCEgCitQQVNTIGNvbm5lY3RTdGFydCBzaG91bGQgbm90IGJlIDAgaW4g
Y3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIAorUEFTUyBjb25uZWN0RW5kIHNob3VsZCBub3QgYmUgMCBp
biBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgCitQQVNTIHJlcXVlc3RTdGFydCBzaG91bGQgbm90IGJl
IDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIAorUEFTUyByZXNwb25zZVN0YXJ0IHNob3VsZCBu
b3QgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgCitQQVNTIHNlY3VyZUNvbm5lY3Rpb25T
dGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCBzaW5jZSBubyBzc2whIAor
UEFTUyBmZXRjaFN0YXJ0IHNob3VsZCBub3QgYmUgZ3JlYXRlciB0aGFuIDAgaW4gY3Jvc3Mtb3Jp
Z2luIHJlcXVlc3QhIAorUEFTUyByZXNwb25zZUVuZCBzaG91bGQgbm90IGJlIGdyZWF0ZXIgdGhh
biAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNv
dXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNl
LXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ190aW1pbmdfYWxsb3dfY3Jvc3Nfb3JpZ2luX3Jl
c291cmNlX3JlcXVlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmRkN2UzYjA1ZTZhMjhhODQwYTM0OTlk
ODM3Y2JkZmVlOTQ4NTg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1p
bmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0bWwKQEAgLTAs
MCArMSw1NiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAgICAgIDx0aXRsZT5yZXNvdXJjZSB0aW1pbmcg
aW5mb21hdGlvbiBmb3IgY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHJlcXVlc3Qgd2l0aCB0aW1pbmct
YWxsb3ctb3JpZ2luPC90aXRsZT4KKyAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJ
bnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPgorICAgICAgICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jcGVyZm9y
bWFuY2VyZXNvdXJjZXRpbWluZyIvPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgCisgICAgICAgICAgICBzZXR1cCh7
ZXhwbGljaXRfZG9uZTogdHJ1ZX0pOworCisgICAgICAgICAgICB2YXIgcGFnZU9yaWdpbiA9ICIx
MjcuMC4wLjE6ODAwMCI7CisgICAgICAgICAgICB2YXIgY3Jvc3NPcmlnaW4gPSAibG9jYWxob3N0
OjgwMDAiOworCisgICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gcGVyZm9ybWFuY2Uud2Via2l0R2V0RW50
cmllc0J5TmFtZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhbWVDb250ZXh0Iikuc3JjLCAi
cmVzb3VyY2UiKVswXTsKKworICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVudHJ5LnJlZGly
ZWN0U3RhcnQsIDAsICJyZWRpcmVjdFN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiBy
ZXF1ZXN0IHNpbmNlIG5vIHJlZGlyZWN0ISIpOworICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxz
KGVudHJ5LnJlZGlyZWN0RW5kLCAwLCAicmVkaXJlY3RFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mt
b3JpZ2luIHJlcXVlc3Qgc2luY2Ugbm8gcmVkaXJlY3QhIik7CisgICAgICAgICAgICAgICAgdGVz
dF9ncmVhdGVyX3RoYW4oZW50cnkuZG9tYWluTG9va3VwU3RhcnQsIDAsICJkb21haW5Mb29rdXBT
dGFydCBzaG91bGQgbm90IGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7CisgICAgICAg
ICAgICAgICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnkuZG9tYWluTG9va3VwRW5kLCAwLCAiZG9t
YWluTG9va3VwRW5kIHNob3VsZCBub3QgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsK
KyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5jb25uZWN0U3RhcnQsIDAs
ICJjb25uZWN0U3RhcnQgc2hvdWxkIG5vdCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIp
OworICAgICAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGVudHJ5LmNvbm5lY3RFbmQsIDAs
ICJjb25uZWN0RW5kIHNob3VsZCBub3QgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsK
KyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5yZXF1ZXN0U3RhcnQsIDAs
ICJyZXF1ZXN0U3RhcnQgc2hvdWxkIG5vdCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIp
OworICAgICAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGVudHJ5LnJlc3BvbnNlU3RhcnQs
IDAsICJyZXNwb25zZVN0YXJ0IHNob3VsZCBub3QgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVz
dCEiKTsKKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5zZWN1cmVDb25uZWN0aW9u
U3RhcnQsIDAsICJzZWN1cmVDb25uZWN0aW9uU3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3Jp
Z2luIHJlcXVlc3Qgc2luY2Ugbm8gc3NsISIpOworICAgICAgICAgICAgICAgIHRlc3RfZ3JlYXRl
cl90aGFuKGVudHJ5LmZldGNoU3RhcnQsIDAsICJmZXRjaFN0YXJ0IHNob3VsZCBub3QgYmUgZ3Jl
YXRlciB0aGFuIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7CisgICAgICAgICAgICAgICAg
dGVzdF9ncmVhdGVyX3RoYW4oZW50cnkucmVzcG9uc2VFbmQsIDAsICJyZXNwb25zZUVuZCBzaG91
bGQgbm90IGJlIGdyZWF0ZXIgdGhhbiAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIpOworICAg
ICAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICA8L3NjcmlwdD4K
KworICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4K
KyAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgdmFsdWVzIGluIHJlc291cmNlIHRp
bWluZyBmb3IgYSB0aW1pbmctYWxsb3ctb3JpZ2luIGNyb3NzLW9yaWdpbiByZXNvdXJjZSByZXF1
ZXN0LjwvcD4KKworICAgICAgICA8YnIgLz4KKyAgICAgICAgPGlmcmFtZSBpZD0iZnJhbWVDb250
ZXh0IiBzcmM9IiIgc3R5bGU9IndpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvaWZyYW1l
PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdGVzdF9lcXVhbHMoZG9jdW1lbnQubG9j
YXRpb24uaG9zdCwgcGFnZU9yaWdpbiwgJ1N0YXJ0aW5nIGRvY3VtZW50LmxvY2F0aW9uLmhvc3Ru
YW1lIGlzIGNvcnJlY3QgKCcgKyBwYWdlT3JpZ2luICsgJyknKTsKKworICAgICAgICAgICAgdmFy
IGRlc3RVcmwgPSAnaHR0cDovLycgKyBjcm9zc09yaWdpbiArICcvdzNjL3dlYnBlcmYvcmVzb3Vy
Y2VzL2JsYW5rX3BhZ2VfZ3JlZW5fd2l0aF9hbGxvd190aW1pbmcucGhwJzsKKyAgICAgICAgICAg
IGRlc3RVcmwgKz0gJz9vcmlnaW49aHR0cDovLycgKyBwYWdlT3JpZ2luOworCisgICAgICAgICAg
ICB2YXIgZnJhbWVDb250ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lQ29udGV4
dCIpOworICAgICAgICAgICAgZnJhbWVDb250ZXh0Lm9ubG9hZCA9IG9ubG9hZF90ZXN0OworICAg
ICAgICAgICAgZnJhbWVDb250ZXh0LnNyYyA9IGRlc3RVcmw7CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW5fd2l0aF9hbGxvd190aW1pbmcu
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtf
cGFnZV9ncmVlbl93aXRoX2FsbG93X3RpbWluZy5waHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI0OTg2ODk2OGI1
NjhkNzk2MGEwOTI0Nzg0ZDYyMjkyZjlmMTg4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW5fd2l0
aF9hbGxvd190aW1pbmcucGhwCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MPg0KKzxo
dG1sPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD11dGYtOCIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiAvPg0KKyAgICAgICAgPHRpdGxl
PkdyZWVuIFRlc3QgUGFnZTwvdGl0bGU+DQorICAgICAgICA8P3BocA0KKyAgICAgICAgICAkb3Jp
Z2luID0gJF9HRVRbIm9yaWdpbiJdID8gJF9HRVRbIm9yaWdpbiJdIDogIiI7DQorICAgICAgICAg
IGhlYWRlcigidGltaW5nLWFsbG93LW9yaWdpbjogJG9yaWdpbiIpOw0KKyAgICAgICAgPz4NCisg
ICAgPC9oZWFkPg0KKyAgICA8Ym9keSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMDBGRjAwOyI+
DQorICAgICAgICA8aDE+UGxhY2Vob2xkZXI8L2gxPg0KKyAgICA8L2JvZHk+DQorPC9odG1sPg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170155</attachid>
            <date>2012-10-23 07:12:16 -0700</date>
            <delta_ts>2012-11-30 16:05:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84886-20121023221626.patch</filename>
            <type>text/plain</type>
            <size>23463</size>
            <attacher name="pdeng6">pan.deng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRlNDk5MDFmNTlkNTZh
YjkwMjJlOGI5MTBkNzhhM2M1NmJkMGM5NS4uZjRhYTFjNmYwMGExOWYxMDIzMDhhMGFkNWNiOGQ3
ZTc4ZDg2NTlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTEwLTIzICBQYW4g
RGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXSBp
bXBsZW1lbnRhdGlvbiBvZiBjcm9zcyBvcmlnaW4gcmVzb3VjZSB0aW1pbmcgcmVzdHJpY3Rpb25z
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4ODYu
IAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50ZWQgcmVzb3VyY2UgdGltaW5nIGJlaGF2aW9ycyBvZiBjcm9zcyBvcmln
aW4uIEJ5IGRlZmF1bHQsIGRldGFpbGVkIHRpbWluZyBpbmZvIGlzIGhpZGVkIGluIGNyb3NzIG9y
aWdpbiByZXNvdXJjZSB0aW1pbmcsIG9ubHkgc3RhcnRUaW1lLCBkdXJhdGlvbiwgZmV0Y2hTdGFy
dCBhbmQgcmVzcG9uc2VFbmQgY2FuIGJlIG9ic2VydmVkLiBFeGNlcHRpb25zIGFyZSwgc2VydmVy
IHNpZGUgYWxsb3cgaXRzIG9yaWdpbiBjYW4gYmUgdGltaW5nIGJ5IGFub3RoZXIgdGhyb3VnaCBh
IGhlYWRlciB3aXRoICJ0aW1pbmctYWxsb3ctb3JpZ2luIiBmaWVsZC4KKworICAgICAgICBUZXN0
czogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWlu
Zy90ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwv
cmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3RpbWluZ19hbGxvd19jcm9zc19v
cmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1sCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhc3Nlc1RpbWluZ0FsbG93Q2hlY2spOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6YWRkUmVzb3VyY2VU
aW1pbmcpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoUGVyZm9ybWFuY2UpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1BlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmNyZWF0ZSk6CisgICAgICAgIChQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
KToKKwogMjAxMi0xMC0yMyAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRp
Z2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJFR1JFU1NJT04gKHIxMzA4NTEpOiBmYXN0L3RleHQv
d29yZC1zcGFjZS13aXRoLWtlcm5pbmcuaHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlLmNwcAppbmRleCAyNjU4OGY3ODRkZmVhZDk5NmYxZWIzN2M2ZDZmY2Y3ZTFjNzgzNDM1Li40
MWYxZjI2YzRkZWU1YTRiNTg4YTEzMDdkZGM2Mjg0MThiZTIzNmY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1hbmNl
VGltaW5nLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VVc2VyVGltaW5nLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXNwb25zZS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKQEAgLTE4NSwx
MiArMTg2LDMyIEBAIHZvaWQgUGVyZm9ybWFuY2U6OndlYmtpdFNldFJlc291cmNlVGltaW5nQnVm
ZmVyU2l6ZSh1bnNpZ25lZCBzaXplKQogICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLndlYmtpdHJlc291cmNldGltaW5nYnVmZmVyZnVsbEV2ZW50LCBmYWxz
ZSwgZmFsc2UpKTsKIH0KIAotdm9pZCBQZXJmb3JtYW5jZTo6YWRkUmVzb3VyY2VUaW1pbmcoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9jdW1lbnQpCitz
dGF0aWMgYm9vbCBwYXNzZXNUaW1pbmdBbGxvd0NoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pCit7CisgICAgUmVmUHRy
PFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y3Jl
YXRlKGluaXRpYXRvci5pbml0aWF0b3JOYW1lKCksIHJlcXVlc3QsIHJlc3BvbnNlLCBpbml0aWF0
aW9uVGltZSwgZmluaXNoVGltZSwgaW5pdGlhdG9yLmluaXRpYXRvckRvY3VtZW50KCkpOworICAg
IEF0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpYyhBdG9taWNTdHJpbmcmLCB0aW1pbmdBbGxvd09y
aWdpbiA9ICpuZXcgQXRvbWljU3RyaW5nKCJ0aW1pbmctYWxsb3ctb3JpZ2luIikpOworCisgICAg
Y29uc3QgU3RyaW5nJiB0aW1pbmdBbGxvd09yaWdpblN0cmluZyA9IHJlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZCh0aW1pbmdBbGxvd09yaWdpbik7CisgICAgaWYgKHRpbWluZ0FsbG93T3JpZ2luU3Ry
aW5nLmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQ2FzZSh0aW1pbmdBbGxvd09yaWdpblN0cmlu
ZywgIm51bGwiKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKHRpbWluZ0FsbG93
T3JpZ2luU3RyaW5nID09ICIqIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAodGlt
aW5nQWxsb3dPcmlnaW5TdHJpbmcgIT0gc2VjdXJpdHlPcmlnaW4tPnRvU3RyaW5nKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBlcmZvcm1h
bmNlOjphZGRSZXNvdXJjZVRpbWluZyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBkb3VibGUgZmluaXNoVGltZSwgRG9jdW1l
bnQqIHJlcXVlc3RpbmdEb2N1bWVudCwgU2VjdXJpdHlPcmlnaW4qIGluaXRpYXRvck9yaWdpbikK
IHsKICAgICBpZiAoIXJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpIHx8IGlzUmVzb3VyY2VU
aW1pbmdCdWZmZXJGdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxQZXJmb3Jt
YW5jZUVudHJ5PiBlbnRyeSA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNyZWF0ZShyZXF1
ZXN0LCByZXNwb25zZSwgZmluaXNoVGltZSwgcmVxdWVzdGluZ0RvY3VtZW50KTsKKyAgICBBU1NF
UlQoIXJlc3BvbnNlLnVybCgpLmlzRW1wdHkoKSk7CisgICAgYm9vbCBhbGxvd1RpbWluZyA9IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUocmVzcG9uc2UudXJsKCkpLT5lcXVhbChpbml0
aWF0b3JPcmlnaW4pIHx8IHBhc3Nlc1RpbWluZ0FsbG93Q2hlY2socmVzcG9uc2UsIGluaXRpYXRv
ck9yaWdpbik7CisgICAgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6Y3JlYXRlKHJlcXVlc3QsIHJlc3BvbnNlLCBmaW5pc2hUaW1lLCBy
ZXF1ZXN0aW5nRG9jdW1lbnQsIGFsbG93VGltaW5nKTsKIAogICAgIG1fcmVzb3VyY2VUaW1pbmdC
dWZmZXIuYXBwZW5kKGVudHJ5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCmluZGV4IDhk
OTQ5ZjI0YzQzNjEzNTUxZWFmODAwZDdiMWM3ZThhMTZkNmEzZWMuLjU0NjU5YTQxYjgxMjk5YjY1
NmZkYWVlODIyYWVkYTViZjU4YmVjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKQEAg
LTUyLDYgKzUyLDcgQEAgY2xhc3MgUGVyZm9ybWFuY2VFbnRyeTsKIGNsYXNzIFBlcmZvcm1hbmNl
RW50cnlMaXN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZTsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgVXNlclRpbWluZzsKIAogY2xhc3MgUGVy
Zm9ybWFuY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJmb3JtYW5jZT4sIHB1YmxpYyBET01XaW5k
b3dQcm9wZXJ0eSwgcHVibGljIEV2ZW50VGFyZ2V0IHsKQEAgLTc5LDcgKzgwLDcgQEAgcHVibGlj
OgogCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUih3ZWJraXRyZXNvdXJjZXRp
bWluZ2J1ZmZlcmZ1bGwpOwogCi0gICAgdm9pZCBhZGRSZXNvdXJjZVRpbWluZyhjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgZG91YmxlIGZpbmlzaFRpbWUs
IERvY3VtZW50Kik7CisgICAgdm9pZCBhZGRSZXNvdXJjZVRpbWluZyhjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3Vt
ZW50KiwgU2VjdXJpdHlPcmlnaW4qKTsKICNlbmRpZgogCiAgICAgdXNpbmcgUmVmQ291bnRlZDxQ
ZXJmb3JtYW5jZT46OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuY3BwCmluZGV4IDA5NzZhZGQ3ODAzMjg4M2MzZjRhNWExN2JmZmJlYWM2
ZGVmNGRkMWMuLmQxMDg1ZDRkYWIyNjAwYTIxZmY2N2M0Y2MzNTViNWM4NTczMWIzMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00
NCwxMCArNDUsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGRvdWJsZSBmaW5p
c2hUaW1lLCBEb2N1bWVudCogcmVxdWVzdGluZ0RvY3VtZW50KQorUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyhjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBkb3VibGUgZmluaXNo
VGltZSwgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCwgYm9vbCBpc0FsbG93VGltaW5nKSkK
ICAgICA6IFBlcmZvcm1hbmNlRW50cnkocmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgInJlc291cmNl
IiwgcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lLCBmaW5pc2hUaW1l
KQogICAgICwgbV90aW1pbmcocmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCiAgICAgLCBt
X2ZpbmlzaFRpbWUoZmluaXNoVGltZSkKKyAgICAsIG1faXNBbGxvd1RpbWluZyhpc0FsbG93VGlt
aW5nKQogICAgICwgbV9yZXF1ZXN0aW5nRG9jdW1lbnQocmVxdWVzdGluZ0RvY3VtZW50KQogewog
fQpAQCAtNjcsMTEgKzY5LDE1IEBAIFN0cmluZyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpp
bml0aWF0b3JUeXBlKCkgY29uc3QKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpy
ZWRpcmVjdFN0YXJ0KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogTmVlZCB0byB0cmFjayBhbmQg
cmVwb3J0IHJlZGlyZWN0cyBmb3IgcmVzb3VyY2VzLgorICAgIGlmICghbV9pc0FsbG93VGltaW5n
KQorICAgICAgICByZXR1cm4gMC4wOwogICAgIHJldHVybiAwOwogfQogCiBkb3VibGUgUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZzo6cmVkaXJlY3RFbmQoKSBjb25zdAogeworICAgIGlmICghbV9p
c0FsbG93VGltaW5nKQorICAgICAgICByZXR1cm4gMC4wOwogICAgIHJldHVybiAwOwogfQogCkBA
IC04Miw2ICs4OCw5IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0
YXJ0KCkgY29uc3QKIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxv
b2t1cFN0YXJ0KCkgY29uc3QKIHsKKyAgICBpZiAoIW1faXNBbGxvd1RpbWluZykKKyAgICAgICAg
cmV0dXJuIDAuMDsKKwogICAgIGlmIChtX3RpbWluZy0+ZG5zU3RhcnQgPCAwKQogICAgICAgICBy
ZXR1cm4gZmV0Y2hTdGFydCgpOwogCkBAIC05MCw2ICs5OSw5IEBAIGRvdWJsZSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCgpIGNvbnN0CiAKIGRvdWJsZSBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQoKSBjb25zdAogeworICAgIGlm
ICghbV9pc0FsbG93VGltaW5nKQorICAgICAgICByZXR1cm4gMC4wOworCiAgICAgaWYgKG1fdGlt
aW5nLT5kbnNFbmQgPCAwKQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIApA
QCAtOTgsNiArMTEwLDkgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFp
bkxvb2t1cEVuZCgpIGNvbnN0CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpj
b25uZWN0U3RhcnQoKSBjb25zdAogeworICAgIGlmICghbV9pc0FsbG93VGltaW5nKQorICAgICAg
ICByZXR1cm4gMC4wOworCiAgICAgaWYgKG1fdGltaW5nLT5jb25uZWN0U3RhcnQgPCAwKSAvLyBD
b25uZWN0aW9uIHdhcyByZXVzZWQuCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBFbmQoKTsK
IApAQCAtMTExLDYgKzEyNiw5IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpj
b25uZWN0U3RhcnQoKSBjb25zdAogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
Y29ubmVjdEVuZCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX2lzQWxsb3dUaW1pbmcpCisgICAgICAg
IHJldHVybiAwLjA7CisKICAgICBpZiAobV90aW1pbmctPmNvbm5lY3RFbmQgPCAwKSAvLyBDb25u
ZWN0aW9uIHdhcyByZXVzZWQuCiAgICAgICAgIHJldHVybiBjb25uZWN0U3RhcnQoKTsKIApAQCAt
MTE5LDYgKzEzNyw5IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25uZWN0
RW5kKCkgY29uc3QKIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNv
bm5lY3Rpb25TdGFydCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX2lzQWxsb3dUaW1pbmcpCisgICAg
ICAgIHJldHVybiAwLjA7CisKICAgICBpZiAobV90aW1pbmctPnNzbFN0YXJ0IDwgMCkgLy8gU2Vj
dXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0x
MjcsMTEgKzE0OCwxNyBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJl
Q29ubmVjdGlvblN0YXJ0KCkgY29uc3QKIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX2lzQWxsb3dUaW1pbmcpCisg
ICAgICAgIHJldHVybiAwLjA7CisKICAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1p
bGxpc2Vjb25kcyhtX3RpbWluZy0+c2VuZFN0YXJ0KTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQoKSBjb25zdAogeworICAgIGlmICghbV9pc0Fs
bG93VGltaW5nKQorICAgICAgICByZXR1cm4gMC4wOworCiAgICAgLy8gRklYTUU6IFRoaXMgbnVt
YmVyIGlzbid0IGV4YWN0bHkgY29ycmVjdC4gU2VlIHRoZSBub3RlcyBpbiBQZXJmb3JtYW5jZVRp
bWluZzo6cmVzcG9uc2VTdGFydCgpLgogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50
TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCmluZGV4IDA4MmI4OTI1
MTQ5NjI5ZTg4ZDNkNzFhYTY4YmIxMWI3NTI2NjBhOTIuLmEwYTc1NzFhMTNkY2UyNWE4MTg4MTc1
ZjEyZDg5NWM0MmRhNzE3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZy5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEludGVsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKQEAgLTQ4LDkgKzQ5LDkgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsK
IAogY2xhc3MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyA6IHB1YmxpYyBQZXJmb3JtYW5jZUVu
dHJ5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiByZXF1
ZXN0aW5nRG9jdW1lbnQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZz4gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCogcmVx
dWVzdGluZ0RvY3VtZW50LCBib29sIGlzQWxsb3dUaW1pbmcpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcocmVxdWVzdCwgcmVzcG9u
c2UsIGZpbmlzaFRpbWUsIHJlcXVlc3RpbmdEb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcocmVxdWVzdCwgcmVzcG9uc2UsIGZp
bmlzaFRpbWUsIHJlcXVlc3RpbmdEb2N1bWVudCwgaXNBbGxvd1RpbWluZykpOwogICAgIH0KIAog
ICAgIFN0cmluZyBpbml0aWF0b3JUeXBlKCkgY29uc3Q7CkBAIC03MCw3ICs3MSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNSZXNvdXJjZSgpIHsgcmV0dXJuIHRydWU7IH0KIAogcHJp
dmF0ZToKLSAgICBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgZmluaXNoVGltZSwgRG9jdW1lbnQq
KTsKKyAgICBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgZmluaXNoVGltZSwgRG9jdW1lbnQqLCBi
b29sKTsKICAgICB+UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZygpOwogCiAgICAgZG91YmxlIG1v
bm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKGRvdWJsZSBzZWNvbmRzKSBjb25zdDsK
QEAgLTc4LDYgKzc5LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1p
bmc+IG1fdGltaW5nOwogICAgIGRvdWJsZSBtX2ZpbmlzaFRpbWU7CisgICAgYm9vbCBtX2lzQWxs
b3dUaW1pbmc7CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX3JlcXVlc3RpbmdEb2N1bWVudDsKIH07
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAyMTdlNGMzNjRhMmNiNmZiMDU1NGU4ZjIxNGU3NjRjNDkwNDZiYzM5Li5iZTI0
NTM3M2IwMDhiMzcwZTNjNDg1ZmY1M2QxODJmYjkwZDU3YjJjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTItMTAtMjMgIFBhbiBEZW5nICA8cGFuLmRlbmdAaW50ZWwuY29tPgorCisgICAgICAg
IFtSZXNvdXJjZSBUaW1pbmddVGVzdCBjYXNlcyBvZiBjcm9zcyBvcmlnaW4gcmVzb3VyY2UgdGlt
aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4
ODYuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dCBjYXNlcyBpbiB0aGlzIHBhdGNoIHZhbGlkYXRlIHJlc291cmNlIHRpbWluZyBiZWhhdmlvciB3
aGVuIGNyb3NzIG9yaWdpbiByZXF1ZXN0IHdpdGgvd2l0aG91dCAiYWxsb3ctdGltaW5nLW9yaWdp
biIgcmVzcG9uc2UgaGVhZGVyLiAKKworICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYv
cmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW5fd2l0aF9hbGxvd190aW1pbmcucGhwOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3Vy
Y2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1
ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19j
cm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3Rf
cmVzb3VyY2VfdGltaW5nX3RpbWluZ19hbGxvd19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVz
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYv
c3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfdGlt
aW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0bWw6IEFkZGVkLgorCiAy
MDEyLTEwLTIzICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV9ncmVlbl93aXRoX2FsbG93
X3RpbWluZy5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNl
cy9ibGFua19wYWdlX2dyZWVuX3dpdGhfYWxsb3dfdGltaW5nLnBocApuZXcgZmlsZSBtb2RlIDEw
MDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjQ5
ODY4OTY4YjU2OGQ3OTYwYTA5MjQ3ODRkNjIyOTJmOWYxODhjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV9n
cmVlbl93aXRoX2FsbG93X3RpbWluZy5waHAKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhU
TUw+DQorPGh0bWw+DQorICAgIDxoZWFkPg0KKyAgICAgICAgPG1ldGEgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PXV0Zi04IiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIC8+DQorICAgICAg
ICA8dGl0bGU+R3JlZW4gVGVzdCBQYWdlPC90aXRsZT4NCisgICAgICAgIDw/cGhwDQorICAgICAg
ICAgICRvcmlnaW4gPSAkX0dFVFsib3JpZ2luIl0gPyAkX0dFVFsib3JpZ2luIl0gOiAiIjsNCisg
ICAgICAgICAgaGVhZGVyKCJ0aW1pbmctYWxsb3ctb3JpZ2luOiAkb3JpZ2luIik7DQorICAgICAg
ICA/Pg0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMw
MEZGMDA7Ij4NCisgICAgICAgIDxoMT5QbGFjZWhvbGRlcjwvaDE+DQorICAgIDwvYm9keT4NCis8
L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9z
c19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3Rf
cmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZTdlZmU1Y2I5NWY3ZTU2OWY4ZGE1NDllYjY1ZjJjNGM2YmQxZWE0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9zc19v
cmlnaW5fcmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorRGVz
Y3JpcHRpb24NCisNCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgaW4gcmVzb3VyY2Ug
dGltaW5nIGZvciBhIGNyb3NzLW9yaWdpbiByZXNvdXJjZSByZXF1ZXN0Lg0KKw0KKw0KKw0KKw0K
K1BBU1MgU3RhcnRpbmcgZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUgaXMgY29ycmVjdCAoMTI3
LjAuMC4xOjgwMDApIA0KK1BBU1MgcmVkaXJlY3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1v
cmlnaW4gcmVxdWVzdCEgDQorUEFTUyByZWRpcmVjdEVuZCBzaG91bGQgYmUgMCBpbiBjcm9zcy1v
cmlnaW4gcmVxdWVzdCEgDQorUEFTUyBkb21haW5Mb29rdXBTdGFydCBzaG91bGQgYmUgMCBpbiBj
cm9zcy1vcmlnaW4gcmVxdWVzdCEgDQorUEFTUyBkb21haW5Mb29rdXBFbmQgc2hvdWxkIGJlIDAg
aW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KK1BBU1MgY29ubmVjdFN0YXJ0IHNob3VsZCBiZSAw
IGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIGNvbm5lY3RFbmQgc2hvdWxkIGJlIDAg
aW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KK1BBU1MgcmVxdWVzdFN0YXJ0IHNob3VsZCBiZSAw
IGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIHJlc3BvbnNlU3RhcnQgc2hvdWxkIGJl
IDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KK1BBU1Mgc2VjdXJlQ29ubmVjdGlvblN0YXJ0
IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIGZldGNoU3RhcnQg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNT
IHJlc3BvbnNlRW5kIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMCBpbiBjcm9zcy1vcmlnaW4gcmVx
dWVzdCEgDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19j
cm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291
cmNlX3RpbWluZ19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA2Zjc0YTZlYzczMTBiNDM2NGQ2NTUxZjQyNzc4ZTcwZjM3OTI2Y2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwv
cmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJj
ZV9yZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIEhUTUw+DQorPGh0bWw+
DQorICAgIDxoZWFkPg0KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+DQorICAgICAg
ICA8dGl0bGU+cmVzb3VyY2UgdGltaW5nIGluZm9ybWF0aW9uIGZvciBjcm9zcy1vcmlnaW4gcmVz
b3VyY2UgcmVxdWVzdDwvdGl0bGU+DQorICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbS8iIC8+DQorICAgICAgICA8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jcGVy
Zm9ybWFuY2VyZXNvdXJjZXRpbWluZyIvPg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8
c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMv
d2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4NCisNCisgICAgICAgIDxz
Y3JpcHQ+DQorICAgICAgICAgICANCisgICAgICAgICAgICBzZXR1cCh7ZXhwbGljaXRfZG9uZTog
dHJ1ZX0pOw0KKw0KKyAgICAgICAgICAgIHZhciBwYWdlT3JpZ2luID0gIjEyNy4wLjAuMTo4MDAw
IjsNCisgICAgICAgICAgICB2YXIgY3Jvc3NPcmlnaW4gPSAibG9jYWxob3N0OjgwMDAiOw0KKw0K
KyAgICAgICAgICAgIGZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkNCisgICAgICAgICAgICB7DQorICAg
ICAgICAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dChwZXJmb3Jt
YW5jZSk7ICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICB2YXIgZW50cnkgPSBjb250
ZXh0LmdldEVudHJpZXNCeU5hbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lQ29udGV4
dCIpLnNyYywgInJlc291cmNlIilbMF07DQorDQorICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxz
KGVudHJ5LnJlZGlyZWN0U3RhcnQsIDAsICJyZWRpcmVjdFN0YXJ0IHNob3VsZCBiZSAwIGluIGNy
b3NzLW9yaWdpbiByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRy
eS5yZWRpcmVjdEVuZCwgMCwgInJlZGlyZWN0RW5kIHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdp
biByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5kb21haW5M
b29rdXBTdGFydCwgMCwgImRvbWFpbkxvb2t1cFN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9y
aWdpbiByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5kb21h
aW5Mb29rdXBFbmQsIDAsICJkb21haW5Mb29rdXBFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3Jp
Z2luIHJlcXVlc3QhIik7DQorICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVudHJ5LmNvbm5l
Y3RTdGFydCwgMCwgImNvbm5lY3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVx
dWVzdCEiKTsNCisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoZW50cnkuY29ubmVjdEVuZCwg
MCwgImNvbm5lY3RFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQor
ICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVudHJ5LnJlcXVlc3RTdGFydCwgMCwgInJlcXVl
c3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCisgICAgICAg
ICAgICAgICAgdGVzdF9lcXVhbHMoZW50cnkucmVzcG9uc2VTdGFydCwgMCwgInJlc3BvbnNlU3Rh
cnQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQorICAgICAgICAgICAg
ICAgIHRlc3RfZXF1YWxzKGVudHJ5LnNlY3VyZUNvbm5lY3Rpb25TdGFydCwgMCwgInNlY3VyZUNv
bm5lY3Rpb25TdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCisg
ICAgICAgICAgICAgICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnkuZmV0Y2hTdGFydCwgMCwgImZl
dGNoU3RhcnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0
ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5yZXNwb25zZUVu
ZCwgMCwgInJlc3BvbnNlRW5kIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMCBpbiBjcm9zcy1vcmln
aW4gcmVxdWVzdCEiKTsNCisgICAgICAgICAgICAgICAgZG9uZSgpOw0KKyAgICAgICAgICAgIH0N
CisNCisgICAgICAgIDwvc2NyaXB0Pg0KKw0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5Pg0KKyAg
ICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCisgICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0
ZXMgdGhlIHZhbHVlcyBpbiByZXNvdXJjZSB0aW1pbmcgZm9yIGEgY3Jvc3Mtb3JpZ2luIHJlc291
cmNlIHJlcXVlc3QuPC9wPg0KKw0KKyAgICAgICAgPGJyIC8+DQorICAgICAgICA8aWZyYW1lIGlk
PSJmcmFtZUNvbnRleHQiIHNyYz0iIiBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1MHB4
OyI+PC9pZnJhbWU+DQorICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIHRlc3RfZXF1YWxz
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QsIHBhZ2VPcmlnaW4sICdTdGFydGluZyBkb2N1bWVudC5s
b2NhdGlvbi5ob3N0bmFtZSBpcyBjb3JyZWN0ICgnICsgcGFnZU9yaWdpbiArICcpJyk7DQorICAg
ICAgICAgICAgdmFyIGRlc3RVcmwgPSAnaHR0cDovLycgKyBjcm9zc09yaWdpbiArICcvdzNjL3dl
YnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW4uaHRtJzsNCisNCisgICAgICAgICAgICB2
YXIgZnJhbWVDb250ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lQ29udGV4dCIp
Ow0KKyAgICAgICAgICAgIGZyYW1lQ29udGV4dC5vbmxvYWQgPSBvbmxvYWRfdGVzdDsNCisgICAg
ICAgICAgICBmcmFtZUNvbnRleHQuc3JjID0gZGVzdFVybDsNCisgICAgICAgIDwvc2NyaXB0Pg0K
KyAgICA8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNv
dXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lv
bi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfdGltaW5nX2FsbG93
X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
NTdjODg5N2FkMWE5ZmVlY2U2MTYyY2EzN2Y0NGQ5NmYyMjhmYTc5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jl
c291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ190aW1pbmdfYWxsb3dfY3Jvc3Nfb3Jp
Z2luX3Jlc291cmNlX3JlcXVlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK0Rlc2Ny
aXB0aW9uDQorDQorVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgdmFsdWVzIGluIHJlc291cmNlIHRp
bWluZyBmb3IgYSB0aW1pbmctYWxsb3ctb3JpZ2luIGNyb3NzLW9yaWdpbiByZXNvdXJjZSByZXF1
ZXN0Lg0KKw0KKw0KKw0KKw0KK1BBU1MgU3RhcnRpbmcgZG9jdW1lbnQubG9jYXRpb24uaG9zdG5h
bWUgaXMgY29ycmVjdCAoMTI3LjAuMC4xOjgwMDApIA0KK1BBU1MgcmVkaXJlY3RTdGFydCBzaG91
bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCBzaW5jZSBubyByZWRpcmVjdCEgDQorUEFT
UyByZWRpcmVjdEVuZCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCBzaW5jZSBu
byByZWRpcmVjdCEgDQorUEFTUyBkb21haW5Mb29rdXBTdGFydCBzaG91bGQgbm90IGJlIDAgaW4g
dGltaW5nLWFsbG93IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIGRvbWFpbkxvb2t1cEVu
ZCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISAN
CitQQVNTIGNvbm5lY3RTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3Nz
LW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIGNvbm5lY3RFbmQgc2hvdWxkIG5vdCBiZSAwIGluIHRp
bWluZy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQorUEFTUyByZXF1ZXN0U3RhcnQgc2hv
dWxkIG5vdCBiZSAwIGluIHRpbWluZy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQorUEFT
UyByZXNwb25zZVN0YXJ0IHNob3VsZCBub3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3Jp
Z2luIHJlcXVlc3QhIA0KK1BBU1Mgc2VjdXJlQ29ubmVjdGlvblN0YXJ0IHNob3VsZCBiZSAwIGlu
IGNyb3NzLW9yaWdpbiByZXF1ZXN0IHNpbmNlIG5vIHNzbCEgDQorUEFTUyBmZXRjaFN0YXJ0IHNo
b3VsZCBub3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KK1BB
U1MgcmVzcG9uc2VFbmQgc2hvdWxkIG5vdCBiZSAwIGluIHRpbWluZy1hbGxvdyBjcm9zcy1vcmln
aW4gcmVxdWVzdCEgDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3Rp
bWluZ190aW1pbmdfYWxsb3dfY3Jvc3Nfb3JpZ2luX3Jlc291cmNlX3JlcXVlc3QuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJj
ZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9y
ZXNvdXJjZV9yZXF1ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQzNWY0MGM0M2FkYTczMzM1NzEwN2U5
NmMyZDIzYzNjM2FkOTkzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNv
dXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0
bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIEhUTUw+DQorPGh0bWw+DQorICAgIDxoZWFk
Pg0KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+DQorICAgICAgICA8dGl0bGU+cmVz
b3VyY2UgdGltaW5nIGluZm9ybWF0aW9uIGZvciBjcm9zcy1vcmlnaW4gcmVzb3VyY2UgcmVxdWVz
dCB3aXRoIHRpbWluZy1hbGxvdy1vcmlnaW48L3RpdGxlPg0KKyAgICAgICAgPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPg0KKyAg
ICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJj
ZS10aW1pbmcvI3BlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmciLz4NCisgICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+PC9zY3JpcHQ+DQor
ICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgICAgIHNldHVwKHtleHBs
aWNpdF9kb25lOiB0cnVlfSk7DQorDQorICAgICAgICAgICAgdmFyIHBhZ2VPcmlnaW4gPSAiMTI3
LjAuMC4xOjgwMDAiOw0KKyAgICAgICAgICAgIHZhciBjcm9zc09yaWdpbiA9ICJsb2NhbGhvc3Q6
ODAwMCI7DQorDQorICAgICAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQ0KKyAgICAgICAg
ICAgIHsNCisgICAgICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250
ZXh0KHBlcmZvcm1hbmNlKTsNCisgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gY29udGV4dC5n
ZXRFbnRyaWVzQnlOYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZUNvbnRleHQiKS5z
cmMsICJyZXNvdXJjZSIpWzBdOw0KKw0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRy
eS5yZWRpcmVjdFN0YXJ0LCAwLCAicmVkaXJlY3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1v
cmlnaW4gcmVxdWVzdCBzaW5jZSBubyByZWRpcmVjdCEiKTsNCisgICAgICAgICAgICAgICAgdGVz
dF9lcXVhbHMoZW50cnkucmVkaXJlY3RFbmQsIDAsICJyZWRpcmVjdEVuZCBzaG91bGQgYmUgMCBp
biBjcm9zcy1vcmlnaW4gcmVxdWVzdCBzaW5jZSBubyByZWRpcmVjdCEiKTsNCisgICAgICAgICAg
ICAgICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnkuZG9tYWluTG9va3VwU3RhcnQsIDAsICJkb21h
aW5Mb29rdXBTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9yaWdp
biByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5k
b21haW5Mb29rdXBFbmQsIDAsICJkb21haW5Mb29rdXBFbmQgc2hvdWxkIG5vdCBiZSAwIGluIHRp
bWluZy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCisgICAgICAgICAgICAgICAgdGVz
dF9ncmVhdGVyX3RoYW4oZW50cnkuY29ubmVjdFN0YXJ0LCAwLCAiY29ubmVjdFN0YXJ0IHNob3Vs
ZCBub3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQorICAg
ICAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGVudHJ5LmNvbm5lY3RFbmQsIDAsICJjb25u
ZWN0RW5kIHNob3VsZCBub3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVl
c3QhIik7DQorICAgICAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGVudHJ5LnJlcXVlc3RT
dGFydCwgMCwgInJlcXVlc3RTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNy
b3NzLW9yaWdpbiByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhh
bihlbnRyeS5yZXNwb25zZVN0YXJ0LCAwLCAicmVzcG9uc2VTdGFydCBzaG91bGQgbm90IGJlIDAg
aW4gdGltaW5nLWFsbG93IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAg
ICB0ZXN0X2VxdWFscyhlbnRyeS5zZWN1cmVDb25uZWN0aW9uU3RhcnQsIDAsICJzZWN1cmVDb25u
ZWN0aW9uU3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3Qgc2luY2Ugbm8g
c3NsISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5mZXRjaFN0
YXJ0LCAwLCAiZmV0Y2hTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3Nz
LW9yaWdpbiByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihl
bnRyeS5yZXNwb25zZUVuZCwgMCwgInJlc3BvbnNlRW5kIHNob3VsZCBub3QgYmUgMCBpbiB0aW1p
bmctYWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQorICAgICAgICAgICAgICAgIGRvbmUo
KTsNCisgICAgICAgICAgICB9DQorDQorICAgICAgICA8L3NjcmlwdD4NCisNCisgICAgPC9oZWFk
Pg0KKyAgICA8Ym9keT4NCisgICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+DQorICAgICAgICA8
cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgaW4gcmVzb3VyY2UgdGltaW5nIGZvciBh
IHRpbWluZy1hbGxvdy1vcmlnaW4gY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHJlcXVlc3QuPC9wPg0K
Kw0KKyAgICAgICAgPGJyIC8+DQorICAgICAgICA8aWZyYW1lIGlkPSJmcmFtZUNvbnRleHQiIHNy
Yz0iIiBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9pZnJhbWU+DQorICAg
ICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIHRlc3RfZXF1YWxzKGRvY3VtZW50LmxvY2F0aW9u
Lmhvc3QsIHBhZ2VPcmlnaW4sICdTdGFydGluZyBkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSBp
cyBjb3JyZWN0ICgnICsgcGFnZU9yaWdpbiArICcpJyk7DQorDQorICAgICAgICAgICAgdmFyIHJl
cXVlc3RVcmwgPSAnaHR0cDovLycgKyBjcm9zc09yaWdpbiArICcvdzNjL3dlYnBlcmYvcmVzb3Vy
Y2VzL2JsYW5rX3BhZ2VfZ3JlZW5fd2l0aF9hbGxvd190aW1pbmcucGhwJzsNCisgICAgICAgICAg
ICByZXF1ZXN0VXJsICs9ICc/b3JpZ2luPWh0dHA6Ly8nICsgcGFnZU9yaWdpbjsNCisNCisgICAg
ICAgICAgICB2YXIgZnJhbWVDb250ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1l
Q29udGV4dCIpOw0KKyAgICAgICAgICAgIGZyYW1lQ29udGV4dC5vbmxvYWQgPSBvbmxvYWRfdGVz
dDsNCisgICAgICAgICAgICBmcmFtZUNvbnRleHQuc3JjID0gcmVxdWVzdFVybDsNCisgICAgICAg
IDwvc2NyaXB0Pg0KKyAgICA8L2JvZHk+DQorPC9odG1sPg0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177042</attachid>
            <date>2012-11-30 16:05:42 -0800</date>
            <delta_ts>2012-12-02 03:23:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84886-20121130160313.patch</filename>
            <type>text/plain</type>
            <size>20724</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZjNmMwYjRmNWMwNjY2
ZmJkN2U2MTI3OGQyZjA1ZDA3MDUwOGU1My4uNzBkZDNlZTlmMDU5M2Q0NDFmOThhNzAzMGI0NWJi
ODM2YjVmZGRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTExLTMwICBQYW4g
RGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXSBp
bXBsZW1lbnRhdGlvbiBvZiBjcm9zcyBvcmlnaW4gcmVzb3VjZSB0aW1pbmcgcmVzdHJpY3Rpb25z
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4ODYu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpbXBsZW1lbnRlZCByZXNvdXJjZSB0aW1pbmcgYmVoYXZpb3JzIG9mIGNyb3NzIG9yaWdp
bi4gQnkgZGVmYXVsdCwgZGV0YWlsZWQgdGltaW5nIGluZm8gaXMgaGlkZWQgaW4gY3Jvc3Mgb3Jp
Z2luIHJlc291cmNlIHRpbWluZywgb25seSBzdGFydFRpbWUsIGR1cmF0aW9uLCBmZXRjaFN0YXJ0
IGFuZCByZXNwb25zZUVuZCBjYW4gYmUgb2JzZXJ2ZWQuIEV4Y2VwdGlvbnMgYXJlLCBzZXJ2ZXIg
c2lkZSBhbGxvdyBpdHMgb3JpZ2luIGNhbiBiZSB0aW1pbmcgYnkgYW5vdGhlciB0aHJvdWdoIGEg
aGVhZGVyIHdpdGggInRpbWluZy1hbGxvdy1vcmlnaW4iIGZpZWxkLgorCisgICAgICAgIFRlc3Rz
OiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5n
L3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9y
ZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29y
aWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0bWwKKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFzc2VzVGltaW5nQWxsb3dDaGVjayk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjphZGRSZXNvdXJjZVRp
bWluZyk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChQZXJmb3JtYW5jZSk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5oOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y3JlYXRlKToKKyAgICAgICAgKFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcp
OgorCiAyMDEyLTExLTMwICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXBvcnQgQ1NTIGFzIGluaXRpYXRvciBpbnN0ZWFkIG9mIGVsZW1lbnRzLCBl
eGNlcHQgYm9keQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5jcHAKaW5kZXggZGYxZGM3NmVjMWQyNWRkYzNjMTY0MTMxZWFjZTYxMDQzOTIyMmQx
OS4uOWFjNzYzNTc0ZjA1NmNhZDBhNWViMWI1YzA5OThjOTMxZGQ1M2JlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ0LDE3ICs0
NSwzOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWRvdWJsZSBtb25vdG9uaWNUaW1lVG9E
b2N1bWVudE1pbGxpc2Vjb25kcyhEb2N1bWVudCogZG9jdW1lbnQsIGRvdWJsZSBzZWNvbmRzKQor
c3RhdGljIGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhEb2N1bWVu
dCogZG9jdW1lbnQsIGRvdWJsZSBzZWNvbmRzKQogewogICAgIEFTU0VSVChzZWNvbmRzID49IDAu
MCk7CiAgICAgcmV0dXJuIGRvY3VtZW50LT5sb2FkZXIoKS0+dGltaW5nKCktPm1vbm90b25pY1Rp
bWVUb1plcm9CYXNlZERvY3VtZW50VGltZShzZWNvbmRzKSAqIDEwMDAuMDsKIH0KIAorc3RhdGlj
IGJvb2wgcGFzc2VzVGltaW5nQWxsb3dDaGVjayhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCkKK3sKKyAgICBBdG9taWNhbGx5SW5p
dGlhbGl6ZWRTdGF0aWMoQXRvbWljU3RyaW5nJiwgdGltaW5nQWxsb3dPcmlnaW4gPSAqbmV3IEF0
b21pY1N0cmluZygidGltaW5nLWFsbG93LW9yaWdpbiIpKTsKKworICAgIGNvbnN0IFN0cmluZyYg
dGltaW5nQWxsb3dPcmlnaW5TdHJpbmcgPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGQodGltaW5n
QWxsb3dPcmlnaW4pOworICAgIGlmICh0aW1pbmdBbGxvd09yaWdpblN0cmluZy5pc0VtcHR5KCkg
fHwgZXF1YWxJZ25vcmluZ0Nhc2UodGltaW5nQWxsb3dPcmlnaW5TdHJpbmcsICJudWxsIikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICh0aW1pbmdBbGxvd09yaWdpblN0cmluZyA9
PSAiKiIpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgY29uc3QgU3RyaW5nJiBzZWN1cml0
eU9yaWdpbiA9IHJlcXVlc3RpbmdEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmco
KTsKKyAgICBWZWN0b3I8U3RyaW5nPiB0aW1pbmdBbGxvd09yaWdpbnM7CisgICAgdGltaW5nQWxs
b3dPcmlnaW5TdHJpbmcuc3BsaXQoIiAiLCB0aW1pbmdBbGxvd09yaWdpbnMpOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgdGltaW5nQWxsb3dPcmlnaW5zLnNpemUoKTsgKytpKQorICAgICAg
ICBpZiAodGltaW5nQWxsb3dPcmlnaW5zW2ldID09IHNlY3VyaXR5T3JpZ2luKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgQXRvbWljU3RyaW5n
JiBpbml0aWF0b3JUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBm
aW5pc2hUaW1lLCBEb2N1bWVudCogcmVxdWVzdGluZ0RvY3VtZW50KQogICAgIDogUGVyZm9ybWFu
Y2VFbnRyeShyZXF1ZXN0LnVybCgpLnN0cmluZygpLCAicmVzb3VyY2UiLCBtb25vdG9uaWNUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhyZXF1ZXN0aW5nRG9jdW1lbnQsIGluaXRpYXRpb25UaW1l
KSwgbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMocmVxdWVzdGluZ0RvY3VtZW50
LCBmaW5pc2hUaW1lKSkKICAgICAsIG1faW5pdGlhdG9yVHlwZShpbml0aWF0b3JUeXBlKQogICAg
ICwgbV90aW1pbmcocmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCiAgICAgLCBtX2Zpbmlz
aFRpbWUoZmluaXNoVGltZSkKKyAgICAsIG1fc2hvdWxkUmVwb3J0RGV0YWlscyhwYXNzZXNUaW1p
bmdBbGxvd0NoZWNrKHJlc3BvbnNlLCByZXF1ZXN0aW5nRG9jdW1lbnQpKQogICAgICwgbV9yZXF1
ZXN0aW5nRG9jdW1lbnQocmVxdWVzdGluZ0RvY3VtZW50KQogewogfQpAQCAtNzMsMTEgKzk2LDE1
IEBAIEF0b21pY1N0cmluZyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjppbml0aWF0b3JUeXBl
KCkgY29uc3QKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZWRpcmVjdFN0YXJ0
KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogTmVlZCB0byB0cmFjayBhbmQgcmVwb3J0IHJlZGly
ZWN0cyBmb3IgcmVzb3VyY2VzLgorICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQorICAg
ICAgICByZXR1cm4gMC4wOwogICAgIHJldHVybiAwOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVkaXJlY3RFbmQoKSBjb25zdAogeworICAgIGlmICghbV9zaG91bGRS
ZXBvcnREZXRhaWxzKQorICAgICAgICByZXR1cm4gMC4wOwogICAgIHJldHVybiAwOwogfQogCkBA
IC04OSw2ICsxMTYsOSBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZmV0Y2hT
dGFydCgpIGNvbnN0CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5M
b29rdXBTdGFydCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCisg
ICAgICAgIHJldHVybiAwLjA7CisKICAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kbnNT
dGFydCA8IDApCiAgICAgICAgIHJldHVybiBmZXRjaFN0YXJ0KCk7CiAKQEAgLTk3LDYgKzEyNyw5
IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCgp
IGNvbnN0CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBF
bmQoKSBjb25zdAogeworICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQorICAgICAgICBy
ZXR1cm4gMC4wOworCiAgICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zRW5kIDwgMCkK
ICAgICAgICAgcmV0dXJuIGRvbWFpbkxvb2t1cFN0YXJ0KCk7CiAKQEAgLTEwNSw2ICsxMzgsOSBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKCkgY29u
c3QKIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNvbm5lY3RTdGFydCgpIGNv
bnN0CiB7CisgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCisgICAgICAgIHJldHVybiAw
LjA7CisKICAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5jb25uZWN0U3RhcnQgPCAwKSAv
LyBDb25uZWN0aW9uIHdhcyByZXVzZWQuCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBFbmQo
KTsKIApAQCAtMTE4LDYgKzE1NCw5IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQoKSBjb25zdAogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zzo6Y29ubmVjdEVuZCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMp
CisgICAgICAgIHJldHVybiAwLjA7CisKICAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5j
b25uZWN0RW5kIDwgMCkgLy8gQ29ubmVjdGlvbiB3YXMgcmV1c2VkLgogICAgICAgICByZXR1cm4g
Y29ubmVjdFN0YXJ0KCk7CiAKQEAgLTEyNiw2ICsxNjUsOSBAQCBkb3VibGUgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6Y29ubmVjdEVuZCgpIGNvbnN0CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nOjpzZWN1cmVDb25uZWN0aW9uU3RhcnQoKSBjb25zdAogeworICAgIGlmICgh
bV9zaG91bGRSZXBvcnREZXRhaWxzKQorICAgICAgICByZXR1cm4gMC4wOworCiAgICAgaWYgKCFt
X3RpbWluZyB8fCBtX3RpbWluZy0+c3NsU3RhcnQgPCAwKSAvLyBTZWN1cmUgY29ubmVjdGlvbiBu
b3QgbmVnb3RpYXRlZC4KICAgICAgICAgcmV0dXJuIDAuMDsKIApAQCAtMTM0LDEzICsxNzYsMjAg
QEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFy
dCgpIGNvbnN0CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXF1ZXN0U3Rh
cnQoKSBjb25zdAogeworICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQorICAgICAgICBy
ZXR1cm4gMC4wOworCiAgICAgaWYgKCFtX3RpbWluZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RF
bmQoKTsKKwogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1f
dGltaW5nLT5zZW5kU3RhcnQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFp
bHMpCisgICAgICAgIHJldHVybiAwLjA7CisKICAgICBpZiAoIW1fdGltaW5nKQogICAgICAgICBy
ZXR1cm4gcmVxdWVzdFN0YXJ0KCk7CiAgICAgLy8gRklYTUU6IFRoaXMgbnVtYmVyIGlzbid0IGV4
YWN0bHkgY29ycmVjdC4gU2VlIHRoZSBub3RlcyBpbiBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9u
c2VTdGFydCgpLgpAQCAtMTQ5LDggKzE5OCwxMiBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX3Nob3VsZFJlcG9y
dERldGFpbHMpCisgICAgICAgIHJldHVybiAwLjA7CisKICAgICBpZiAoIW1fdGltaW5nKQogICAg
ICAgICByZXR1cm4gcmVzcG9uc2VTdGFydCgpOworCiAgICAgcmV0dXJuIG1vbm90b25pY1RpbWVU
b0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBtX2Zpbmlz
aFRpbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5oCmluZGV4IDY2NDI4ZDcwY2U0NTkzYTE0ZTJmZTgwZmQwNzhkNzhhZTg1ZjAwNmUu
LjM2YmZjYmE1YTQ1NmJmYWJmMjJhYTM2ZmEwZDY3ZTg3YmZkNWNiNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTc4LDYgKzc5LDcgQEAg
cHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0b3JUeXBlOwogICAgIFJlZlB0cjxS
ZXNvdXJjZUxvYWRUaW1pbmc+IG1fdGltaW5nOwogICAgIGRvdWJsZSBtX2ZpbmlzaFRpbWU7Cisg
ICAgYm9vbCBtX3Nob3VsZFJlcG9ydERldGFpbHM7CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX3Jl
cXVlc3RpbmdEb2N1bWVudDsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYzJmYzIyNGUwODJlYjNmMDM3NzY4N2My
MmNjYjEzZjZmZmZmYTQ1Li42OTE4ZGVhMzhmYjk3ZDRlZmM4NjFlMzgyMGMxMGJkNzI3NzcxYzkx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTEtMzAgIFBhbiBEZW5nICA8cGFuLmRlbmdA
aW50ZWwuY29tPgorCisgICAgICAgIFtSZXNvdXJjZSBUaW1pbmddVGVzdCBjYXNlcyBvZiBjcm9z
cyBvcmlnaW4gcmVzb3VyY2UgdGltaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4ODYuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdCBjYXNlcyBpbiB0aGlzIHBhdGNoIHZhbGlkYXRlIHJlc291
cmNlIHRpbWluZyBiZWhhdmlvciB3aGVuIGNyb3NzIG9yaWdpbiByZXF1ZXN0IHdpdGgvd2l0aG91
dCAiYWxsb3ctdGltaW5nLW9yaWdpbiIgcmVzcG9uc2UgaGVhZGVyLiAKKworICAgICAgICAqIGh0
dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW5fd2l0aF9hbGxv
d190aW1pbmcucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1
Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3Nz
X29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90
ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwv
cmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3RpbWluZ19hbGxvd19jcm9zc19v
cmlnaW5fcmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVz
dF9yZXNvdXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1
ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTMwICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFt
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXBvcnQgQ1NTIGFzIGluaXRpYXRvciBpbnN0ZWFk
IG9mIGVsZW1lbnRzLCBleGNlcHQgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV9ncmVlbl93aXRoX2FsbG93X3Rp
bWluZy5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy9i
bGFua19wYWdlX2dyZWVuX3dpdGhfYWxsb3dfdGltaW5nLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjQ5ODY4
OTY4YjU2OGQ3OTYwYTA5MjQ3ODRkNjIyOTJmOWYxODhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvYmxhbmtfcGFnZV9ncmVl
bl93aXRoX2FsbG93X3RpbWluZy5waHAKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhUTUw+
DQorPGh0bWw+DQorICAgIDxoZWFkPg0KKyAgICAgICAgPG1ldGEgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04IiBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIC8+DQorICAgICAgICA8
dGl0bGU+R3JlZW4gVGVzdCBQYWdlPC90aXRsZT4NCisgICAgICAgIDw/cGhwDQorICAgICAgICAg
ICRvcmlnaW4gPSAkX0dFVFsib3JpZ2luIl0gPyAkX0dFVFsib3JpZ2luIl0gOiAiIjsNCisgICAg
ICAgICAgaGVhZGVyKCJ0aW1pbmctYWxsb3ctb3JpZ2luOiAkb3JpZ2luIik7DQorICAgICAgICA/
Pg0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMwMEZG
MDA7Ij4NCisgICAgICAgIDxoMT5QbGFjZWhvbGRlcjwvaDE+DQorICAgIDwvYm9keT4NCis8L2h0
bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9zc19v
cmlnaW5fcmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVz
b3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ZTdlZmU1Y2I5NWY3ZTU2OWY4ZGE1NDllYjY1ZjJjNGM2YmQxZWE0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNz
aW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9zc19vcmln
aW5fcmVzb3VyY2VfcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorRGVzY3Jp
cHRpb24NCisNCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgaW4gcmVzb3VyY2UgdGlt
aW5nIGZvciBhIGNyb3NzLW9yaWdpbiByZXNvdXJjZSByZXF1ZXN0Lg0KKw0KKw0KKw0KKw0KK1BB
U1MgU3RhcnRpbmcgZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUgaXMgY29ycmVjdCAoMTI3LjAu
MC4xOjgwMDApIA0KK1BBU1MgcmVkaXJlY3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmln
aW4gcmVxdWVzdCEgDQorUEFTUyByZWRpcmVjdEVuZCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmln
aW4gcmVxdWVzdCEgDQorUEFTUyBkb21haW5Mb29rdXBTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9z
cy1vcmlnaW4gcmVxdWVzdCEgDQorUEFTUyBkb21haW5Mb29rdXBFbmQgc2hvdWxkIGJlIDAgaW4g
Y3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KK1BBU1MgY29ubmVjdFN0YXJ0IHNob3VsZCBiZSAwIGlu
IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIGNvbm5lY3RFbmQgc2hvdWxkIGJlIDAgaW4g
Y3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KK1BBU1MgcmVxdWVzdFN0YXJ0IHNob3VsZCBiZSAwIGlu
IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIHJlc3BvbnNlU3RhcnQgc2hvdWxkIGJlIDAg
aW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KK1BBU1Mgc2VjdXJlQ29ubmVjdGlvblN0YXJ0IHNo
b3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIGZldGNoU3RhcnQgc2hv
dWxkIGJlIGdyZWF0ZXIgdGhhbiAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIHJl
c3BvbnNlRW5kIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVz
dCEgDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jcm9z
c19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNl
X3RpbWluZ19jcm9zc19vcmlnaW5fcmVzb3VyY2VfcmVxdWVzdC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2
Zjc0YTZlYzczMTBiNDM2NGQ2NTUxZjQyNzc4ZTcwZjM3OTI2Y2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVz
b3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9y
ZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIEhUTUw+DQorPGh0bWw+DQor
ICAgIDxoZWFkPg0KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+DQorICAgICAgICA8
dGl0bGU+cmVzb3VyY2UgdGltaW5nIGluZm9ybWF0aW9uIGZvciBjcm9zcy1vcmlnaW4gcmVzb3Vy
Y2UgcmVxdWVzdDwvdGl0bGU+DQorICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbS8iIC8+DQorICAgICAgICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jcGVyZm9y
bWFuY2VyZXNvdXJjZXRpbWluZyIvPg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2Vi
cGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4NCisNCisgICAgICAgIDxzY3Jp
cHQ+DQorICAgICAgICAgICANCisgICAgICAgICAgICBzZXR1cCh7ZXhwbGljaXRfZG9uZTogdHJ1
ZX0pOw0KKw0KKyAgICAgICAgICAgIHZhciBwYWdlT3JpZ2luID0gIjEyNy4wLjAuMTo4MDAwIjsN
CisgICAgICAgICAgICB2YXIgY3Jvc3NPcmlnaW4gPSAibG9jYWxob3N0OjgwMDAiOw0KKw0KKyAg
ICAgICAgICAgIGZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkNCisgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dChwZXJmb3JtYW5j
ZSk7ICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICB2YXIgZW50cnkgPSBjb250ZXh0
LmdldEVudHJpZXNCeU5hbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lQ29udGV4dCIp
LnNyYywgInJlc291cmNlIilbMF07DQorDQorICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVu
dHJ5LnJlZGlyZWN0U3RhcnQsIDAsICJyZWRpcmVjdFN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3Nz
LW9yaWdpbiByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5y
ZWRpcmVjdEVuZCwgMCwgInJlZGlyZWN0RW5kIHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdpbiBy
ZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5kb21haW5Mb29r
dXBTdGFydCwgMCwgImRvbWFpbkxvb2t1cFN0YXJ0IHNob3VsZCBiZSAwIGluIGNyb3NzLW9yaWdp
biByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5kb21haW5M
b29rdXBFbmQsIDAsICJkb21haW5Mb29rdXBFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2lu
IHJlcXVlc3QhIik7DQorICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVudHJ5LmNvbm5lY3RT
dGFydCwgMCwgImNvbm5lY3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVz
dCEiKTsNCisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoZW50cnkuY29ubmVjdEVuZCwgMCwg
ImNvbm5lY3RFbmQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQorICAg
ICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGVudHJ5LnJlcXVlc3RTdGFydCwgMCwgInJlcXVlc3RT
dGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCisgICAgICAgICAg
ICAgICAgdGVzdF9lcXVhbHMoZW50cnkucmVzcG9uc2VTdGFydCwgMCwgInJlc3BvbnNlU3RhcnQg
c2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQorICAgICAgICAgICAgICAg
IHRlc3RfZXF1YWxzKGVudHJ5LnNlY3VyZUNvbm5lY3Rpb25TdGFydCwgMCwgInNlY3VyZUNvbm5l
Y3Rpb25TdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCisgICAg
ICAgICAgICAgICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnkuZmV0Y2hTdGFydCwgMCwgImZldGNo
U3RhcnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIp
Ow0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5yZXNwb25zZUVuZCwg
MCwgInJlc3BvbnNlRW5kIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMCBpbiBjcm9zcy1vcmlnaW4g
cmVxdWVzdCEiKTsNCisgICAgICAgICAgICAgICAgZG9uZSgpOw0KKyAgICAgICAgICAgIH0NCisN
CisgICAgICAgIDwvc2NyaXB0Pg0KKw0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5Pg0KKyAgICAg
ICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCisgICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMg
dGhlIHZhbHVlcyBpbiByZXNvdXJjZSB0aW1pbmcgZm9yIGEgY3Jvc3Mtb3JpZ2luIHJlc291cmNl
IHJlcXVlc3QuPC9wPg0KKw0KKyAgICAgICAgPGJyIC8+DQorICAgICAgICA8aWZyYW1lIGlkPSJm
cmFtZUNvbnRleHQiIHNyYz0iIiBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+
PC9pZnJhbWU+DQorICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIHRlc3RfZXF1YWxzKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QsIHBhZ2VPcmlnaW4sICdTdGFydGluZyBkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0bmFtZSBpcyBjb3JyZWN0ICgnICsgcGFnZU9yaWdpbiArICcpJyk7DQorICAgICAg
ICAgICAgdmFyIGRlc3RVcmwgPSAnaHR0cDovLycgKyBjcm9zc09yaWdpbiArICcvdzNjL3dlYnBl
cmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW4uaHRtJzsNCisNCisgICAgICAgICAgICB2YXIg
ZnJhbWVDb250ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lQ29udGV4dCIpOw0K
KyAgICAgICAgICAgIGZyYW1lQ29udGV4dC5vbmxvYWQgPSBvbmxvYWRfdGVzdDsNCisgICAgICAg
ICAgICBmcmFtZUNvbnRleHQuc3JjID0gZGVzdFVybDsNCisgICAgICAgIDwvc2NyaXB0Pg0KKyAg
ICA8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJj
ZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9J
bnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Ny
b3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTdj
ODg5N2FkMWE5ZmVlY2U2MTYyY2EzN2Y0NGQ5NmYyMjhmYTc5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291
cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ190aW1pbmdfYWxsb3dfY3Jvc3Nfb3JpZ2lu
X3Jlc291cmNlX3JlcXVlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK0Rlc2NyaXB0
aW9uDQorDQorVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgdmFsdWVzIGluIHJlc291cmNlIHRpbWlu
ZyBmb3IgYSB0aW1pbmctYWxsb3ctb3JpZ2luIGNyb3NzLW9yaWdpbiByZXNvdXJjZSByZXF1ZXN0
Lg0KKw0KKw0KKw0KKw0KK1BBU1MgU3RhcnRpbmcgZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUg
aXMgY29ycmVjdCAoMTI3LjAuMC4xOjgwMDApIA0KK1BBU1MgcmVkaXJlY3RTdGFydCBzaG91bGQg
YmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCBzaW5jZSBubyByZWRpcmVjdCEgDQorUEFTUyBy
ZWRpcmVjdEVuZCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmlnaW4gcmVxdWVzdCBzaW5jZSBubyBy
ZWRpcmVjdCEgDQorUEFTUyBkb21haW5Mb29rdXBTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGlt
aW5nLWFsbG93IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQQVNTIGRvbWFpbkxvb2t1cEVuZCBz
aG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISANCitQ
QVNTIGNvbm5lY3RTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9y
aWdpbiByZXF1ZXN0ISANCitQQVNTIGNvbm5lY3RFbmQgc2hvdWxkIG5vdCBiZSAwIGluIHRpbWlu
Zy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQorUEFTUyByZXF1ZXN0U3RhcnQgc2hvdWxk
IG5vdCBiZSAwIGluIHRpbWluZy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEgDQorUEFTUyBy
ZXNwb25zZVN0YXJ0IHNob3VsZCBub3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3JpZ2lu
IHJlcXVlc3QhIA0KK1BBU1Mgc2VjdXJlQ29ubmVjdGlvblN0YXJ0IHNob3VsZCBiZSAwIGluIGNy
b3NzLW9yaWdpbiByZXF1ZXN0IHNpbmNlIG5vIHNzbCEgDQorUEFTUyBmZXRjaFN0YXJ0IHNob3Vs
ZCBub3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIA0KK1BBU1Mg
cmVzcG9uc2VFbmQgc2hvdWxkIG5vdCBiZSAwIGluIHRpbWluZy1hbGxvdyBjcm9zcy1vcmlnaW4g
cmVxdWVzdCEgDQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWlu
Z190aW1pbmdfYWxsb3dfY3Jvc3Nfb3JpZ2luX3Jlc291cmNlX3JlcXVlc3QuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10
aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNv
dXJjZV9yZXF1ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQzNWY0MGM0M2FkYTczMzM1NzEwN2U5NmMy
ZDIzYzNjM2FkOTkzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJj
ZV90aW1pbmdfdGltaW5nX2FsbG93X2Nyb3NzX29yaWdpbl9yZXNvdXJjZV9yZXF1ZXN0Lmh0bWwK
QEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIEhUTUw+DQorPGh0bWw+DQorICAgIDxoZWFkPg0K
KyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+DQorICAgICAgICA8dGl0bGU+cmVzb3Vy
Y2UgdGltaW5nIGluZm9ybWF0aW9uIGZvciBjcm9zcy1vcmlnaW4gcmVzb3VyY2UgcmVxdWVzdCB3
aXRoIHRpbWluZy1hbGxvdy1vcmlnaW48L3RpdGxlPg0KKyAgICAgICAgPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPg0KKyAgICAg
ICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10
aW1pbmcvI3BlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmciLz4NCisgICAgICAgIDxzY3JpcHQgc3Jj
PSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pg0K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYv
cmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+PC9zY3JpcHQ+DQorICAg
ICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgICAgIHNldHVwKHtleHBsaWNp
dF9kb25lOiB0cnVlfSk7DQorDQorICAgICAgICAgICAgdmFyIHBhZ2VPcmlnaW4gPSAiMTI3LjAu
MC4xOjgwMDAiOw0KKyAgICAgICAgICAgIHZhciBjcm9zc09yaWdpbiA9ICJsb2NhbGhvc3Q6ODAw
MCI7DQorDQorICAgICAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQ0KKyAgICAgICAgICAg
IHsNCisgICAgICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0
KHBlcmZvcm1hbmNlKTsNCisgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gY29udGV4dC5nZXRF
bnRyaWVzQnlOYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZUNvbnRleHQiKS5zcmMs
ICJyZXNvdXJjZSIpWzBdOw0KKw0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhlbnRyeS5y
ZWRpcmVjdFN0YXJ0LCAwLCAicmVkaXJlY3RTdGFydCBzaG91bGQgYmUgMCBpbiBjcm9zcy1vcmln
aW4gcmVxdWVzdCBzaW5jZSBubyByZWRpcmVjdCEiKTsNCisgICAgICAgICAgICAgICAgdGVzdF9l
cXVhbHMoZW50cnkucmVkaXJlY3RFbmQsIDAsICJyZWRpcmVjdEVuZCBzaG91bGQgYmUgMCBpbiBj
cm9zcy1vcmlnaW4gcmVxdWVzdCBzaW5jZSBubyByZWRpcmVjdCEiKTsNCisgICAgICAgICAgICAg
ICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnkuZG9tYWluTG9va3VwU3RhcnQsIDAsICJkb21haW5M
b29rdXBTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9yaWdpbiBy
ZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5kb21h
aW5Mb29rdXBFbmQsIDAsICJkb21haW5Mb29rdXBFbmQgc2hvdWxkIG5vdCBiZSAwIGluIHRpbWlu
Zy1hbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdCEiKTsNCisgICAgICAgICAgICAgICAgdGVzdF9n
cmVhdGVyX3RoYW4oZW50cnkuY29ubmVjdFN0YXJ0LCAwLCAiY29ubmVjdFN0YXJ0IHNob3VsZCBu
b3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQorICAgICAg
ICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGVudHJ5LmNvbm5lY3RFbmQsIDAsICJjb25uZWN0
RW5kIHNob3VsZCBub3QgYmUgMCBpbiB0aW1pbmctYWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVlc3Qh
Iik7DQorICAgICAgICAgICAgICAgIHRlc3RfZ3JlYXRlcl90aGFuKGVudHJ5LnJlcXVlc3RTdGFy
dCwgMCwgInJlcXVlc3RTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3Nz
LW9yaWdpbiByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihl
bnRyeS5yZXNwb25zZVN0YXJ0LCAwLCAicmVzcG9uc2VTdGFydCBzaG91bGQgbm90IGJlIDAgaW4g
dGltaW5nLWFsbG93IGNyb3NzLW9yaWdpbiByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0
ZXN0X2VxdWFscyhlbnRyeS5zZWN1cmVDb25uZWN0aW9uU3RhcnQsIDAsICJzZWN1cmVDb25uZWN0
aW9uU3RhcnQgc2hvdWxkIGJlIDAgaW4gY3Jvc3Mtb3JpZ2luIHJlcXVlc3Qgc2luY2Ugbm8gc3Ns
ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeS5mZXRjaFN0YXJ0
LCAwLCAiZmV0Y2hTdGFydCBzaG91bGQgbm90IGJlIDAgaW4gdGltaW5nLWFsbG93IGNyb3NzLW9y
aWdpbiByZXF1ZXN0ISIpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRy
eS5yZXNwb25zZUVuZCwgMCwgInJlc3BvbnNlRW5kIHNob3VsZCBub3QgYmUgMCBpbiB0aW1pbmct
YWxsb3cgY3Jvc3Mtb3JpZ2luIHJlcXVlc3QhIik7DQorICAgICAgICAgICAgICAgIGRvbmUoKTsN
CisgICAgICAgICAgICB9DQorDQorICAgICAgICA8L3NjcmlwdD4NCisNCisgICAgPC9oZWFkPg0K
KyAgICA8Ym9keT4NCisgICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+DQorICAgICAgICA8cD5U
aGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB2YWx1ZXMgaW4gcmVzb3VyY2UgdGltaW5nIGZvciBhIHRp
bWluZy1hbGxvdy1vcmlnaW4gY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHJlcXVlc3QuPC9wPg0KKw0K
KyAgICAgICAgPGJyIC8+DQorICAgICAgICA8aWZyYW1lIGlkPSJmcmFtZUNvbnRleHQiIHNyYz0i
IiBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9pZnJhbWU+DQorICAgICAg
ICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIHRlc3RfZXF1YWxzKGRvY3VtZW50LmxvY2F0aW9uLmhv
c3QsIHBhZ2VPcmlnaW4sICdTdGFydGluZyBkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSBpcyBj
b3JyZWN0ICgnICsgcGFnZU9yaWdpbiArICcpJyk7DQorDQorICAgICAgICAgICAgdmFyIHJlcXVl
c3RVcmwgPSAnaHR0cDovLycgKyBjcm9zc09yaWdpbiArICcvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L2JsYW5rX3BhZ2VfZ3JlZW5fd2l0aF9hbGxvd190aW1pbmcucGhwJzsNCisgICAgICAgICAgICBy
ZXF1ZXN0VXJsICs9ICc/b3JpZ2luPWh0dHA6Ly8nICsgcGFnZU9yaWdpbjsNCisNCisgICAgICAg
ICAgICB2YXIgZnJhbWVDb250ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lQ29u
dGV4dCIpOw0KKyAgICAgICAgICAgIGZyYW1lQ29udGV4dC5vbmxvYWQgPSBvbmxvYWRfdGVzdDsN
CisgICAgICAgICAgICBmcmFtZUNvbnRleHQuc3JjID0gcmVxdWVzdFVybDsNCisgICAgICAgIDwv
c2NyaXB0Pg0KKyAgICA8L2JvZHk+DQorPC9odG1sPg0K
</data>

          </attachment>
      

    </bug>

</bugzilla>