<?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>183826</bug_id>
          
          <creation_ts>2018-03-21 08:37:23 -0700</creation_ts>
          <short_desc>[Web Animations] Make imported/mozilla/css-animations/test_animation-pausing.html pass reliably</short_desc>
          <delta_ts>2018-06-25 03:00:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=186484</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=183821</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=186997</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>realdawei</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1408011</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-03-21 08:37:23 -0700</bug_when>
    <thetext>The new tests added under imported/mozilla/css-animations and imported/mozilla/css-transitions are mostly failing reliably, flaky or timing out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431736</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-11 02:33:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/40997412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435236</commentid>
    <comment_count>2</comment_count>
      <attachid>343269</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-06-21 13:49:00 -0700</bug_when>
    <thetext>Created attachment 343269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436012</commentid>
    <comment_count>3</comment_count>
      <attachid>343269</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-06-25 02:11:02 -0700</bug_when>
    <thetext>Comment on attachment 343269
Patch

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

&gt; Source/WebCore/ChangeLog:21
&gt; +        The second issue is that some of the sub-tests would be flaky failure because the expected clearly that animations
&gt; +        would be resolved prior to firing a requestAnimationFrame() callback, as the HTML5 event loop mandates. But until
&gt; +        now, both DocumentTimeline and ScriptedAnimationController would make calls to DisplayRefreshMonitorManager::scheduleAnimation()
&gt; +        that were not coordinated and so the order in which the DocumentTimeline and ScriptedAnimationController callbacks
&gt; +        were performed was not guaranteed.

Why isn&apos;t this a separate patch?

&gt; Source/WebCore/animation/DocumentAnimationScheduler.h:41
&gt; +class DocumentAnimationScheduler : public RefCounted&lt;DocumentAnimationScheduler&gt;
&gt; +    , public DisplayRefreshMonitorClient {

i don&apos;t think this should be split on two lines.

&gt; Source/WebCore/animation/DocumentTimeline.cpp:-221
&gt; -    DisplayRefreshMonitorManager::sharedManager().scheduleAnimation(*this);

So is DisplayRefreshMonitorManager::sharedManager() used anywhere now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436020</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-06-25 02:27:07 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #3)
&gt; Comment on attachment 343269 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=343269&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:21
&gt; &gt; +        The second issue is that some of the sub-tests would be flaky failure because the expected clearly that animations
&gt; &gt; +        would be resolved prior to firing a requestAnimationFrame() callback, as the HTML5 event loop mandates. But until
&gt; &gt; +        now, both DocumentTimeline and ScriptedAnimationController would make calls to DisplayRefreshMonitorManager::scheduleAnimation()
&gt; &gt; +        that were not coordinated and so the order in which the DocumentTimeline and ScriptedAnimationController callbacks
&gt; &gt; +        were performed was not guaranteed.
&gt; 
&gt; Why isn&apos;t this a separate patch?

This patch is addressing all remaining issues that makes this test fail. I&apos;ll land in two separate commits.

&gt; &gt; Source/WebCore/animation/DocumentAnimationScheduler.h:41
&gt; &gt; +class DocumentAnimationScheduler : public RefCounted&lt;DocumentAnimationScheduler&gt;
&gt; &gt; +    , public DisplayRefreshMonitorClient {
&gt; 
&gt; i don&apos;t think this should be split on two lines.

Will fix.

&gt; &gt; Source/WebCore/animation/DocumentTimeline.cpp:-221
&gt; &gt; -    DisplayRefreshMonitorManager::sharedManager().scheduleAnimation(*this);
&gt; 
&gt; So is DisplayRefreshMonitorManager::sharedManager() used anywhere now?

Sure, DocumentAnimationScheduler uses it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436026</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-06-25 02:58:21 -0700</bug_when>
    <thetext>First and main part of the reviewed patch landed as part of  https://bugs.webkit.org/show_bug.cgi?id=186997.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436027</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-06-25 03:00:49 -0700</bug_when>
    <thetext>Committed r233141: &lt;https://trac.webkit.org/changeset/233141&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343269</attachid>
            <date>2018-06-21 13:49:00 -0700</date>
            <delta_ts>2018-06-25 02:11:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183826-20180621224859.patch</filename>
            <type>text/plain</type>
            <size>39531</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVlYTkwZDcyNWRlZWVi
ZjdhNzI2ZjExYmU3MDQ1YjdiZjE3NzA2NC4uMGZiODE4ODEwNTkzY2U4ZTc5MjI5M2JjNTAxZWU0
M2I3MzBlMWM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE4LTA2LTIxICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBNYWtlIGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tcGF1
c2luZy5odG1sIHBhc3MgcmVsaWFibHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4MzgyNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDA5OTc0MTI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUg
d2VyZSB0d28gaXNzdWVzIHByZXZlbnRpbmcgdGhlIHN1Yi10ZXN0cyBpbiB0aGlzIHRlc3QgZmls
ZSB0byBwYXNzLgorCisgICAgICAgIFRoZSBmaXJzdCBpc3N1ZSBpcyB0aGF0IHRoZSBDU1MgQW5p
bWF0aW9ucyBMZXZlbCAyIHNwZWNpZmljYXRpb24gZGVmaW5lcyB0aGF0IGNhbGxpbmcgcGF1c2Uo
KSBvbiBhIENTU0FuaW1hdGlvbgorICAgICAgICBvYmplY3QgaXMgInN0aWNreSIgdW50aWwgYSBj
YWxsIHRvIHBsYXkoKSBpcyBtYWRlLCBtZWFuaW5nIHRoYXQgYW55IGNoYW5nZXMgdG8gdGhlIHJ1
bm5pbmcgc3RhdGUgdmlhIHRoZSBDU1MKKyAgICAgICAgYW5pbWF0aW9uLXBsYXktc3RhdGUgcHJv
cGVydHkgaXMgb3ZlcnJpZGRlbiBieSB0aGUgc3RpY2tpbmVzcyBvZiB0aGUgcGF1c2UoKSBjYWxs
LiBJbiB0aGlzIHBhdGNoIHdlIGFkZCBhbgorICAgICAgICBtX3N0aWNreVBhdXNlZCBmbGFnIHdo
aWNoIGlzIHNldCBpbiBBUEkgY2FsbHMgdG8gcGF1c2UoKSBhbmQgcGxheSgpLiBXaGlsZSB0aGlz
IGZsYWcgaXMgdHJ1ZSwgY2hhbmdlcyB0byB0aGUKKyAgICAgICAgYW5pbWF0aW9uLXBsYXktc3Rh
dGUgcHJvcGVydHkgdG8gdGhlICJydW5uaW5nIiB2YWx1ZSBhcmUgaWdub3JlZC4KKworICAgICAg
ICBUaGUgc2Vjb25kIGlzc3VlIGlzIHRoYXQgc29tZSBvZiB0aGUgc3ViLXRlc3RzIHdvdWxkIGJl
IGZsYWt5IGZhaWx1cmUgYmVjYXVzZSB0aGUgZXhwZWN0ZWQgY2xlYXJseSB0aGF0IGFuaW1hdGlv
bnMKKyAgICAgICAgd291bGQgYmUgcmVzb2x2ZWQgcHJpb3IgdG8gZmlyaW5nIGEgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCkgY2FsbGJhY2ssIGFzIHRoZSBIVE1MNSBldmVudCBsb29wIG1hbmRhdGVz
LiBCdXQgdW50aWwKKyAgICAgICAgbm93LCBib3RoIERvY3VtZW50VGltZWxpbmUgYW5kIFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlciB3b3VsZCBtYWtlIGNhbGxzIHRvIERpc3BsYXlSZWZyZXNo
TW9uaXRvck1hbmFnZXI6OnNjaGVkdWxlQW5pbWF0aW9uKCkKKyAgICAgICAgdGhhdCB3ZXJlIG5v
dCBjb29yZGluYXRlZCBhbmQgc28gdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBEb2N1bWVudFRpbWVs
aW5lIGFuZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIgY2FsbGJhY2tzCisgICAgICAgIHdl
cmUgcGVyZm9ybWVkIHdhcyBub3QgZ3VhcmFudGVlZC4KKworICAgICAgICBJbiB0aGlzIHBhdGNo
IHdlIGFkZCBhIG5ldyBEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlciBjbGFzcyB3aGljaCBpcyBj
cmVhdGVkIGJ5IGEgRG9jdW1lbnQgdG8gbWFuYWdlIHRoaXMgc3BlY2lmaWMKKyAgICAgICAgc2l0
dWF0aW9uLiBOb3cgRG9jdW1lbnRUaW1lbGluZSBhbmQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9s
bGVyIHVzZSB0aGlzIHN1cHBvcnRpbmcgb2JqZWN0IGluc3RlYWQgb2YgYmVpbmcgdGhlaXIKKyAg
ICAgICAgb3duIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCBhbmQgY2FsbCBzY2hlZHVsZVdl
YkFuaW1hdGlvbnNSZXNvbHV0aW9uKCkgYW5kIHNjaGVkdWxlU2NyaXB0ZWRBbmltYXRpb25SZXNv
bHV0aW9uKCkKKyAgICAgICAgcmVzcGVjdGl2ZWx5IHRvIGluZGljYXRlIHRoZSBuZWVkIHRvIHNj
aGVkdWxlIGFuIGFuaW1hdGlvbiB0aHJvdWdoIHRoZSBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5h
Z2VyIHRvIHNlcnZlIHRoZSBzcGVjaWZpYworICAgICAgICBuZWVkcyBvZiBlaXRoZXIsIG9yIGJv
dGgsIGNsYXNzZXMuIFRoZW4gRG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXIgZW5zdXJlcyB0aGF0
IFdlYiBBbmltYXRpb25zIHJlc29sdXRpb24gaGFwcGVucworICAgICAgICBwcmlvciB0byByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2tzIHdoZW4gYm90aCBhcmUgc2NoZWR1bGVkLgorCisg
ICAgICAgIEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkIGJlIGFibGUgdG8gbW92ZSBtb3JlIGNvZGUg
ZnJvbSBEb2N1bWVudFRpbWVsaW5lIGFuZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIgb3Zl
ciB0bworICAgICAgICBEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlciwgc3VjaCBhcyBzdXBwb3J0
IGZvciB0aHJvdHRsaW5nIGFuZCB1c2luZyBhIHRpbWVyLWJhc2VkIGZhbGxiYWNrLCBidXQgdGhp
cyBwYXRjaCBwcm92aWRlcworICAgICAgICB0aGUgbWluaW1hbCBmdW5jdGlvbmFsaXR5IHJlcXVp
cmVkIHRvIHByb3ZpZGUgYSBzb3VuZGVyIGZvdW5kYXRpb24uCisKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnZyL1ZSRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWUkRpc3BsYXk6OnJlcXVl
c3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NB
bmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uOjpzeW5jUHJvcGVy
dGllc1dpdGhCYWNraW5nQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlv
bjo6YmluZGluZ3NQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbjo6YmluZGlu
Z3NQYXVzZSk6CisgICAgICAgICogYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5oOgorICAgICAgICAq
IGFuaW1hdGlvbi9Eb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXI6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlcjo6RG9jdW1lbnRBbmltYXRpb25T
Y2hlZHVsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXI6
OmRldGFjaEZyb21Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEFuaW1hdGlv
blNjaGVkdWxlcjo6c2NoZWR1bGVXZWJBbmltYXRpb25zUmVzb2x1dGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVTY3JpcHRlZEFuaW1h
dGlvblJlc29sdXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRBbmltYXRpb25TY2hl
ZHVsZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRB
bmltYXRpb25TY2hlZHVsZXI6OndpbmRvd1NjcmVlbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlcjo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25p
dG9yIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRBbmltYXRpb25TY2hlZHVs
ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5o
LgorICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50VGltZWxpbmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudFRpbWVsaW5lOjpEb2N1bWVudFRpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50VGltZWxpbmU6OnNjaGVkdWxlQW5pbWF0aW9uUmVzb2x1dGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudFRpbWVsaW5lOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hN
b25pdG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRUaW1l
bGluZS5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YW5p
bWF0aW9uU2NoZWR1bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0aW1lbGluZSk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXI6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNjaGVkdWxlQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6ZG9jdW1lbnRBbmltYXRp
b25TY2hlZHVsZXJEaWRGaXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6
OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
ZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpjcmVhdGUpOgorCiAyMDE4LTA2LTIwICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBN
YWtlIGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tcmVhZHku
aHRtbCBwYXNzIHJlbGlhYmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnZyL1ZSRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnZyL1ZSRGlzcGxh
eS5jcHAKaW5kZXggMTI3Y2M1YzgzODIxNGEyODJkMzA3OTdhNzZiNTE4Y2Q5MjkxOTJjZi4uM2U0
ZjMyZTVjMmIyMGIzODk0OTA5MmQ3OTNjMDU2N2VlZTM0MDkxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ2ci9WUkRpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VidnIvVlJEaXNwbGF5LmNwcApAQCAtMTEwLDEzICsxMTAsNyBAQCB1aW50MzJf
dCBWUkRpc3BsYXk6OnJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8UmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2s+JiYgYwogewogICAgIGlmICghbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIpIHsKICAgICAgICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElT
UExBWV9NT05JVE9SKQotICAgICAgICAvLyBGSVhNRTogR2V0IHRoZSBkaXNwbGF5IGlkIG9mIHRo
ZSBITUQgYXMgaXQgc2hvdWxkIHVzZSB0aGUgSE1EIG5hdGl2ZSByZWZyZXNoIHJhdGUuCi0gICAg
ICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCA9IGRvY3VtZW50LT5wYWdlKCkgPyBkb2N1
bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5kaXNwbGF5SUQoKSA6IDA7Ci0gICAgICAgIG1fc2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyID0gU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpjcmVh
dGUoKmRvY3VtZW50LCBkaXNwbGF5SUQpOwotI2Vsc2UKLSAgICAgICAgbV9zY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIgPSBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSgqZG9j
dW1lbnQsIDApOwotI2VuZGlmCisgICAgICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
ID0gU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpjcmVhdGUoKmRvY3VtZW50KTsKICAgICB9
CiAKICAgICByZXR1cm4gbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPnJlZ2lzdGVyQ2Fs
bGJhY2soV1RGTW92ZShjYWxsYmFjaykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA4YjAyNjAxY2I4OTBk
YTlmYzRlMWQwYjliN2Q4YzM0YTU5MGUyOWYzLi42MjEwZmYyYjFhYjc2YWVjYjkxNjE2ZjY3ZmI3
ZTE3MzZhNzgxYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzM5LDYgKzMzOSw3IEBAIGFuaW1hdGlv
bi9BbmltYXRpb25UaW1lbGluZS5jcHAKIGFuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCiBhbmlt
YXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKIGFuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5j
cHAKK2FuaW1hdGlvbi9Eb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlci5jcHAKIGFuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lLmNwcAogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAogYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDU2NmQ3Y2QzNDQ5OGMxNTlkMjQ1
NGQ5MjE2MGUyZDcyZWViNmQ3Yi4uNzAzYmQ2YWE0NDA4ZWQzOWI0MzdkNGUwMGY3NjVjMjM2NzE2
MTU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjAyNSw2ICsyMDI1LDcgQEAKIAkJNzE1NTZDQkUxRjlGMEE0OTAwRTc4RDA4
IC8qIEpTS2V5ZnJhbWVFZmZlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcxNTU2Q0I3MUY5RjA5RkMwMEU3OEQwOCAvKiBKU0tleWZyYW1lRWZmZWN0
LmggKi87IH07CiAJCTcxNUFENzIwMjA1MDUxMzIwMEQ1OTJEQyAvKiBEZWNsYXJhdGl2ZUFuaW1h
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzE1
QUQ3MUQyMDUwNTEyNDAwRDU5MkRDIC8qIERlY2xhcmF0aXZlQW5pbWF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzE1QUQ3MjEyMDUwNTEz
RjAwRDU5MkRDIC8qIENTU1RyYW5zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDcxMjNDMTg2MjA0NzM5QkEwMDc4OTM5MiAvKiBDU1NUcmFuc2l0
aW9uLmggKi87IH07CisJCTcxNkU1NUIwMjBEQkFCRjEwMEYwQ0YyOSAvKiBEb2N1bWVudEFuaW1h
dGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzE2RTU1QUQyMERCQUJEQzAwRjBDRjI5IC8qIERvY3VtZW50QW5pbWF0aW9uU2NoZWR1
bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzFBMUI2MDgxREVFNUFENzAwNzNCQ0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6
ZWQtc3RyaW5ncy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzFBMUI2MDYxREVFNUE4MjAwNzNCQ0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1s
b2NhbGl6ZWQtc3RyaW5ncy5qcyAqLzsgfTsKIAkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8q
IFNWR1BhdGhVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmgg
Ki87IH07CiAJCTcxQjI4NDI3MjAzQ0VDNEMwMDM2QUE1RCAvKiBKU0NTU0FuaW1hdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFCMjg0MjYyMDND
RUMwRDAwMzZBQTVEIC8qIEpTQ1NTQW5pbWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkwNTgsNiArOTA1OSw4IEBACiAJCTcxNkM4REY2
MUU0OEIyQjUwMDVCRDBEQSAvKiB2b2x1bWUtZG93bi1mdWxsc2NyZWVuQDJ4LnBuZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0
aCA9ICJ2b2x1bWUtZG93bi1mdWxsc2NyZWVuQDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxNkM4REY3MUU0OEIyQjUwMDVCRDBEQSAvKiB2b2x1bWUtdXAtZnVsbHNjcmVl
bkAxeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBpbWFnZS5wbmc7IHBhdGggPSAidm9sdW1lLXVwLWZ1bGxzY3JlZW5AMXgucG5nIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzE2QzhERjgxRTQ4QjJCNTAwNUJEMERBIC8qIHZvbHVt
ZS11cC1mdWxsc2NyZWVuQDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJ2b2x1bWUtdXAtZnVsbHNjcmVlbkAy
eC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MTZFNTVBRDIwREJBQkRDMDBG
MENGMjkgLyogRG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzE2RTU1QUYyMERCQUJERDAwRjBDRjI5IC8qIERvY3VtZW50QW5p
bWF0aW9uU2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzE2RkEwRDgxREIyNjU5MTAwNzMyM0NDIC8qIGFpcnBsYXktYnV0dG9uLmNzcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuY3NzOyBwYXRoID0gImFpcnBsYXktYnV0dG9uLmNzcyI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcxNkZBMEQ5MURCMjY1OTEwMDczMjNDQyAvKiBhaXJwbGF5LWJ1
dHRvbi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJhaXJwbGF5
LWJ1dHRvbi5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxNkZBMERBMURCMjY1
OTEwMDczMjNDQyAvKiBhaXJwbGF5LXBsYWNhcmQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmph
dmFzY3JpcHQ7IHBhdGggPSAiYWlycGxheS1wbGFjYXJkLmpzIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5NTA2LDYgKzE5NTA5LDggQEAKIAkJCQk3MTIzQzE4NTIwNDczOUI5MDA3
ODkzOTIgLyogQ1NTVHJhbnNpdGlvbi5pZGwgKi8sCiAJCQkJNzE1QUQ3MUYyMDUwNTEyNDAwRDU5
MkRDIC8qIERlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcCAqLywKIAkJCQk3MTVBRDcxRDIwNTA1MTI0
MDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24uaCAqLywKKwkJCQk3MTZFNTVBRjIwREJB
QkREMDBGMENGMjkgLyogRG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXIuY3BwICovLAorCQkJCTcx
NkU1NUFEMjBEQkFCREMwMEYwQ0YyOSAvKiBEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlci5oICov
LAogCQkJCTcxMDI1RUM0MUY5OUYwOTYwMDRBMjUwQyAvKiBEb2N1bWVudFRpbWVsaW5lLmNwcCAq
LywKIAkJCQk3MTAyNUVDNTFGOTlGMDk2MDA0QTI1MEMgLyogRG9jdW1lbnRUaW1lbGluZS5oICov
LAogCQkJCTcxMDI1RUNBMUY5OUYwOTYwMDRBMjUwQyAvKiBEb2N1bWVudFRpbWVsaW5lLmlkbCAq
LywKQEAgLTI3Njc4LDYgKzI3NjgzLDcgQEAKIAkJCQlCMkYzNEZFNjBFODJGODE0MDBGNjI3Q0Qg
LyogRE5TLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RUU2ODQ2RjEyRDI2RTM4MDBFNzMyMTUgLyog
RE5TUmVzb2x2ZVF1ZXVlQ0ZOZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg1RjQwMDk3NjU3
NjYwMDU4MjZEOSAvKiBEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzE2RTU1QjAyMERC
QUJGMTAwRjBDRjI5IC8qIERvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBM0JCNTlGNDE0NTdBNDBEMDBBQzU2RkUgLyogRG9jdW1lbnRFdmVudFF1ZXVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1ODI2RDkgLyogRG9jdW1lbnRG
cmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZFMTY2NkUxRkNDODZBMjAwQzk3MTBCIC8q
IERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9DU1NBbmltYXRpb24uY3BwCmluZGV4IGFiYjZkYWQ0MDgwMDhjODVlNjlkMWQ2MWIxYzYz
NDRiNjM3ZTY4OGIuLjkzMWIzYmZjOWZiMjIxOGJkMDdjNzlkNjhhM2E5N2M1ZTEyZTNhYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCkBAIC05MSw5ICs5MSwx
MCBAQCB2b2lkIENTU0FuaW1hdGlvbjo6c3luY1Byb3BlcnRpZXNXaXRoQmFja2luZ0FuaW1hdGlv
bigpCiAgICAgdGltaW5nLT5zZXRJdGVyYXRpb25EdXJhdGlvbihTZWNvbmRzKGFuaW1hdGlvbi5k
dXJhdGlvbigpKSk7CiAKICAgICAvLyBTeW5jaHJvbml6ZSB0aGUgcGxheSBzdGF0ZQotICAgIGlm
IChhbmltYXRpb24ucGxheVN0YXRlKCkgPT0gQW5pbWF0aW9uUGxheVN0YXRlOjpQbGF5aW5nICYm
IHBsYXlTdGF0ZSgpID09IFdlYkFuaW1hdGlvbjo6UGxheVN0YXRlOjpQYXVzZWQpCi0gICAgICAg
IHBsYXkoKTsKLSAgICBlbHNlIGlmIChhbmltYXRpb24ucGxheVN0YXRlKCkgPT0gQW5pbWF0aW9u
UGxheVN0YXRlOjpQYXVzZWQgJiYgcGxheVN0YXRlKCkgPT0gV2ViQW5pbWF0aW9uOjpQbGF5U3Rh
dGU6OlJ1bm5pbmcpCisgICAgaWYgKGFuaW1hdGlvbi5wbGF5U3RhdGUoKSA9PSBBbmltYXRpb25Q
bGF5U3RhdGU6OlBsYXlpbmcgJiYgcGxheVN0YXRlKCkgPT0gV2ViQW5pbWF0aW9uOjpQbGF5U3Rh
dGU6OlBhdXNlZCkgeworICAgICAgICBpZiAoIW1fc3RpY2t5UGF1c2VkKQorICAgICAgICAgICAg
cGxheSgpOworICAgIH0gZWxzZSBpZiAoYW5pbWF0aW9uLnBsYXlTdGF0ZSgpID09IEFuaW1hdGlv
blBsYXlTdGF0ZTo6UGF1c2VkICYmIHBsYXlTdGF0ZSgpID09IFdlYkFuaW1hdGlvbjo6UGxheVN0
YXRlOjpSdW5uaW5nKQogICAgICAgICBwYXVzZSgpOwogCiAgICAgdW5zdXNwZW5kRWZmZWN0SW52
YWxpZGF0aW9uKCk7CkBAIC0xNTMsMTIgKzE1NCwxNCBAQCBXZWJBbmltYXRpb246OkZpbmlzaGVk
UHJvbWlzZSYgQ1NTQW5pbWF0aW9uOjpiaW5kaW5nc0ZpbmlzaGVkKCkKIEV4Y2VwdGlvbk9yPHZv
aWQ+IENTU0FuaW1hdGlvbjo6YmluZGluZ3NQbGF5KCkKIHsKICAgICBmbHVzaFBlbmRpbmdTdHls
ZUNoYW5nZXMoKTsKKyAgICBtX3N0aWNreVBhdXNlZCA9IGZhbHNlOwogICAgIHJldHVybiBEZWNs
YXJhdGl2ZUFuaW1hdGlvbjo6YmluZGluZ3NQbGF5KCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IENTU0FuaW1hdGlvbjo6YmluZGluZ3NQYXVzZSgpCiB7CiAgICAgZmx1c2hQZW5kaW5nU3R5bGVD
aGFuZ2VzKCk7CisgICAgbV9zdGlja3lQYXVzZWQgPSB0cnVlOwogICAgIHJldHVybiBEZWNsYXJh
dGl2ZUFuaW1hdGlvbjo6YmluZGluZ3NQYXVzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vQ1NTQW5pbWF0aW9uLmgKaW5kZXggM2RiMTA1M2RiNTM2MGUyYjM4MmEyNzhiODY4MWI2MDQ1
M2UyMDcxZC4uMDdhNDJlMTg4ZDY1MTVmOGE5N2Y3Y2U0NzNkZmM1YmNjMDUwYjAxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uaApAQCAtNjQsNiArNjQsNyBAQCBwcml2
YXRlOgogCiAgICAgU3RyaW5nIG1fYW5pbWF0aW9uTmFtZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVuZGVyU3R5bGU+IG1fdW5hbmltYXRlZFN0eWxlOworICAgIGJvb2wgbV9zdGlja3lQYXVzZWQg
eyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTdjYmIyMzI2YTI5NjhiOWU5MjAyNGE0YTY3MzJiYWI3MTNjZTJhYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudEFuaW1hdGlvblNj
aGVkdWxlci5jcHAKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRBbmltYXRpb25TY2hlZHVsZXIuaCIKKworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RV9ESVNQTEFZX01PTklUT1IpCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJv
bWVDbGllbnQuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEaXNwbGF5UmVm
cmVzaE1vbml0b3IuaCIKKyNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxl
cj4gRG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlcihkb2N1bWVudCwgZGlzcGxheUlEKSk7Cit9CisK
K0RvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVyOjpEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlcihE
b2N1bWVudCYgZG9jdW1lbnQsIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKKyAgICA6IG1f
ZG9jdW1lbnQoJmRvY3VtZW50KQoreworICAgIHdpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5
SUQpOworfQorCitEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlcjo6fkRvY3VtZW50QW5pbWF0aW9u
U2NoZWR1bGVyKCkgPSBkZWZhdWx0OworCit2b2lkIERvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVy
OjpkZXRhY2hGcm9tRG9jdW1lbnQoKQoreworICAgIG1fZG9jdW1lbnQgPSBudWxscHRyOworfQor
Citib29sIERvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZVdlYkFuaW1hdGlvbnNS
ZXNvbHV0aW9uKCkKK3sKKyAgICBtX3NjaGVkdWxlZFdlYkFuaW1hdGlvbnNSZXNvbHV0aW9uID0g
dHJ1ZTsKKyAgICByZXR1cm4gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpLnNjaGVkdWxlQW5pbWF0aW9uKCp0aGlzKTsKK30KKworYm9vbCBEb2N1bWVudEFuaW1h
dGlvblNjaGVkdWxlcjo6c2NoZWR1bGVTY3JpcHRlZEFuaW1hdGlvblJlc29sdXRpb24oKQorewor
ICAgIG1fc2NoZWR1bGVkU2NyaXB0ZWRBbmltYXRpb25SZXNvbHV0aW9uID0gdHJ1ZTsKKyAgICBy
ZXR1cm4gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNjaGVk
dWxlQW5pbWF0aW9uKCp0aGlzKTsKK30KKwordm9pZCBEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxl
cjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpCit7CisgICAgaWYgKG1fc2NoZWR1bGVkV2ViQW5pbWF0
aW9uc1Jlc29sdXRpb24pIHsKKyAgICAgICAgbV9zY2hlZHVsZWRXZWJBbmltYXRpb25zUmVzb2x1
dGlvbiA9IGZhbHNlOworICAgICAgICBtX2RvY3VtZW50LT50aW1lbGluZSgpLmRvY3VtZW50QW5p
bWF0aW9uU2NoZWR1bGVyRGlkRmlyZSgpOworICAgIH0KKworICAgIGlmIChtX3NjaGVkdWxlZFNj
cmlwdGVkQW5pbWF0aW9uUmVzb2x1dGlvbikgeworICAgICAgICBtX3NjaGVkdWxlZFNjcmlwdGVk
QW5pbWF0aW9uUmVzb2x1dGlvbiA9IGZhbHNlOworICAgICAgICBpZiAoYXV0byogc2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyID0gbV9kb2N1bWVudC0+c2NyaXB0ZWRBbmltYXRpb25Db250cm9s
bGVyKCkpCisgICAgICAgICAgICBzY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPmRvY3VtZW50
QW5pbWF0aW9uU2NoZWR1bGVyRGlkRmlyZSgpOworICAgIH0KK30KKwordm9pZCBEb2N1bWVudEFu
aW1hdGlvblNjaGVkdWxlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlE
IGRpc3BsYXlJRCkKK3sKKyAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRN
YW5hZ2VyKCkud2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCwgKnRoaXMpOworfQorCitS
ZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlcjo6
Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQtPnBhZ2UoKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoYXV0byBtb25pdG9yID0gbV9kb2N1bWVu
dC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5jcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3Io
ZGlzcGxheUlEKSkKKyAgICAgICAgcmV0dXJuIG1vbml0b3I7CisKKyAgICByZXR1cm4gRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3Bs
YXlJRCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudEFuaW1hdGlvblNjaGVkdWxlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZmNzUzNTUyZTY4YzczOWIwMWZmNTFjMjRiMmU2ZGYzNzNkN2I1ZTUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXIu
aApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVf
RElTUExBWV9NT05JVE9SKQorCisjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIERvY3VtZW50QW5p
bWF0aW9uU2NoZWR1bGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RG9jdW1lbnRBbmltYXRpb25TY2hl
ZHVsZXI+CisgICAgLCBwdWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPERvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVyPiBjcmVhdGUoRG9j
dW1lbnQmLCBQbGF0Zm9ybURpc3BsYXlJRCk7CisgICAgfkRvY3VtZW50QW5pbWF0aW9uU2NoZWR1
bGVyKCk7CisKKyAgICB2b2lkIGRldGFjaEZyb21Eb2N1bWVudCgpOworICAgIHZvaWQgd2luZG93
U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlEKTsKKworICAgIGJvb2wgc2NoZWR1bGVX
ZWJBbmltYXRpb25zUmVzb2x1dGlvbigpOworICAgIGJvb2wgc2NoZWR1bGVTY3JpcHRlZEFuaW1h
dGlvblJlc29sdXRpb24oKTsKKworcHJpdmF0ZToKKyAgICBEb2N1bWVudEFuaW1hdGlvblNjaGVk
dWxlcihEb2N1bWVudCYsIFBsYXRmb3JtRGlzcGxheUlEKTsKKworICAgIFJlZlB0cjxEb2N1bWVu
dD4gbV9kb2N1bWVudDsKKyAgICBib29sIG1fc2NoZWR1bGVkV2ViQW5pbWF0aW9uc1Jlc29sdXRp
b24geyBmYWxzZSB9OworICAgIGJvb2wgbV9zY2hlZHVsZWRTY3JpcHRlZEFuaW1hdGlvblJlc29s
dXRpb24geyBmYWxzZSB9OworCisgICAgdm9pZCBkaXNwbGF5UmVmcmVzaEZpcmVkKCkgb3ZlcnJp
ZGU7CisgICAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJl
c2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RV9ESVNQTEFZX01PTklUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RG9jdW1lbnRUaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRU
aW1lbGluZS5jcHAKaW5kZXggMDY0OTY5NjYxNmFkMDQxMGE0OTM1MWE2OWZhY2I3MmM1YjNlZmVi
Ny4uNWFiMjA5ODI3ZmE2NjE0ODhmOTM2MDQzYWJhZDU2YjhiOTI1MjJhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAtMjcsMTIgKzI3LDgg
QEAKICNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCiAKICNpbmNsdWRlICJBbmltYXRpb25Q
bGF5YmFja0V2ZW50LmgiCi0jaW5jbHVkZSAiQ2hyb21lLmgiCi0jaW5jbHVkZSAiQ2hyb21lQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVjbGFyYXRpdmVBbmlt
YXRpb24uaCIKLSNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCIKLSNpbmNsdWRlICJE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJLZXlmcmFtZUVmZmVjdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTQzLDEyICsz
OSwxMiBAQCBzdGF0aWMgY29uc3QgU2Vjb25kcyB0aHJvdHRsZWRBbmltYXRpb25JbnRlcnZhbCB7
IDMwX21zIH07CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPERvY3VtZW50VGltZWxpbmU+
IERvY3VtZW50VGltZWxpbmU6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBsYXRmb3JtRGlz
cGxheUlEIGRpc3BsYXlJRCkKK1JlZjxEb2N1bWVudFRpbWVsaW5lPiBEb2N1bWVudFRpbWVsaW5l
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERvY3VtZW50VGltZWxpbmUoZG9jdW1lbnQsIGRpc3BsYXlJRCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERvY3VtZW50VGltZWxpbmUoZG9jdW1lbnQpKTsKIH0KIAotRG9jdW1lbnRUaW1l
bGluZTo6RG9jdW1lbnRUaW1lbGluZShEb2N1bWVudCYgZG9jdW1lbnQsIFBsYXRmb3JtRGlzcGxh
eUlEIGRpc3BsYXlJRCkKK0RvY3VtZW50VGltZWxpbmU6OkRvY3VtZW50VGltZWxpbmUoRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogQW5pbWF0aW9uVGltZWxpbmUoRG9jdW1lbnRUaW1lbGluZUNs
YXNzKQogICAgICwgbV9kb2N1bWVudCgmZG9jdW1lbnQpCiAgICAgLCBtX2FuaW1hdGlvblNjaGVk
dWxlVGltZXIoKnRoaXMsICZEb2N1bWVudFRpbWVsaW5lOjphbmltYXRpb25TY2hlZHVsZVRpbWVy
RmlyZWQpCkBAIC01Niw3ICs1Miw2IEBAIERvY3VtZW50VGltZWxpbmU6OkRvY3VtZW50VGltZWxp
bmUoRG9jdW1lbnQmIGRvY3VtZW50LCBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5CiAgICAgLCBt
X2FuaW1hdGlvblJlc29sdXRpb25UaW1lcigqdGhpcywgJkRvY3VtZW50VGltZWxpbmU6OmFuaW1h
dGlvblJlc29sdXRpb25UaW1lckZpcmVkKQogI2VuZGlmCiB7Ci0gICAgd2luZG93U2NyZWVuRGlk
Q2hhbmdlKGRpc3BsYXlJRCk7CiB9CiAKIERvY3VtZW50VGltZWxpbmU6On5Eb2N1bWVudFRpbWVs
aW5lKCkKQEAgLTIxOCw3ICsyMTMsNyBAQCB2b2lkIERvY3VtZW50VGltZWxpbmU6OmFuaW1hdGlv
blNjaGVkdWxlVGltZXJGaXJlZCgpCiB2b2lkIERvY3VtZW50VGltZWxpbmU6OnNjaGVkdWxlQW5p
bWF0aW9uUmVzb2x1dGlvbigpCiB7CiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJ
U1BMQVlfTU9OSVRPUikKLSAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRN
YW5hZ2VyKCkuc2NoZWR1bGVBbmltYXRpb24oKnRoaXMpOworICAgIG1fZG9jdW1lbnQtPmFuaW1h
dGlvblNjaGVkdWxlcigpLnNjaGVkdWxlV2ViQW5pbWF0aW9uc1Jlc29sdXRpb24oKTsKICNlbHNl
CiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gdXNlIHRoZSBzYW1lIGxvZ2ljIGFzIFNjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlciBoZXJlLAogICAgIC8vIHdoaWNoIHdpbGwgYmUgYWRkcmVzc2Vk
IGJ5IHRoZSByZWZhY3RvciB0cmFja2VkIGJ5IHdlYmtpdC5vcmcvYi8xNzkyOTMuCkBAIC0yMjcs
NyArMjIyLDcgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lOjpzY2hlZHVsZUFuaW1hdGlvblJlc29s
dXRpb24oKQogfQogCiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9O
SVRPUikKLXZvaWQgRG9jdW1lbnRUaW1lbGluZTo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpCit2b2lk
IERvY3VtZW50VGltZWxpbmU6OmRvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVyRGlkRmlyZSgpCiAj
ZWxzZQogdm9pZCBEb2N1bWVudFRpbWVsaW5lOjphbmltYXRpb25SZXNvbHV0aW9uVGltZXJGaXJl
ZCgpCiAjZW5kaWYKQEAgLTM5MiwyNiArMzg3LDQgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lOjpw
ZXJmb3JtRXZlbnREaXNwYXRjaFRhc2soKQogICAgICAgICBwZW5kaW5nRXZlbnQtPnRhcmdldCgp
LT5kaXNwYXRjaEV2ZW50KHBlbmRpbmdFdmVudCk7CiB9CiAKLXZvaWQgRG9jdW1lbnRUaW1lbGlu
ZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKLXsK
LSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQotICAgIERp
c3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS53aW5kb3dTY3JlZW5E
aWRDaGFuZ2UoZGlzcGxheUlELCAqdGhpcyk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkaXNw
bGF5SUQpOwotI2VuZGlmCi19Ci0KLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElT
UExBWV9NT05JVE9SKQotUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRG9jdW1lbnRUaW1l
bGluZTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3Bs
YXlJRCkgY29uc3QKLXsKLSAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fZG9jdW1lbnQtPnBhZ2Uo
KSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoYXV0byBtb25pdG9yID0gbV9k
b2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5jcmVhdGVEaXNwbGF5UmVmcmVzaE1v
bml0b3IoZGlzcGxheUlEKSkKLSAgICAgICAgcmV0dXJuIG1vbml0b3I7Ci0KLSAgICByZXR1cm4g
RGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2hNb25pdG9y
KGRpc3BsYXlJRCk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmgKaW5kZXggMWJhNDQ4YjJlOGM3
M2UxNDAyYjI3YmM5MTk0ODEzOWI2ZTViNWM5OC4uZDVmNGU4NTFkN2MwOTY5M2FlYjkxZWYyMjU0
NGYwZWUzYjFiZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1l
bGluZS5oCkBAIC0yNywyNiArMjcsMTggQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvblRpbWVsaW5l
LmgiCiAjaW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU2Ny
ZWVuLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKLSNpZiBV
U0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQotI2luY2x1ZGUgIkRp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQW5pbWF0aW9uUGxheWJhY2tFdmVudDsKIGNsYXNzIFJlbmRlckVsZW1lbnQ7
CiAKIGNsYXNzIERvY3VtZW50VGltZWxpbmUgZmluYWwgOiBwdWJsaWMgQW5pbWF0aW9uVGltZWxp
bmUKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQotICAg
ICwgcHVibGljIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudAotI2VuZGlmCiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxEb2N1bWVudFRpbWVsaW5lPiBjcmVhdGUoRG9jdW1lbnQmLCBQbGF0
Zm9ybURpc3BsYXlJRCk7CisgICAgc3RhdGljIFJlZjxEb2N1bWVudFRpbWVsaW5lPiBjcmVhdGUo
RG9jdW1lbnQmKTsKICAgICB+RG9jdW1lbnRUaW1lbGluZSgpOwogCiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5nZXQoKTsgfQpAQCAtNTUsNyArNDcs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXVzZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCB0aW1p
bmdNb2RlbERpZENoYW5nZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgd2luZG93U2NyZWVuRGlkQ2hh
bmdlKFBsYXRmb3JtRGlzcGxheUlEKTsKIAogICAgIC8vIElmIHBvc3NpYmxlLCBjb21wdXRlIHRo
ZSB2aXN1YWwgZXh0ZW50IG9mIGFueSB0cmFuc2Zvcm0gYW5pbWF0aW9uIG9uIHRoZSBnaXZlbiBy
ZW5kZXJlcgogICAgIC8vIHVzaW5nIHRoZSBnaXZlbiByZWN0LCByZXR1cm5pbmcgdGhlIHJlc3Vs
dCBpbiB0aGUgcmVjdC4gUmV0dXJuIGZhbHNlIGlmIHRoZXJlIGlzIHNvbWUKQEAgLTcxLDYgKzYy
LDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQo
QW5pbWF0aW9uUGxheWJhY2tFdmVudCYpOwogCisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICB2b2lkIGRvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVy
RGlkRmlyZSgpOworI2VuZGlmCisKICAgICB2b2lkIHVwZGF0ZVRocm90dGxpbmdTdGF0ZSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIFNlY29uZHMgYW5pbWF0aW9uSW50ZXJ2YWwoKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN1c3BlbmRBbmltYXRpb25zKCk7CkBAIC03OSw3ICs3NCw3
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBudW1iZXJPZkFjdGl2ZUFu
aW1hdGlvbnNGb3JUZXN0aW5nKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgRG9jdW1lbnRUaW1l
bGluZShEb2N1bWVudCYsIFBsYXRmb3JtRGlzcGxheUlEKTsKKyAgICBEb2N1bWVudFRpbWVsaW5l
KERvY3VtZW50Jik7CiAKICAgICB2b2lkIHNjaGVkdWxlSW52YWxpZGF0aW9uVGFza0lmTmVlZGVk
KCk7CiAgICAgdm9pZCBwZXJmb3JtSW52YWxpZGF0aW9uVGFzaygpOwpAQCAtMTAwLDExICs5NSw3
IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gbV9hY2NlbGVy
YXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRlQ2hhbmdlOwogICAgIFZlY3RvcjxSZWY8
QW5pbWF0aW9uUGxheWJhY2tFdmVudD4+IG1fcGVuZGluZ0FuaW1hdGlvbkV2ZW50czsKIAotI2lm
IFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCi0gICAgLy8gT3Zl
cnJpZGUgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudAotICAgIHZvaWQgZGlzcGxheVJl
ZnJlc2hGaXJlZCgpIG92ZXJyaWRlOwotICAgIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+
IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3Qgb3Zl
cnJpZGU7Ci0jZWxzZQorI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9N
T05JVE9SKQogICAgIHZvaWQgYW5pbWF0aW9uUmVzb2x1dGlvblRpbWVyRmlyZWQoKTsKICAgICBU
aW1lciBtX2FuaW1hdGlvblJlc29sdXRpb25UaW1lcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggNjg3MzE0NmI2ZTNmMDNiZjQ1M2JlYjdiMGFhMDlmYjBjNzVmYzM4MS4uMjI2
OWYxNTBhY2RhZjFjZWIwZWUzYjMwYTMwMGZkYjNiYjExNzBmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVk
ZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCIKQEAgLTI0NDMsNiArMjQ0NCwxMSBAQCB2b2lk
IERvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogICAgICAgICBtX3RpbWVsaW5lID0g
bnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAobV9hbmltYXRpb25TY2hlZHVsZXIpIHsKKyAgICAg
ICAgbV9hbmltYXRpb25TY2hlZHVsZXItPmRldGFjaEZyb21Eb2N1bWVudCgpOworICAgICAgICBt
X2FuaW1hdGlvblNjaGVkdWxlciA9IG51bGxwdHI7CisgICAgfQorCiAgICAgbV9oYXNQcmVwYXJl
ZEZvckRlc3RydWN0aW9uID0gdHJ1ZTsKIAogICAgIC8vIE5vdGUgdGhhdCBtX3BhZ2VDYWNoZVN0
YXRlIGNhbiBiZSBEb2N1bWVudDo6QWJvdXRUb0VudGVyUGFnZUNhY2hlIGlmIG91ciBmcmFtZQpA
QCAtNTkxMCwxMSArNTkxNiw4IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc3VtZVNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlckNhbGxiYWNrcygpCiAKIHZvaWQgRG9jdW1lbnQ6OndpbmRvd1NjcmVlbkRp
ZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7Ci0gICAgaWYgKG1fc2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyKQotICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlci0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCk7Ci0KLSAgICBpZiAobV90aW1l
bGluZSkKLSAgICAgICAgbV90aW1lbGluZS0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJ
RCk7CisgICAgaWYgKG1fYW5pbWF0aW9uU2NoZWR1bGVyKQorICAgICAgICBtX2FuaW1hdGlvblNj
aGVkdWxlci0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCk7CiAKICAgICBpZiAoUmVu
ZGVyVmlldyogdmlldyA9IHJlbmRlclZpZXcoKSkgewogICAgICAgICBpZiAodmlldy0+dXNlc0Nv
bXBvc2l0aW5nKCkpCkBAIC02NTAwLDExICs2NTAzLDggQEAgZG91YmxlIERvY3VtZW50Ojptb25v
dG9uaWNUaW1lc3RhbXAoKSBjb25zdAogaW50IERvY3VtZW50OjpyZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoUmVmPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAg
IGlmICghbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpIHsKLSNpZiBVU0UoUkVRVUVTVF9B
TklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQotICAgICAgICBtX3NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlciA9IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCp0aGlz
LCBwYWdlKCkgPyBwYWdlKCktPmNocm9tZSgpLmRpc3BsYXlJRCgpIDogMCk7Ci0jZWxzZQotICAg
ICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlciA9IFNjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlcjo6Y3JlYXRlKCp0aGlzLCAwKTsKLSNlbmRpZgorICAgICAgICBtX3NjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlciA9IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCp0
aGlzKTsKKwogICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIFBhZ2UgbWF5IGhhdmUg
c3VzcGVuZGVkIHNjcmlwdGVkIGFuaW1hdGlvbnMgYmVmb3JlCiAgICAgICAgIC8vIHdlIHdlcmUg
Y3JlYXRlZC4gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBzdGFydCB1cCB0aGUg
YW5pbWF0aW9uCiAgICAgICAgIC8vIGNvbnRyb2xsZXIgb24gYSBiYWNrZ3JvdW5kIHRhYiwgZm9y
IGV4YW1wbGUuCkBAIC03NjkxLDEwICs3NjkxLDE4IEBAIHZvaWQgRG9jdW1lbnQ6OnNldENvbnNv
bGVNZXNzYWdlTGlzdGVuZXIoUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxpc3RlbmVyKQogICAg
IG1fY29uc29sZU1lc3NhZ2VMaXN0ZW5lciA9IGxpc3RlbmVyOwogfQogCitEb2N1bWVudEFuaW1h
dGlvblNjaGVkdWxlciYgRG9jdW1lbnQ6OmFuaW1hdGlvblNjaGVkdWxlcigpCit7CisgICAgaWYg
KCFtX2FuaW1hdGlvblNjaGVkdWxlcikKKyAgICAgICAgbV9hbmltYXRpb25TY2hlZHVsZXIgPSBE
b2N1bWVudEFuaW1hdGlvblNjaGVkdWxlcjo6Y3JlYXRlKCp0aGlzLCBwYWdlKCkgPyBwYWdlKCkt
PmNocm9tZSgpLmRpc3BsYXlJRCgpIDogMCk7CisKKyAgICByZXR1cm4gKm1fYW5pbWF0aW9uU2No
ZWR1bGVyOworfQorCiBEb2N1bWVudFRpbWVsaW5lJiBEb2N1bWVudDo6dGltZWxpbmUoKQogewog
ICAgIGlmICghbV90aW1lbGluZSkKLSAgICAgICAgbV90aW1lbGluZSA9IERvY3VtZW50VGltZWxp
bmU6OmNyZWF0ZSgqdGhpcywgcGFnZSgpID8gcGFnZSgpLT5jaHJvbWUoKS5kaXNwbGF5SUQoKSA6
IDApOworICAgICAgICBtX3RpbWVsaW5lID0gRG9jdW1lbnRUaW1lbGluZTo6Y3JlYXRlKCp0aGlz
KTsKIAogICAgIHJldHVybiAqbV90aW1lbGluZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
NmVkMWU2ODc5Y2ExZTFkODlhZjg5YjIxYTJkZDBmZjY1ZmUzYzk5MC4uOTU2MjZmOWU0ZGExMzgy
NzQ0MzljMzhiYTE0NjI5ZTlmZWE4YzVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTgwLDYg
KzgwLDcgQEAgY2xhc3MgSW5wdXRDdXJzb3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgRG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXI7CiBjbGFzcyBBcHBsaWNhdGlvblN0YXRlQ2hh
bmdlTGlzdGVuZXI7CiBjbGFzcyBBWE9iamVjdENhY2hlOwogY2xhc3MgQXR0cjsKQEAgLTE0MDAs
NiArMTQwMSw4IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29uc29s
ZU1lc3NhZ2VMaXN0ZW5lcihSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYpOyAvLyBGb3IgdGVzdGlu
Zy4KIAorICAgIERvY3VtZW50QW5pbWF0aW9uU2NoZWR1bGVyJiBhbmltYXRpb25TY2hlZHVsZXIo
KTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50VGltZWxpbmUmIHRpbWVsaW5lKCk7CiAg
ICAgRG9jdW1lbnRUaW1lbGluZSogZXhpc3RpbmdUaW1lbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZWxpbmUuZ2V0KCk7IH0KICAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGdldEFu
aW1hdGlvbnMoKTsKQEAgLTE5MTIsNiArMTkxNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hh
c0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZ3JhbnRT
dG9yYWdlQWNjZXNzT3ZlcnJpZGUgeyBmYWxzZSB9OwogCisgICAgUmVmUHRyPERvY3VtZW50QW5p
bWF0aW9uU2NoZWR1bGVyPiBtX2FuaW1hdGlvblNjaGVkdWxlcjsKICAgICBSZWZQdHI8RG9jdW1l
bnRUaW1lbGluZT4gbV90aW1lbGluZTsKICAgICBEb2N1bWVudElkZW50aWZpZXIgbV9pZGVudGlm
aWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwCmluZGV4IGM0ZDg1ZDgzNDk0ZGVhZGY4OGYwMWQ0YTVjNzFjMTdiZGU5ZjY0ODQu
LjkzYjE3NjU3MDBhYjE2NTg4M2Y0ZmRmNzhkN2E1M2Y5MWU0NmExMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0yOSw5
ICsyOSw4IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9y
LmgiCi0jaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRBbmltYXRpb25TY2hlZHVsZXIuaCIKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCkBAIC01NSwxMSArNTQsMTAgQEAgc3RhdGljIGNvbnN0IFNlY29uZHMgYWdn
cmVzc2l2ZVRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbCB7IDEwX3MgfTsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OlNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlcihEb2N1bWVudCYgZG9jdW1lbnQsIFBsYXRmb3JtRGlzcGxheUlEIGRpc3Bs
YXlJRCkKK1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoJmRvY3VtZW50KQog
ICAgICwgbV9hbmltYXRpb25UaW1lcigqdGhpcywgJlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
cjo6YW5pbWF0aW9uVGltZXJGaXJlZCkKIHsKLSAgICB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoZGlz
cGxheUlEKTsKIH0KIAogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjp+U2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyKCkgPSBkZWZhdWx0OwpAQCAtMjM0LDE3ICsyMzIsNiBAQCB2b2lkIFNj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhkb3Vi
bGUgdGltZXN0YW1wKQogICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogfQogCi12b2lkIFNj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3Jt
RGlzcGxheUlEIGRpc3BsYXlJRCkKLXsKLSAgICBpZiAoIXJlcXVlc3RBbmltYXRpb25GcmFtZUVu
YWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RV9ESVNQTEFZX01PTklUT1IpCi0gICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hh
cmVkTWFuYWdlcigpLndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5SUQsICp0aGlzKTsKLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKGRpc3BsYXlJRCk7Ci0jZW5kaWYKLX0KLQogU2Vjb25kcyBT
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OmludGVydmFsKCkgY29uc3QKIHsKICNpZiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQpAQCAtMjc0LDcgKzI2MSw3
IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpzY2hlZHVsZUFuaW1hdGlvbigp
CiAKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQogICAg
IGlmICghbV9pc1VzaW5nVGltZXIgJiYgIWlzVGhyb3R0bGVkKCkpIHsKLSAgICAgICAgaWYgKERp
c3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zY2hlZHVsZUFuaW1h
dGlvbigqdGhpcykpCisgICAgICAgIGlmIChtX2RvY3VtZW50LT5hbmltYXRpb25TY2hlZHVsZXIo
KS5zY2hlZHVsZVNjcmlwdGVkQW5pbWF0aW9uUmVzb2x1dGlvbigpKQogICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgIG1faXNVc2luZ1RpbWVyID0gdHJ1ZTsKQEAgLTMwOCwyMSArMjk1LDEw
IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRpb25UaW1lckZpcmVk
KCkKIH0KIAogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1Ip
Ci12b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgp
Cit2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6ZG9jdW1lbnRBbmltYXRpb25TY2hl
ZHVsZXJEaWRGaXJlKCkKIHsKICAgICBzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKG1fZG9jdW1l
bnQtPmRvbVdpbmRvdygpLT5ub3dUaW1lc3RhbXAoKSk7CiB9Ci0KLVJlZlB0cjxEaXNwbGF5UmVm
cmVzaE1vbml0b3I+IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKLXsKLSAgICBp
ZiAoIW1fZG9jdW1lbnQtPnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBp
ZiAoYXV0byBtb25pdG9yID0gbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5j
cmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKSkKLSAgICAgICAgcmV0dXJuIG1v
bml0b3I7Ci0KLSAgICByZXR1cm4gRGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0
RGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7Ci19CiAjZW5kaWYKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oCmluZGV4IDA2
ZDhhYThhNDk5ZjQzY2I0NmQ1ODAwYmE0ZGFiNmE1ODQzNzQ3ZjguLjdhYjhlYzE0YTAwN2I3MzVm
ODUwODM0Y2M0ZGMxMjNlOWU2YTlmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTI1LDE3ICsyNSwxMiBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0jaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKLSNpbmNsdWRlICJE
aXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERvY3VtZW50OwpAQCAtNDMsMTQgKzM4LDExIEBAIGNsYXNzIFBhZ2U7CiBj
bGFzcyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjazsKIAogY2xhc3MgU2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8U2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyPgotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1Ip
Ci0gICAgLCBwdWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Ci0jZW5kaWYKIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcj4gY3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQorICAgIHN0
YXRpYyBSZWY8U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyPiBjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyKGRvY3VtZW50LCBkaXNwbGF5SUQpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKGRvY3VtZW50KSk7CiAgICAg
fQogICAgIH5TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKTsKICAgICB2b2lkIGNsZWFyRG9j
dW1lbnRQb2ludGVyKCkgeyBtX2RvY3VtZW50ID0gbnVsbHB0cjsgfQpAQCAtNzcsMTkgKzY5LDE2
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVGhyb3R0bGVkKCkgY29uc3Q7
CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Vjb25kcyBpbnRlcnZhbCgpIGNvbnN0OwogCi0gICAgdm9p
ZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQpOworI2lmIFVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisgICAgdm9pZCBkb2N1bWVudEFu
aW1hdGlvblNjaGVkdWxlckRpZEZpcmUoKTsKKyNlbmRpZgogCiBwcml2YXRlOgotICAgIFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlcihEb2N1bWVudCYsIFBsYXRmb3JtRGlzcGxheUlEKTsKKyAg
ICBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgc2No
ZWR1bGVBbmltYXRpb24oKTsKICAgICB2b2lkIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKIAotI2lm
IFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCi0gICAgLy8gT3Zl
cnJpZGUgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudAotICAgIHZvaWQgZGlzcGxheVJl
ZnJlc2hGaXJlZCgpIG92ZXJyaWRlOwotI2VuZGlmCi0KICAgICBQYWdlKiBwYWdlKCkgY29uc3Q7
CiAKICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2s+PiBDYWxsYmFja0xpc3Q7CkBAIC0xMDMsNyArOTIsNiBAQCBwcml2YXRlOgogICAgIGRvdWJs
ZSBtX2xhc3RBbmltYXRpb25GcmFtZVRpbWVzdGFtcCB7IDAgfTsKIAogI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCi0gICAgUmVmUHRyPERpc3BsYXlSZWZy
ZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlE
KSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25TZXQ8VGhyb3R0bGluZ1JlYXNvbj4gbV90aHJv
dHRsaW5nUmVhc29uczsKICAgICBib29sIG1faXNVc2luZ1RpbWVyIHsgZmFsc2UgfTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDZhZjhhZWJiN2VkNjIxZmEwZjI1MGQ0Mzk0MGM5OGRiMTYxYjQxOWUuLjAzZTcz
ZjMyZGQ4YWU2YTJiMDExNDA0OTBhYTljOWQzOTYzMDM5YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxOC0wNi0yMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXZWIgQW5pbWF0aW9uc10gTWFrZSBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25z
L3Rlc3RfYW5pbWF0aW9uLXBhdXNpbmcuaHRtbCBwYXNzIHJlbGlhYmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM4MjYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQwOTk3NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgdGVzdCBub3cgcGFzc2VzIHJlbGlhYmx5LgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOC0wNi0yMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gTWFrZSBpbXBvcnRlZC9tb3pp
bGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLXJlYWR5Lmh0bWwgcGFzcyByZWxpYWJs
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL0NoYW5nZUxvZwppbmRleCBhMWU2ODc5OTMxNzZi
NWFlMGQzOTQyYThkYTY1ZmUzZDVhYmVlZTJjLi43ZGM5ODVkZjllYWE4ZWYwYzBkZWUzZTNmZjMy
YWJmMDI4NTdhYjM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE4LTA2LTIxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBNYWtlIGltcG9ydGVkL21vemlsbGEvY3Nz
LWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tcGF1c2luZy5odG1sIHBhc3MgcmVsaWFibHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzgyNgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDA5OTc0MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFyayBwcm9ncmVzc2lvbnMgaW4gdGhlIE1vemlsbGEg
Q1NTIEFuaW1hdGlvbnMgdGVzdHMuCisKKyAgICAgICAgKiBjc3MtYW5pbWF0aW9ucy90ZXN0X2Fu
aW1hdGlvbi1wYXVzaW5nLWV4cGVjdGVkLnR4dDoKKwogMjAxOC0wNi0yMCAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gTWFrZSBp
bXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLXJlYWR5Lmh0bWwg
cGFzcyByZWxpYWJseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjhjY2U2YzZiMDlkZGFiOGE4ZDZl
ZTc2MGFmODM4MGVhOTY5MWQyNi4uZGJjMzJiMjk3ZmMxZTM3YzY1ZDZmMzlhNDRkMjE0Yjg5YjVh
MGEyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTI2LDcgKzE5MjYsNiBAQCB3ZWJraXQub3Jn
L2IvMTgxMTIyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMv
aW50ZXJmYWNlcy9Bbgogd2Via2l0Lm9yZy9iLzE4MTEyMyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2ZpbmlzaC5odG1s
IFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xODE4ODggaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy90aW1pbmctbW9kZWwvYW5pbWF0aW9uLWVmZmVj
dHMvY3VycmVudC1pdGVyYXRpb24uaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcv
Yi8xODM4MjYgaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1w
YXVzaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTgzODM0
IGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tc3RhcnR0aW1l
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTgzODM2IGltcG9y
dGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb25zLWR5bmFtaWMtY2hhbmdl
cy5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzE4MzgzNyBpbXBv
cnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2RvY3VtZW50LWdldC1hbmltYXRpb25z
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLXBhdXNpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90
ZXN0X2FuaW1hdGlvbi1wYXVzaW5nLWV4cGVjdGVkLnR4dAppbmRleCBkYTI4MzhjOWFiMjI5NjE3
M2RmODY4ZGY3ZTllN2RhY2E2ODM0MTY2Li4zNTM0ZTdiZjA1YzY1NjkxMDBlYjExODIzNmMwMzJl
YmI2MDQ2NjI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1h
bmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLXBhdXNpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tcGF1
c2luZy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiAKIFBBU1MgcGxheSgpIG92ZXJyaWRl
cyBhbmltYXRpb24tcGxheS1zdGF0ZSAKLUZBSUwgcGF1c2UoKSBvdmVycmlkZXMgYW5pbWF0aW9u
LXBsYXktc3RhdGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2FuaW1h
dGlvbi5wYXVzZScpCi1GQUlMIHBsYXkoKSBpcyBvdmVycmlkZGVuIGJ5IGxhdGVyIHNldHRpbmcg
ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQiIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdhbmltYXRpb24ucGxheScpCi1GQUlMIHBsYXkoKSBmbHVzaGVzIHBlbmRp
bmcgY2hhbmdlcyB0byBhbmltYXRpb24tcGxheS1zdGF0ZSBmaXJzdCBhc3NlcnRfZ3JlYXRlcl90
aGFuOiBQbGF5aW5nIHZhbHVlIG9mIG1hcmdpbi1sZWZ0IGlzIGluY3JlYXNpbmcgZXhwZWN0ZWQg
YSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgYnV0IGdvdCAwCi1GQUlMIHBhdXNlKCkgYXBwbGllcyBw
ZW5kaW5nIGNoYW5nZXMgdG8gYW5pbWF0aW9uLXBsYXktc3RhdGUgZmlyc3QgdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2FuaW1hdGlvbi5wYXVzZScpCi1GQUlMIFNldHRp
bmcgdGhlIGN1cnJlbnQgdGltZSBjb21wbGV0ZXMgYSBwZW5kaW5nIHBhdXNlIGFzc2VydF90cnVl
OiBBbmltYXRpb24gaXMgcGF1c2UtcGVuZGluZyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyBwYXVzZSgpIG92ZXJyaWRlcyBhbmltYXRpb24tcGxheS1zdGF0ZSAKK1BBU1MgcGxheSgpIGlz
IG92ZXJyaWRkZW4gYnkgbGF0ZXIgc2V0dGluZyAiYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNl
ZCIgCitQQVNTIHBsYXkoKSBmbHVzaGVzIHBlbmRpbmcgY2hhbmdlcyB0byBhbmltYXRpb24tcGxh
eS1zdGF0ZSBmaXJzdCAKK1BBU1MgcGF1c2UoKSBhcHBsaWVzIHBlbmRpbmcgY2hhbmdlcyB0byBh
bmltYXRpb24tcGxheS1zdGF0ZSBmaXJzdCAKK1BBU1MgU2V0dGluZyB0aGUgY3VycmVudCB0aW1l
IGNvbXBsZXRlcyBhIHBlbmRpbmcgcGF1c2UgCiAK
</data>
<flag name="review"
          id="361335"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>