<?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>187693</bug_id>
          
          <creation_ts>2018-07-16 03:09:37 -0700</creation_ts>
          <short_desc>[Nicosia] Add Nicosia::PlatformLayer, Nicosia::CompositionLayer classes</short_desc>
          <delta_ts>2018-07-16 05:25:18 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>187385</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1442352</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-07-16 03:09:37 -0700</bug_when>
    <thetext>[Nicosia] Add Nicosia::PlatformLayer, Nicosia::CompositionLayer classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442354</commentid>
    <comment_count>1</comment_count>
      <attachid>345088</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-07-16 04:06:36 -0700</bug_when>
    <thetext>Created attachment 345088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442356</commentid>
    <comment_count>2</comment_count>
      <attachid>345088</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-07-16 04:36:01 -0700</bug_when>
    <thetext>Comment on attachment 345088
Patch

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

&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:45
&gt; +    PlatformLayer(uint64_t);

explicit. If this is abstract, it&apos;s probably better to make the constructor protected.

&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:48
&gt; +    virtual bool isCompositionLayer() const { return false; }

Should this be pure virtual instead?

&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:62
&gt; +    CompositionLayer(uint64_t);

explicit. Since this is refcounted, I think it would be better to add a create function returning a Ref&lt;&gt; and make the constructor private.

&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:70
&gt; +                : value(0)

Could we init this below?

&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
&gt; +                uint32_t value;

with { 0 } here?

&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:112
&gt; +                uint32_t value;

Same here, and only init in the constructor the values that are true, is that possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442357</commentid>
    <comment_count>3</comment_count>
      <attachid>345088</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-07-16 04:55:12 -0700</bug_when>
    <thetext>Comment on attachment 345088
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:45
&gt;&gt; +    PlatformLayer(uint64_t);
&gt; 
&gt; explicit. If this is abstract, it&apos;s probably better to make the constructor protected.

OK.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:48
&gt;&gt; +    virtual bool isCompositionLayer() const { return false; }
&gt; 
&gt; Should this be pure virtual instead?

Other methods corresponding to additional derived classes will be added here. By default they all return false, but in the derived classes the appropriate method is overridden to return true. This is typical for class hierarchies that leverage is&lt;&gt;() and downcast&lt;&gt;() typecasting.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:62
&gt;&gt; +    CompositionLayer(uint64_t);
&gt; 
&gt; explicit. Since this is refcounted, I think it would be better to add a create function returning a Ref&lt;&gt; and make the constructor private.

OK.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
&gt;&gt; +                uint32_t value;
&gt; 
&gt; with { 0 } here?

I don&apos;t think we can because of this being an union.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:112
&gt;&gt; +                uint32_t value;
&gt; 
&gt; Same here, and only init in the constructor the values that are true, is that possible?

Similar here, don&apos;t think it&apos;s possible because of the union.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442360</commentid>
    <comment_count>4</comment_count>
      <attachid>345088</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-07-16 05:04:54 -0700</bug_when>
    <thetext>Comment on attachment 345088
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:89
&gt;&gt;&gt; +                uint32_t value;
&gt;&gt; 
&gt;&gt; with { 0 } here?
&gt; 
&gt; I don&apos;t think we can because of this being an union.

Turns out we can.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442361</commentid>
    <comment_count>5</comment_count>
      <attachid>345089</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-07-16 05:09:57 -0700</bug_when>
    <thetext>Created attachment 345089
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442362</commentid>
    <comment_count>6</comment_count>
      <attachid>345089</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-07-16 05:24:10 -0700</bug_when>
    <thetext>Comment on attachment 345089
Patch for landing

Clearing flags on attachment: 345089

Committed r233845: &lt;https://trac.webkit.org/changeset/233845&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442363</commentid>
    <comment_count>7</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-07-16 05:24:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442364</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-16 05:25:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/42237305&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345088</attachid>
            <date>2018-07-16 04:06:36 -0700</date>
            <delta_ts>2018-07-16 05:09:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187693-20180716130635.patch</filename>
            <type>text/plain</type>
            <size>23130</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGIxYmI4YTNjNThhNWI4
MDg5MzY1YTBlMWEzNjBjYzA4MDQ3YzlkYS4uN2JkYzA3OTk3Njk4NGM3OWJkNWQ3MDA4NjRhNzkz
OTViNTA2YjEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE4LTA3LTE2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbTmljb3NpYV0gQWRk
IE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIsIE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXIgY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3Njkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRo
ZSBOaWNvc2lhOjpQbGF0Zm9ybUxheWVyIGNsYXNzLiBUaGlzIHdpbGwgYmUgdGhlIGJhc2UgcGxh
dGZvcm0KKyAgICAgICAgbGF5ZXIgY2xhc3MgZnJvbSB3aGljaCBkaWZmZXJlbnQgZGVyaXZhdGl2
ZXMgd2lsbCBiZSBjcmVhdGVkLCBhZGRyZXNzaW5nCisgICAgICAgIGRpZmZlcmVudCB1c2UgY2Fz
ZXMuIFRoZSBnZW5lcmljIFBsYXRmb3JtTGF5ZXIgdHlwZSBhbGlhcyB3aWxsIHBvaW50IHRvCisg
ICAgICAgIHRoaXMgY2xhc3MgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICBGaXJzdCBjbGFzcyBk
ZXJpdmluZyBmcm9tIE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIgaXMKKyAgICAgICAgTmljb3NpYTo6
Q29tcG9zaXRpb25MYXllciwgcHVycG9zZSBvZiB3aGljaCB3aWxsIGJlIHRvIG1pcnJvciB0aGUg
c3RhdGUKKyAgICAgICAgdGhhdCdzIHN0b3JlZCBpbiB0aGUgcGxhdGZvcm0tc3BlY2lmaWMgR3Jh
cGhpY3NMYXllciBkZXJpdmF0aXZlLiBJdCB3aWxsCisgICAgICAgIGFsc28gYWxsb3cgbWFraW5n
IHRocmVhZC1zYWZlIHVwZGF0ZXMgdG8gdGhhdCBzdGF0ZS4KKworICAgICAgICBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIgaW1wbGVtZW50YXRpb24gbm93IHNwYXducyBhIENvbXBvc2l0aW9uTGF5
ZXIKKyAgICAgICAgb2JqZWN0IGFuZCB0cmFja3Mgc3RhdGUgY2hhbmdlcyBpbiBhIHNlcGFyYXRl
CisgICAgICAgIENvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGU6OkRlbHRhIG9iamVjdC4gRHVy
aW5nIGZsdXNoaW5nLCB0aGUgY2hhbmdlZAorICAgICAgICBzdGF0ZSBpcyBhcHBsaWVkIHRvIHRo
ZSBsYXllcidzIHBlbmRpbmcgc3RhdGUgYmVmb3JlIHRoZSBkZWx0YSBpcyBudWxsZWQKKyAgICAg
ICAgb3V0LiBUaGUgdXBkYXRlZCBzdGF0ZSBpc24ndCB1c2VkIGFueXdoZXJlIHlldCwgYnV0IGZ1
dHVyZSBjaGFuZ2VzIHdpbGwKKyAgICAgICAgaW1wbGVtZW50IGNvbW1pdHRpbmcgdGhpcyBzdGF0
ZSBpbnRvIHRoZSByZW5kZXJpbmcgcGlwZWxpbmUuCisKKyAgICAgICAgVGhlcmUncyBiaXRzIG9m
IHN0YXRlIG5vdCB5ZXQgYmVpbmcgbWFuYWdlZCBieSBDb21wb3NpdGlvbkxheWVyLCBlLmcuCisg
ICAgICAgIGRlYnVnIHZpc3VhbHMsIGZpbHRlcnMgYW5kIGFuaW1hdGlvbnMuIFRoZXNlIHdpbGwg
YmUgYWRkcmVzc2VkIGxhdGVyLgorCisgICAgICAgIFRoZSBtX3NvbGlkQ29sb3IgbWVtYmVyIHZh
cmlhYmxlIGlzIGFkZGVkIHRvIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciBpbgorICAgICAgICBv
cmRlciB0byBwcm9wZXJseSBzdG9yZSB0aGUgc29saWQgY29sb3IgdmFsdWUuIE5vcm1hbGx5IHRo
aXMgd291bGQgYmUKKyAgICAgICAgY29udGFpbmVkIGJ5IHRoZSBwYXJlbnQgR3JhcGhpY3NMYXll
ciBjbGFzcywgYnV0IG5vIHN1Y2ggbWVtYmVyIHZhcmlhYmxlCisgICAgICAgIGV4aXN0cyB0aGVy
ZS4KKworICAgICAgICAqIHBsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2U6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5jcHA6IEFkZGVk
LgorICAgICAgICAoTmljb3NpYTo6UGxhdGZvcm1MYXllcjo6UGxhdGZvcm1MYXllcik6CisgICAg
ICAgIChOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpDb21wb3NpdGlvbkxheWVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmg6IEFk
ZGVkLgorICAgICAgICAoTmljb3NpYTo6UGxhdGZvcm1MYXllcjo6aXNDb21wb3NpdGlvbkxheWVy
IGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OlBsYXRmb3JtTGF5ZXI6OmlkIGNvbnN0KToKKyAg
ICAgICAgKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGU6OkRlbHRhOjpEZWx0
YSk6CisgICAgICAgIChOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlOjpGbGFn
czo6RmxhZ3MpOgorICAgICAgICAoTmljb3NpYTo6Q29tcG9zaXRpb25MYXllcjo6dXBkYXRlU3Rh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRQb3NpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldEFuY2hvclBvaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0U2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFRyYW5zZm9ybSk6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENoaWxkcmVuVHJhbnNmb3Jt
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0UHJlc2Vy
dmVzM0QpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRN
YXNrc1RvQm91bmRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c2V0RHJhd3NDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0Q29udGVudHNWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNPcGFxdWUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRCYWNrZmFjZVZpc2liaWxpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRPcGFjaXR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNU
aWxlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNl
dENvbnRlbnRzVGlsZVBoYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0Q29udGVudHNUb1NvbGlkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRNYXNrTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRSZXBsaWNhdGVkQnlMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAg
ICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKwogMjAxOC0wNy0xNSAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIGFw
cHMgb24gbWFjT1NdIFBsYXlpbmcgZW1iZWRkZWQgVHdpdHRlciB2aWRlb3MgaW4gdGhlIE5ld3Mg
YXBwIGNyYXNoZXMgdGhlIHdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4
dHVyZU1hcHBlci5jbWFrZQppbmRleCA2ZWFiNmEwYTE4OTVhZGFmNzg3NTFkMTkwYzE2ODhkNDdi
ZmM3N2ZmLi45ODVjYTE1OTgwMjJiZjkzN2JhNDA2M2IyNzIzMzAyYzk2NzlhMWRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2UKQEAgLTUwLDYgKzUwLDcg
QEAgaWYgKFVTRV9DT09SRElOQVRFRF9HUkFQSElDUykKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRpbmdFbmdpbmUuY3BwCiAgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuY3BwCiAgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lVGhyZWFkZWQuY3Bw
CisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIu
Y3BwCiAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fp
cm9PcGVyYXRpb25SZWNvcmRlci5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9jYWlyby9OaWNvc2lhUGFpbnRpbmdDb250ZXh0Q2Fpcm8uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBs
YXRmb3JtTGF5ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MGQwNDc4OTE4NDVlNzE5NTFhZWM2ZjgzYmVj
Y2M0YzNjOWU2ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmNwcApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
ICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZAorICogICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOaWNvc2lhUGxhdGZvcm1MYXll
ci5oIgorCituYW1lc3BhY2UgTmljb3NpYSB7CisKK1BsYXRmb3JtTGF5ZXI6OlBsYXRmb3JtTGF5
ZXIodWludDY0X3QgaWQpCisgICAgOiBtX2lkKGlkKQoreworfQorCitQbGF0Zm9ybUxheWVyOjp+
UGxhdGZvcm1MYXllcigpID0gZGVmYXVsdDsKKworQ29tcG9zaXRpb25MYXllcjo6Q29tcG9zaXRp
b25MYXllcih1aW50NjRfdCBpZCkKKyAgICA6IFBsYXRmb3JtTGF5ZXIoaWQpCit7Cit9CisKK0Nv
bXBvc2l0aW9uTGF5ZXI6On5Db21wb3NpdGlvbkxheWVyKCkgPSBkZWZhdWx0OworCit9IC8vIG5h
bWVzcGFjZSBOaWNvc2lhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjQ5ZTE3NmQ5NmJjMDVlZTQ2MGMzZThkNGRlOTA0MTlmZjQ3YTJlOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRm
b3JtTGF5ZXIuaApAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBN
ZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZsb2F0UG9p
bnQzRC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgor
I2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCisjaW5jbHVkZSA8d3RmL0xvY2suaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlw
ZUNhc3RzLmg+CisKK25hbWVzcGFjZSBOaWNvc2lhIHsKKworY2xhc3MgUGxhdGZvcm1MYXllciA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQbGF0Zm9ybUxheWVyPiB7CitwdWJsaWM6Cisg
ICAgUGxhdGZvcm1MYXllcih1aW50NjRfdCk7CisgICAgdmlydHVhbCB+UGxhdGZvcm1MYXllcigp
OworCisgICAgdmlydHVhbCBib29sIGlzQ29tcG9zaXRpb25MYXllcigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisKKyAgICB1aW50NjRfdCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKwor
cHJvdGVjdGVkOgorICAgIHVpbnQ2NF90IG1faWQ7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBM
b2NrIGxvY2s7CisgICAgfSBtX3N0YXRlOworfTsKKworY2xhc3MgQ29tcG9zaXRpb25MYXllciA6
IHB1YmxpYyBQbGF0Zm9ybUxheWVyIHsKK3B1YmxpYzoKKyAgICBDb21wb3NpdGlvbkxheWVyKHVp
bnQ2NF90KTsKKyAgICB2aXJ0dWFsIH5Db21wb3NpdGlvbkxheWVyKCk7CisKKyAgICBib29sIGlz
Q29tcG9zaXRpb25MYXllcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKworICAg
IHN0cnVjdCBMYXllclN0YXRlIHsKKyAgICAgICAgc3RydWN0IERlbHRhIHsKKyAgICAgICAgICAg
IERlbHRhKCkKKyAgICAgICAgICAgICAgICA6IHZhbHVlKDApCisgICAgICAgICAgICB7IH0KKwor
ICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAg
ICAgICAgICAgIGJvb2wgcG9zaXRpb25DaGFuZ2VkIDogMTsKKyAgICAgICAgICAgICAgICAgICAg
Ym9vbCBhbmNob3JQb2ludENoYW5nZWQgOiAxOworICAgICAgICAgICAgICAgICAgICBib29sIHNp
emVDaGFuZ2VkIDogMTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCB0cmFuc2Zvcm1DaGFuZ2Vk
IDogMTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBjaGlsZHJlblRyYW5zZm9ybUNoYW5nZWQg
OiAxOworICAgICAgICAgICAgICAgICAgICBib29sIGNvbnRlbnRzUmVjdENoYW5nZWQgOiAxOwor
ICAgICAgICAgICAgICAgICAgICBib29sIGNvbnRlbnRzVGlsaW5nQ2hhbmdlZCA6IDE7CisgICAg
ICAgICAgICAgICAgICAgIGJvb2wgb3BhY2l0eUNoYW5nZWQgOiAxOworICAgICAgICAgICAgICAg
ICAgICBib29sIHNvbGlkQ29sb3JDaGFuZ2VkIDogMTsKKyAgICAgICAgICAgICAgICAgICAgYm9v
bCBjaGlsZHJlbkNoYW5nZWQgOiAxOworICAgICAgICAgICAgICAgICAgICBib29sIG1hc2tDaGFu
Z2VkIDogMTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCByZXBsaWNhQ2hhbmdlZCA6IDE7Cisg
ICAgICAgICAgICAgICAgICAgIGJvb2wgZmxhZ3NDaGFuZ2VkIDogMTsKKyAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlOworICAgICAgICAgICAgfTsKKyAg
ICAgICAgfSBkZWx0YTsKKworICAgICAgICBzdHJ1Y3QgRmxhZ3MgeworICAgICAgICAgICAgRmxh
Z3MoKQorICAgICAgICAgICAgICAgIDogY29udGVudHNPcGFxdWUoZmFsc2UpCisgICAgICAgICAg
ICAgICAgLCBkcmF3c0NvbnRlbnQoZmFsc2UpCisgICAgICAgICAgICAgICAgLCBjb250ZW50c1Zp
c2libGUodHJ1ZSkKKyAgICAgICAgICAgICAgICAsIGJhY2tmYWNlVmlzaWJsZSh0cnVlKQorICAg
ICAgICAgICAgICAgICwgbWFza3NUb0JvdW5kcyhmYWxzZSkKKyAgICAgICAgICAgICAgICAsIHBy
ZXNlcnZlczNEKGZhbHNlKQorICAgICAgICAgICAgeyB9CisKKyAgICAgICAgICAgIHVuaW9uIHsK
KyAgICAgICAgICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgICAgICAgICBib29sIGNvbnRl
bnRzT3BhcXVlIDogMTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBkcmF3c0NvbnRlbnQgOiAx
OworICAgICAgICAgICAgICAgICAgICBib29sIGNvbnRlbnRzVmlzaWJsZSA6IDE7CisgICAgICAg
ICAgICAgICAgICAgIGJvb2wgYmFja2ZhY2VWaXNpYmxlIDogMTsKKyAgICAgICAgICAgICAgICAg
ICAgYm9vbCBtYXNrc1RvQm91bmRzIDogMTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBwcmVz
ZXJ2ZXMzRCA6IDE7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB1aW50MzJf
dCB2YWx1ZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0gZmxhZ3M7CisKKyAgICAgICAgV2Vi
Q29yZTo6RmxvYXRQb2ludCBwb3NpdGlvbjsKKyAgICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludDNE
IGFuY2hvclBvaW50OworICAgICAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZTsKKworICAgICAg
ICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07CisgICAgICAgIFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkcmVuVHJhbnNmb3JtOworCisgICAgICAgIFdl
YkNvcmU6OkZsb2F0UmVjdCBjb250ZW50c1JlY3Q7CisgICAgICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSBjb250ZW50c1RpbGVQaGFzZTsKKyAgICAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGNvbnRlbnRz
VGlsZVNpemU7CisKKyAgICAgICAgZmxvYXQgb3BhY2l0eSB7IDAgfTsKKyAgICAgICAgV2ViQ29y
ZTo6Q29sb3Igc29saWRDb2xvcjsKKworICAgICAgICBWZWN0b3I8UmVmUHRyPENvbXBvc2l0aW9u
TGF5ZXI+PiBjaGlsZHJlbjsKKyAgICAgICAgUmVmUHRyPENvbXBvc2l0aW9uTGF5ZXI+IHJlcGxp
Y2E7CisgICAgICAgIFJlZlB0cjxDb21wb3NpdGlvbkxheWVyPiBtYXNrOworICAgIH07CisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgdXBkYXRlU3RhdGUoY29uc3QgVCYgZnVu
Y3RvcikKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKFBsYXRmb3JtTGF5ZXI6Om1f
c3RhdGUubG9jayk7CisgICAgICAgIGZ1bmN0b3IobV9zdGF0ZS5wZW5kaW5nKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgc3RydWN0IHsKKyAgICAgICAgTGF5ZXJTdGF0ZSBwZW5kaW5nOworICAg
IH0gbV9zdGF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIE5pY29zaWEKKworI2RlZmluZSBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX05JQ09TSUFfUExBVEZPUk1MQVlFUihUb0NsYXNzTmFtZSwgcHJl
ZGljYXRlKSBcCisgICAgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihOaWNvc2lhOjpUb0Ns
YXNzTmFtZSkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBOaWNvc2lhOjpQbGF0Zm9y
bUxheWVyJiBsYXllcikgeyByZXR1cm4gbGF5ZXIucHJlZGljYXRlOyB9IFwKKyAgICBTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0VORCgpCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTklDT1NJQV9Q
TEFURk9STUxBWUVSKENvbXBvc2l0aW9uTGF5ZXIsIGlzQ29tcG9zaXRpb25MYXllcigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5j
cHAKaW5kZXggNDJkYzdiOTk5MTBmZTMwYjQ3YWQ0NDUwOGRmMzU2MjZlNjQxNzUyYy4uY2VkNmVm
NWUzNTMwYTllOTgyMDAzYWYxM2ZiODQ1NWNkNjk5NDBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTE0Myw2ICsx
NDMsOCBAQCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cihUeXBlIGxheWVyVHlwZSwgR3JhcGhpY3NMYXllcgogewogICAgIHN0YXRpYyBDb29yZGluYXRl
ZExheWVySUQgbmV4dExheWVySUQgPSAxOwogICAgIG1faWQgPSBuZXh0TGF5ZXJJRCsrOworCisg
ICAgbV9uaWNvc2lhLmxheWVyID0gYWRvcHRSZWYobmV3IE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5
ZXIobV9pZCkpOwogfQogCiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6On5Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIoKQpAQCAtMjE3LDYgKzIxOSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwKQogCiAgICAgR3JhcGhpY3NM
YXllcjo6c2V0UG9zaXRpb24ocCk7CiAgICAgbV9sYXllclN0YXRlLnBvc2l0aW9uQ2hhbmdlZCA9
IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLnBvc2l0aW9uQ2hhbmdlZCA9IHRydWU7CiAgICAg
ZGlkQ2hhbmdlR2VvbWV0cnkoKTsKIH0KIApAQCAtMjI3LDYgKzIzMCw3IEBAIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRBbmNob3JQb2ludChjb25zdCBGbG9hdFBvaW50M0QmIHAp
CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRBbmNob3JQb2ludChwKTsKICAgICBtX2xheWVyU3Rh
dGUuYW5jaG9yUG9pbnRDaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEuYW5jaG9y
UG9pbnRDaGFuZ2VkID0gdHJ1ZTsKICAgICBkaWRDaGFuZ2VHZW9tZXRyeSgpOwogfQogCkBAIC0y
MzcsNiArMjQxLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNpemUoY29u
c3QgRmxvYXRTaXplJiBzaXplKQogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0U2l6ZShzaXplKTsK
ICAgICBtX2xheWVyU3RhdGUuc2l6ZUNoYW5nZWQgPSB0cnVlOworICAgIG1fbmljb3NpYS5kZWx0
YS5zaXplQ2hhbmdlZCA9IHRydWU7CiAKICAgICBpZiAobWFza0xheWVyKCkpCiAgICAgICAgIG1h
c2tMYXllcigpLT5zZXRTaXplKHNpemUpOwpAQCAtMjUwLDYgKzI1NSw3IEBAIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHQpCiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRUcmFuc2Zvcm0odCk7CiAgICAgbV9sYXll
clN0YXRlLnRyYW5zZm9ybUNoYW5nZWQgPSB0cnVlOworICAgIG1fbmljb3NpYS5kZWx0YS50cmFu
c2Zvcm1DaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGRpZENoYW5nZUdlb21ldHJ5KCk7CiB9CkBAIC0y
NjEsNiArMjY3LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENoaWxkcmVu
VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JgogCiAgICAgR3JhcGhpY3NMYXll
cjo6c2V0Q2hpbGRyZW5UcmFuc2Zvcm0odCk7CiAgICAgbV9sYXllclN0YXRlLmNoaWxkcmVuVHJh
bnNmb3JtQ2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLmNoaWxkcmVuVHJhbnNm
b3JtQ2hhbmdlZCA9IHRydWU7CiAKICAgICBkaWRDaGFuZ2VHZW9tZXRyeSgpOwogfQpAQCAtMjcz
LDYgKzI4MCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRQcmVzZXJ2ZXMz
RChib29sIGIpCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0UHJlc2VydmVzM0QoYik7CiAgICAgbV9s
YXllclN0YXRlLnByZXNlcnZlczNEID0gYjsKICAgICBtX2xheWVyU3RhdGUuZmxhZ3NDaGFuZ2Vk
ID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEuZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsKIAogICAg
IGRpZENoYW5nZUdlb21ldHJ5KCk7CiB9CkBAIC0yODQsNiArMjkyLDcgQEAgdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnNldE1hc2tzVG9Cb3VuZHMoYm9vbCBiKQogICAgIEdyYXBoaWNz
TGF5ZXI6OnNldE1hc2tzVG9Cb3VuZHMoYik7CiAgICAgbV9sYXllclN0YXRlLm1hc2tzVG9Cb3Vu
ZHMgPSBiOwogICAgIG1fbGF5ZXJTdGF0ZS5mbGFnc0NoYW5nZWQgPSB0cnVlOworICAgIG1fbmlj
b3NpYS5kZWx0YS5mbGFnc0NoYW5nZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlR2VvbWV0cnko
KTsKIH0KQEAgLTI5NSw2ICszMDQsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0RHJhd3NDb250ZW50KGJvb2wgYikKICAgICBHcmFwaGljc0xheWVyOjpzZXREcmF3c0NvbnRl
bnQoYik7CiAgICAgbV9sYXllclN0YXRlLmRyYXdzQ29udGVudCA9IGI7CiAgICAgbV9sYXllclN0
YXRlLmZsYWdzQ2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLmZsYWdzQ2hhbmdl
ZCA9IHRydWU7CiAKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CkBAIC0zMDYsNiArMzE2
LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVmlzaWJsZShi
b29sIGIpCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNWaXNpYmxlKGIpOwogICAgIG1f
bGF5ZXJTdGF0ZS5jb250ZW50c1Zpc2libGUgPSBiOwogICAgIG1fbGF5ZXJTdGF0ZS5mbGFnc0No
YW5nZWQgPSB0cnVlOworICAgIG1fbmljb3NpYS5kZWx0YS5mbGFnc0NoYW5nZWQgPSB0cnVlOwog
CiAgICAgaWYgKG1hc2tMYXllcigpKQogICAgICAgICBtYXNrTGF5ZXIoKS0+c2V0Q29udGVudHNW
aXNpYmxlKGIpOwpAQCAtMzIxLDYgKzMzMiw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzZXRDb250ZW50c09wYXF1ZShib29sIGIpCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29u
dGVudHNPcGFxdWUoYik7CiAgICAgbV9sYXllclN0YXRlLmNvbnRlbnRzT3BhcXVlID0gYjsKICAg
ICBtX2xheWVyU3RhdGUuZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEu
ZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsKIAogICAgIC8vIERlbWFuZCBhIHJlcGFpbnQgb2YgdGhlIHdo
b2xlIGxheWVyLgogICAgIGlmICghbV9uZWVkc0Rpc3BsYXkuY29tcGxldGVMYXllcikgewpAQCAt
MzQxLDYgKzM1Myw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRCYWNrZmFj
ZVZpc2liaWxpdHkoYm9vbCBiKQogICAgIEdyYXBoaWNzTGF5ZXI6OnNldEJhY2tmYWNlVmlzaWJp
bGl0eShiKTsKICAgICBtX2xheWVyU3RhdGUuYmFja2ZhY2VWaXNpYmxlID0gYjsKICAgICBtX2xh
eWVyU3RhdGUuZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEuZmxhZ3ND
aGFuZ2VkID0gdHJ1ZTsKIAogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KQEAgLTM1Myw2
ICszNjYsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0T3BhY2l0eShmbG9h
dCBvcGFjaXR5KQogICAgIEdyYXBoaWNzTGF5ZXI6OnNldE9wYWNpdHkob3BhY2l0eSk7CiAgICAg
bV9sYXllclN0YXRlLm9wYWNpdHkgPSBvcGFjaXR5OwogICAgIG1fbGF5ZXJTdGF0ZS5vcGFjaXR5
Q2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLm9wYWNpdHlDaGFuZ2VkID0gdHJ1
ZTsKIAogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KQEAgLTM2NSw2ICszNzksNyBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcikKICAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1JlY3Qocik7CiAgICAgbV9s
YXllclN0YXRlLmNvbnRlbnRzUmVjdCA9IHI7CiAgICAgbV9sYXllclN0YXRlLmNvbnRlbnRzUmVj
dENoYW5nZWQgPSB0cnVlOworICAgIG1fbmljb3NpYS5kZWx0YS5jb250ZW50c1JlY3RDaGFuZ2Vk
ID0gdHJ1ZTsKIAogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KQEAgLTM3Nyw2ICszOTIs
NyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlU2l6ZShj
b25zdCBGbG9hdFNpemUmIHMpCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlU2l6
ZShzKTsKICAgICBtX2xheWVyU3RhdGUuY29udGVudHNUaWxlU2l6ZSA9IHM7CiAgICAgbV9sYXll
clN0YXRlLmNvbnRlbnRzVGlsaW5nQ2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRh
LmNvbnRlbnRzVGlsaW5nQ2hhbmdlZCA9IHRydWU7CiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgp
OwogfQogCkBAIC0zODgsNiArNDA0LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0IEZsb2F0U2l6ZSYgcCkKICAgICBHcmFwaGljc0xh
eWVyOjpzZXRDb250ZW50c1RpbGVQaGFzZShwKTsKICAgICBtX2xheWVyU3RhdGUuY29udGVudHNU
aWxlUGhhc2UgPSBwOwogICAgIG1fbGF5ZXJTdGF0ZS5jb250ZW50c1RpbGluZ0NoYW5nZWQgPSB0
cnVlOworICAgIG1fbmljb3NpYS5kZWx0YS5jb250ZW50c1RpbGluZ0NoYW5nZWQgPSB0cnVlOwog
ICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KIApAQCAtNDUzLDExICs0NzAsMTMgQEAgYm9v
bCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0
aW9ucyYgbmV3RmlsdGVycykKIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENv
bnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIHsKLSAgICBpZiAobV9sYXll
clN0YXRlLnNvbGlkQ29sb3IgPT0gY29sb3IpCisgICAgaWYgKG1fc29saWRDb2xvciA9PSBjb2xv
cikKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9zb2xpZENvbG9yID0gY29sb3I7CiAgICAgbV9s
YXllclN0YXRlLnNvbGlkQ29sb3IgPSBjb2xvcjsKICAgICBtX2xheWVyU3RhdGUuc29saWRDb2xv
ckNoYW5nZWQgPSB0cnVlOworICAgIG1fbmljb3NpYS5kZWx0YS5zb2xpZENvbG9yQ2hhbmdlZCA9
IHRydWU7CiAKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CkBAIC01MTYsNiArNTM1LDcg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldE1hc2tMYXllcihHcmFwaGljc0xh
eWVyKiBsYXllcikKIAogICAgIG1fbGF5ZXJTdGF0ZS5tYXNrID0gY29vcmRpbmF0ZWRMYXllci5p
ZCgpOwogICAgIG1fbGF5ZXJTdGF0ZS5tYXNrQ2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lh
LmRlbHRhLm1hc2tDaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsK
IH0KQEAgLTU0MCw2ICs1NjAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgR3JhcGhpY3NMYXll
cjo6c2V0UmVwbGljYXRlZEJ5TGF5ZXIobGF5ZXIpOwogICAgIG1fbGF5ZXJTdGF0ZS5yZXBsaWNh
ID0gdG9Db29yZGluYXRlZExheWVySUQobGF5ZXIpOwogICAgIG1fbGF5ZXJTdGF0ZS5yZXBsaWNh
Q2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLnJlcGxpY2FDaGFuZ2VkID0gdHJ1
ZTsKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CiAKQEAgLTYwMiw2ICs2MjMsOCBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NoaWxkcmVuKCkKICAgICAgICAgcmV0
dXJuOwogICAgIG1fc2hvdWxkU3luY0NoaWxkcmVuID0gZmFsc2U7CiAgICAgbV9sYXllclN0YXRl
LmNoaWxkcmVuQ2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLmNoaWxkcmVuQ2hh
bmdlZCA9IHRydWU7CisKICAgICBtX2xheWVyU3RhdGUuY2hpbGRyZW4uY2xlYXIoKTsKICAgICBm
b3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4oKSkKICAgICAgICAgbV9sYXllclN0YXRlLmNoaWxk
cmVuLmFwcGVuZCh0b0Nvb3JkaW5hdGVkTGF5ZXJJRChjaGlsZCkpOwpAQCAtNzUwLDYgKzc3Myw2
OSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpCiAgICAgLy8gT25seSB1bnNldCBtX21vdmluZ1Zpc2libGVSZWN0
IGFmdGVyIHdlIGhhdmUgdXBkYXRlZCB0aGUgdmlzaWJsZSByZWN0IGFmdGVyIHRoZSBhbmltYXRp
b24gc3RvcHBlZC4KICAgICBpZiAoIWhhc0FjdGl2ZVRyYW5zZm9ybUFuaW1hdGlvbikKICAgICAg
ICAgbV9tb3ZpbmdWaXNpYmxlUmVjdCA9IGZhbHNlOworCisgICAgeworICAgICAgICBtX25pY29z
aWEubGF5ZXItPnVwZGF0ZVN0YXRlKAorICAgICAgICAgICAgW3RoaXNdKE5pY29zaWE6OkNvbXBv
c2l0aW9uTGF5ZXI6OkxheWVyU3RhdGUmIHN0YXRlKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIC8vIE9SIHRoZSBsb2NhbCBkZWx0YSB2YWx1ZSBpbnRvIHRoZSBsYXllcidzIHBlbmRp
bmcgc3RhdGUgZGVsdGEuIEFmdGVyIHRoYXQsCisgICAgICAgICAgICAgICAgLy8gZ28gdGhyb3Vn
aCBlYWNoIGxvY2FsIGNoYW5nZSBhbmQgdXBkYXRlIHRoZSBwZW5kaW5nIHN0YXRlIGFjY29yZGlu
Z2x5LgorICAgICAgICAgICAgICAgIGF1dG8mIGxvY2FsRGVsdGEgPSBtX25pY29zaWEuZGVsdGE7
CisgICAgICAgICAgICAgICAgc3RhdGUuZGVsdGEudmFsdWUgfD0gbG9jYWxEZWx0YS52YWx1ZTsK
KworICAgICAgICAgICAgICAgIGlmIChsb2NhbERlbHRhLnBvc2l0aW9uQ2hhbmdlZCkKKyAgICAg
ICAgICAgICAgICAgICAgc3RhdGUucG9zaXRpb24gPSBwb3NpdGlvbigpOworICAgICAgICAgICAg
ICAgIGlmIChsb2NhbERlbHRhLmFuY2hvclBvaW50Q2hhbmdlZCkKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdGUuYW5jaG9yUG9pbnQgPSBhbmNob3JQb2ludCgpOworICAgICAgICAgICAgICAgIGlm
IChsb2NhbERlbHRhLnNpemVDaGFuZ2VkKQorICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zaXpl
ID0gc2l6ZSgpOworCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsRGVsdGEudHJhbnNmb3JtQ2hh
bmdlZCkKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUudHJhbnNmb3JtID0gdHJhbnNmb3JtKCk7
CisgICAgICAgICAgICAgICAgaWYgKGxvY2FsRGVsdGEuY2hpbGRyZW5UcmFuc2Zvcm1DaGFuZ2Vk
KQorICAgICAgICAgICAgICAgICAgICBzdGF0ZS5jaGlsZHJlblRyYW5zZm9ybSA9IGNoaWxkcmVu
VHJhbnNmb3JtKCk7CisKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxEZWx0YS5jb250ZW50c1Jl
Y3RDaGFuZ2VkKQorICAgICAgICAgICAgICAgICAgICBzdGF0ZS5jb250ZW50c1JlY3QgPSBjb250
ZW50c1JlY3QoKTsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxEZWx0YS5jb250ZW50c1RpbGlu
Z0NoYW5nZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuY29udGVudHNUaWxlUGhhc2Ug
PSBjb250ZW50c1RpbGVQaGFzZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5jb250ZW50
c1RpbGVTaXplID0gY29udGVudHNUaWxlU2l6ZSgpOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIGlmIChsb2NhbERlbHRhLm9wYWNpdHlDaGFuZ2VkKQorICAgICAgICAgICAg
ICAgICAgICBzdGF0ZS5vcGFjaXR5ID0gb3BhY2l0eSgpOworICAgICAgICAgICAgICAgIGlmIChs
b2NhbERlbHRhLnNvbGlkQ29sb3JDaGFuZ2VkKQorICAgICAgICAgICAgICAgICAgICBzdGF0ZS5z
b2xpZENvbG9yID0gbV9zb2xpZENvbG9yOworCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsRGVs
dGEuY2hpbGRyZW5DaGFuZ2VkKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLmNoaWxkcmVu
ID0gV1RGOjptYXAoY2hpbGRyZW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFtdKGF1dG8q
IGNoaWxkKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+KGNoaWxkKS0+
bV9uaWNvc2lhLmxheWVyOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsRGVsdGEubWFza0NoYW5nZWQpIHsK
KyAgICAgICAgICAgICAgICAgICAgYXV0byogbWFzayA9IGRvd25jYXN0PENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcj4obWFza0xheWVyKCkpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5tYXNr
ID0gbWFzayA/IG1hc2stPm1fbmljb3NpYS5sYXllciA6IG51bGxwdHI7CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsRGVsdGEucmVwbGljYUNoYW5nZWQpIHsK
KyAgICAgICAgICAgICAgICAgICAgYXV0byogcmVwbGljYSA9IGRvd25jYXN0PENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcj4ocmVwbGljYUxheWVyKCkpOworICAgICAgICAgICAgICAgICAgICBzdGF0
ZS5yZXBsaWNhID0gcmVwbGljYSA/IHJlcGxpY2EtPm1fbmljb3NpYS5sYXllciA6IG51bGxwdHI7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsRGVsdGEuZmxh
Z3NDaGFuZ2VkKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLmZsYWdzLmNvbnRlbnRzT3Bh
cXVlID0gY29udGVudHNPcGFxdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuZmxhZ3Mu
ZHJhd3NDb250ZW50ID0gZHJhd3NDb250ZW50KCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRl
LmZsYWdzLmNvbnRlbnRzVmlzaWJsZSA9IGNvbnRlbnRzQXJlVmlzaWJsZSgpOworICAgICAgICAg
ICAgICAgICAgICBzdGF0ZS5mbGFncy5iYWNrZmFjZVZpc2libGUgPSBiYWNrZmFjZVZpc2liaWxp
dHkoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuZmxhZ3MubWFza3NUb0JvdW5kcyA9IG1h
c2tzVG9Cb3VuZHMoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuZmxhZ3MucHJlc2VydmVz
M0QgPSBwcmVzZXJ2ZXMzRCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOwor
ICAgICAgICBtX25pY29zaWEuZGVsdGEgPSB7IH07CisgICAgfQogfQogCiB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJMYXll
cnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCmluZGV4IGFkYzg2OWU3YmY2NjZmMjU1MWFmNWQ0ZDdmZjI2ZDkxMWEyZDA1MTYuLmIz
OTMyOGJjZDAwNGNhZWY0NWViMjgzNDFlMGI5MDQzMzNiZjJjODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRl
ICJOaWNvc2lhQnVmZmVyLmgiCisjaW5jbHVkZSAiTmljb3NpYVBsYXRmb3JtTGF5ZXIuaCIKICNp
bmNsdWRlICJUZXh0dXJlTWFwcGVyQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5n
U3RvcmUuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIgpAQCAtMTg2LDYg
KzE4Nyw4IEBAIHByaXZhdGU6CiAgICAgRmxvYXRQb2ludCBtX2FkanVzdGVkUG9zaXRpb247CiAg
ICAgRmxvYXRQb2ludDNEIG1fYWRqdXN0ZWRBbmNob3JQb2ludDsKIAorICAgIENvbG9yIG1fc29s
aWRDb2xvcjsKKwogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1faXNQdXJnaW5nOwogI2VuZGlm
CkBAIC0yMjAsNiArMjIzLDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9hbmltYXRpb25TdGFy
dGVkVGltZXI7CiAgICAgVGV4dHVyZU1hcHBlckFuaW1hdGlvbnMgbV9hbmltYXRpb25zOwogICAg
IE1vbm90b25pY1RpbWUgbV9sYXN0QW5pbWF0aW9uU3RhcnRUaW1lOworCisgICAgc3RydWN0IHsK
KyAgICAgICAgUmVmUHRyPE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI+IGxheWVyOworICAgICAg
ICBOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlOjpEZWx0YSBkZWx0YTsKKyAg
ICB9IG1fbmljb3NpYTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345089</attachid>
            <date>2018-07-16 05:09:57 -0700</date>
            <delta_ts>2018-07-16 05:09:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-187693-20180716140955.patch</filename>
            <type>text/plain</type>
            <size>23075</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGIxYmI4YTNjNThhNWI4
MDg5MzY1YTBlMWEzNjBjYzA4MDQ3YzlkYS4uYzNmY2MxMjJlYjFkYTI4NGZjOTM0MTZmNmVhN2U5
YjhiMGI1YTUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE4LTA3LTE2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbTmljb3NpYV0gQWRk
IE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIsIE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXIgY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3Njkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAg
QWRkIHRoZSBOaWNvc2lhOjpQbGF0Zm9ybUxheWVyIGNsYXNzLiBUaGlzIHdpbGwgYmUgdGhlIGJh
c2UgcGxhdGZvcm0KKyAgICAgICAgbGF5ZXIgY2xhc3MgZnJvbSB3aGljaCBkaWZmZXJlbnQgZGVy
aXZhdGl2ZXMgd2lsbCBiZSBjcmVhdGVkLCBhZGRyZXNzaW5nCisgICAgICAgIGRpZmZlcmVudCB1
c2UgY2FzZXMuIFRoZSBnZW5lcmljIFBsYXRmb3JtTGF5ZXIgdHlwZSBhbGlhcyB3aWxsIHBvaW50
IHRvCisgICAgICAgIHRoaXMgY2xhc3MgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICBGaXJzdCBj
bGFzcyBkZXJpdmluZyBmcm9tIE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIgaXMKKyAgICAgICAgTmlj
b3NpYTo6Q29tcG9zaXRpb25MYXllciwgcHVycG9zZSBvZiB3aGljaCB3aWxsIGJlIHRvIG1pcnJv
ciB0aGUgc3RhdGUKKyAgICAgICAgdGhhdCdzIHN0b3JlZCBpbiB0aGUgcGxhdGZvcm0tc3BlY2lm
aWMgR3JhcGhpY3NMYXllciBkZXJpdmF0aXZlLiBJdCB3aWxsCisgICAgICAgIGFsc28gYWxsb3cg
bWFraW5nIHRocmVhZC1zYWZlIHVwZGF0ZXMgdG8gdGhhdCBzdGF0ZS4KKworICAgICAgICBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIgaW1wbGVtZW50YXRpb24gbm93IHNwYXducyBhIENvbXBvc2l0
aW9uTGF5ZXIKKyAgICAgICAgb2JqZWN0IGFuZCB0cmFja3Mgc3RhdGUgY2hhbmdlcyBpbiBhIHNl
cGFyYXRlCisgICAgICAgIENvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGU6OkRlbHRhIG9iamVj
dC4gRHVyaW5nIGZsdXNoaW5nLCB0aGUgY2hhbmdlZAorICAgICAgICBzdGF0ZSBpcyBhcHBsaWVk
IHRvIHRoZSBsYXllcidzIHBlbmRpbmcgc3RhdGUgYmVmb3JlIHRoZSBkZWx0YSBpcyBudWxsZWQK
KyAgICAgICAgb3V0LiBUaGUgdXBkYXRlZCBzdGF0ZSBpc24ndCB1c2VkIGFueXdoZXJlIHlldCwg
YnV0IGZ1dHVyZSBjaGFuZ2VzIHdpbGwKKyAgICAgICAgaW1wbGVtZW50IGNvbW1pdHRpbmcgdGhp
cyBzdGF0ZSBpbnRvIHRoZSByZW5kZXJpbmcgcGlwZWxpbmUuCisKKyAgICAgICAgVGhlcmUncyBi
aXRzIG9mIHN0YXRlIG5vdCB5ZXQgYmVpbmcgbWFuYWdlZCBieSBDb21wb3NpdGlvbkxheWVyLCBl
LmcuCisgICAgICAgIGRlYnVnIHZpc3VhbHMsIGZpbHRlcnMgYW5kIGFuaW1hdGlvbnMuIFRoZXNl
IHdpbGwgYmUgYWRkcmVzc2VkIGxhdGVyLgorCisgICAgICAgIFRoZSBtX3NvbGlkQ29sb3IgbWVt
YmVyIHZhcmlhYmxlIGlzIGFkZGVkIHRvIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciBpbgorICAg
ICAgICBvcmRlciB0byBwcm9wZXJseSBzdG9yZSB0aGUgc29saWQgY29sb3IgdmFsdWUuIE5vcm1h
bGx5IHRoaXMgd291bGQgYmUKKyAgICAgICAgY29udGFpbmVkIGJ5IHRoZSBwYXJlbnQgR3JhcGhp
Y3NMYXllciBjbGFzcywgYnV0IG5vIHN1Y2ggbWVtYmVyIHZhcmlhYmxlCisgICAgICAgIGV4aXN0
cyB0aGVyZS4KKworICAgICAgICAqIHBsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2U6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5jcHA6
IEFkZGVkLgorICAgICAgICAoTmljb3NpYTo6UGxhdGZvcm1MYXllcjo6UGxhdGZvcm1MYXllcik6
CisgICAgICAgIChOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpDb21wb3NpdGlvbkxheWVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVy
Lmg6IEFkZGVkLgorICAgICAgICAoTmljb3NpYTo6UGxhdGZvcm1MYXllcjo6aXNDb21wb3NpdGlv
bkxheWVyIGNvbnN0KToKKyAgICAgICAgKE5pY29zaWE6OlBsYXRmb3JtTGF5ZXI6OmlkIGNvbnN0
KToKKyAgICAgICAgKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OmNyZWF0ZSk6CisgICAgICAg
IChOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlOjpGbGFnczo6RmxhZ3MpOgor
ICAgICAgICAoTmljb3NpYTo6Q29tcG9zaXRpb25MYXllcjo6dXBkYXRlU3RhdGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzZXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnNldEFuY2hvclBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENoaWxkcmVuVHJhbnNmb3JtKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0UHJlc2VydmVzM0QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRNYXNrc1RvQm91bmRz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0RHJhd3ND
b250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2V0Q29udGVudHNPcGFxdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpzZXRCYWNrZmFjZVZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRPcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUaWxlU2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVGls
ZVBoYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNUb1NvbGlkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRNYXNrTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpzZXRSZXBsaWNhdGVkQnlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKwogMjAxOC0wNy0xNSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIGFwcHMgb24gbWFjT1Nd
IFBsYXlpbmcgZW1iZWRkZWQgVHdpdHRlciB2aWRlb3MgaW4gdGhlIE5ld3MgYXBwIGNyYXNoZXMg
dGhlIHdlYiBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0
dXJlTWFwcGVyLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5j
bWFrZQppbmRleCA2ZWFiNmEwYTE4OTVhZGFmNzg3NTFkMTkwYzE2ODhkNDdiZmM3N2ZmLi45ODVj
YTE1OTgwMjJiZjkzN2JhNDA2M2IyNzIzMzAyYzk2NzlhMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2UKQEAgLTUwLDYgKzUwLDcgQEAgaWYgKFVTRV9D
T09SRElOQVRFRF9HUkFQSElDUykKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9O
aWNvc2lhUGFpbnRpbmdFbmdpbmUuY3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuY3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lVGhyZWFkZWQuY3BwCisgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuY3BwCiAKICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25S
ZWNvcmRlci5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNv
c2lhUGFpbnRpbmdDb250ZXh0Q2Fpcm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU1MGQwNDc4OTE4NDVlNzE5NTFhZWM2ZjgzYmVjY2M0YzNjOWU2ZmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZAorICogICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBIT0xERVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOaWNvc2lhUGxhdGZvcm1MYXllci5oIgorCituYW1l
c3BhY2UgTmljb3NpYSB7CisKK1BsYXRmb3JtTGF5ZXI6OlBsYXRmb3JtTGF5ZXIodWludDY0X3Qg
aWQpCisgICAgOiBtX2lkKGlkKQoreworfQorCitQbGF0Zm9ybUxheWVyOjp+UGxhdGZvcm1MYXll
cigpID0gZGVmYXVsdDsKKworQ29tcG9zaXRpb25MYXllcjo6Q29tcG9zaXRpb25MYXllcih1aW50
NjRfdCBpZCkKKyAgICA6IFBsYXRmb3JtTGF5ZXIoaWQpCit7Cit9CisKK0NvbXBvc2l0aW9uTGF5
ZXI6On5Db21wb3NpdGlvbkxheWVyKCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVzcGFjZSBOaWNv
c2lhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L05pY29zaWFQbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE4YTlmNDE0OGMx
YzAwZWJkZDg0MmQzYjRjNDkyYmVjODA1ZTZlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaApA
QCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBNZXRyb2xvZ2ljYWwg
R3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yLmgi
CisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQzRC5oIgorI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgIlRy
YW5zZm9ybWF0aW9uTWF0cml4LmgiCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CisK
K25hbWVzcGFjZSBOaWNvc2lhIHsKKworY2xhc3MgUGxhdGZvcm1MYXllciA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxQbGF0Zm9ybUxheWVyPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
UGxhdGZvcm1MYXllcigpOworCisgICAgdmlydHVhbCBib29sIGlzQ29tcG9zaXRpb25MYXllcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB1aW50NjRfdCBpZCgpIGNvbnN0IHsgcmV0
dXJuIG1faWQ7IH0KKworcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IFBsYXRmb3JtTGF5ZXIodWlu
dDY0X3QpOworCisgICAgdWludDY0X3QgbV9pZDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIExv
Y2sgbG9jazsKKyAgICB9IG1fc3RhdGU7Cit9OworCitjbGFzcyBDb21wb3NpdGlvbkxheWVyIDog
cHVibGljIFBsYXRmb3JtTGF5ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q29tcG9zaXRp
b25MYXllcj4gY3JlYXRlKHVpbnQ2NF90IGlkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQ29tcG9zaXRpb25MYXllcihpZCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5Db21w
b3NpdGlvbkxheWVyKCk7CisKKyAgICBib29sIGlzQ29tcG9zaXRpb25MYXllcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKworICAgIHN0cnVjdCBMYXllclN0YXRlIHsKKyAgICAg
ICAgc3RydWN0IERlbHRhIHsKKyAgICAgICAgICAgIERlbHRhKCkgPSBkZWZhdWx0OworCisgICAg
ICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgICAg
ICAgICAgYm9vbCBwb3NpdGlvbkNoYW5nZWQgOiAxOworICAgICAgICAgICAgICAgICAgICBib29s
IGFuY2hvclBvaW50Q2hhbmdlZCA6IDE7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgc2l6ZUNo
YW5nZWQgOiAxOworICAgICAgICAgICAgICAgICAgICBib29sIHRyYW5zZm9ybUNoYW5nZWQgOiAx
OworICAgICAgICAgICAgICAgICAgICBib29sIGNoaWxkcmVuVHJhbnNmb3JtQ2hhbmdlZCA6IDE7
CisgICAgICAgICAgICAgICAgICAgIGJvb2wgY29udGVudHNSZWN0Q2hhbmdlZCA6IDE7CisgICAg
ICAgICAgICAgICAgICAgIGJvb2wgY29udGVudHNUaWxpbmdDaGFuZ2VkIDogMTsKKyAgICAgICAg
ICAgICAgICAgICAgYm9vbCBvcGFjaXR5Q2hhbmdlZCA6IDE7CisgICAgICAgICAgICAgICAgICAg
IGJvb2wgc29saWRDb2xvckNoYW5nZWQgOiAxOworICAgICAgICAgICAgICAgICAgICBib29sIGNo
aWxkcmVuQ2hhbmdlZCA6IDE7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgbWFza0NoYW5nZWQg
OiAxOworICAgICAgICAgICAgICAgICAgICBib29sIHJlcGxpY2FDaGFuZ2VkIDogMTsKKyAgICAg
ICAgICAgICAgICAgICAgYm9vbCBmbGFnc0NoYW5nZWQgOiAxOworICAgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsdWUgeyAwIH07CisgICAgICAgICAgICB9Owor
ICAgICAgICB9IGRlbHRhOworCisgICAgICAgIHN0cnVjdCBGbGFncyB7CisgICAgICAgICAgICBG
bGFncygpCisgICAgICAgICAgICAgICAgOiBjb250ZW50c1Zpc2libGUodHJ1ZSkKKyAgICAgICAg
ICAgICAgICAsIGJhY2tmYWNlVmlzaWJsZSh0cnVlKQorICAgICAgICAgICAgeyB9CisKKyAgICAg
ICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgICAg
ICAgICBib29sIGNvbnRlbnRzT3BhcXVlIDogMTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBk
cmF3c0NvbnRlbnQgOiAxOworICAgICAgICAgICAgICAgICAgICBib29sIGNvbnRlbnRzVmlzaWJs
ZSA6IDE7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgYmFja2ZhY2VWaXNpYmxlIDogMTsKKyAg
ICAgICAgICAgICAgICAgICAgYm9vbCBtYXNrc1RvQm91bmRzIDogMTsKKyAgICAgICAgICAgICAg
ICAgICAgYm9vbCBwcmVzZXJ2ZXMzRCA6IDE7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgICAgICB1aW50MzJfdCB2YWx1ZSB7IDAgfTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0g
ZmxhZ3M7CisKKyAgICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBwb3NpdGlvbjsKKyAgICAgICAg
V2ViQ29yZTo6RmxvYXRQb2ludDNEIGFuY2hvclBvaW50OworICAgICAgICBXZWJDb3JlOjpGbG9h
dFNpemUgc2l6ZTsKKworICAgICAgICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFu
c2Zvcm07CisgICAgICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkcmVuVHJh
bnNmb3JtOworCisgICAgICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb250ZW50c1JlY3Q7CisgICAg
ICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c1RpbGVQaGFzZTsKKyAgICAgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIGNvbnRlbnRzVGlsZVNpemU7CisKKyAgICAgICAgZmxvYXQgb3BhY2l0eSB7
IDAgfTsKKyAgICAgICAgV2ViQ29yZTo6Q29sb3Igc29saWRDb2xvcjsKKworICAgICAgICBWZWN0
b3I8UmVmUHRyPENvbXBvc2l0aW9uTGF5ZXI+PiBjaGlsZHJlbjsKKyAgICAgICAgUmVmUHRyPENv
bXBvc2l0aW9uTGF5ZXI+IHJlcGxpY2E7CisgICAgICAgIFJlZlB0cjxDb21wb3NpdGlvbkxheWVy
PiBtYXNrOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgdXBk
YXRlU3RhdGUoY29uc3QgVCYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKFBsYXRmb3JtTGF5ZXI6Om1fc3RhdGUubG9jayk7CisgICAgICAgIGZ1bmN0b3IobV9zdGF0
ZS5wZW5kaW5nKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQ29tcG9zaXRpb25M
YXllcih1aW50NjRfdCk7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBMYXllclN0YXRlIHBlbmRp
bmc7CisgICAgfSBtX3N0YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgTmljb3NpYQorCisjZGVm
aW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTklDT1NJQV9QTEFURk9STUxBWUVSKFRvQ2xhc3NO
YW1lLCBwcmVkaWNhdGUpIFwKKyAgICBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKE5pY29z
aWE6OlRvQ2xhc3NOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IE5pY29zaWE6
OlBsYXRmb3JtTGF5ZXImIGxheWVyKSB7IHJldHVybiBsYXllci5wcmVkaWNhdGU7IH0gXAorICAg
IFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19O
SUNPU0lBX1BMQVRGT1JNTEFZRVIoQ29tcG9zaXRpb25MYXllciwgaXNDb21wb3NpdGlvbkxheWVy
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcAppbmRleCA0MmRjN2I5OTkxMGZlMzBiNDdhZDQ0NTA4ZGYzNTYyNmU2NDE3NTJj
Li42YTQ5OTkxZjc3YjkzZjMyNzg5N2I3ZWYxZTJlMGI1OTIzYTgwYzZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAt
MTQzLDYgKzE0Myw4IEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKFR5cGUgbGF5ZXJUeXBlLCBHcmFwaGljc0xheWVyCiB7CiAgICAgc3RhdGljIENv
b3JkaW5hdGVkTGF5ZXJJRCBuZXh0TGF5ZXJJRCA9IDE7CiAgICAgbV9pZCA9IG5leHRMYXllcklE
Kys7CisKKyAgICBtX25pY29zaWEubGF5ZXIgPSBOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpj
cmVhdGUobV9pZCk7CiB9CiAKIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6fkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcigpCkBAIC0yMTcsNiArMjE5LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnNldFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHApCiAKICAgICBHcmFwaGlj
c0xheWVyOjpzZXRQb3NpdGlvbihwKTsKICAgICBtX2xheWVyU3RhdGUucG9zaXRpb25DaGFuZ2Vk
ID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEucG9zaXRpb25DaGFuZ2VkID0gdHJ1ZTsKICAg
ICBkaWRDaGFuZ2VHZW9tZXRyeSgpOwogfQogCkBAIC0yMjcsNiArMjMwLDcgQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldEFuY2hvclBvaW50KGNvbnN0IEZsb2F0UG9pbnQzRCYg
cCkKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNldEFuY2hvclBvaW50KHApOwogICAgIG1fbGF5ZXJT
dGF0ZS5hbmNob3JQb2ludENoYW5nZWQgPSB0cnVlOworICAgIG1fbmljb3NpYS5kZWx0YS5hbmNo
b3JQb2ludENoYW5nZWQgPSB0cnVlOwogICAgIGRpZENoYW5nZUdlb21ldHJ5KCk7CiB9CiAKQEAg
LTIzNyw2ICsyNDEsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0U2l6ZShj
b25zdCBGbG9hdFNpemUmIHNpemUpCiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRTaXplKHNpemUp
OwogICAgIG1fbGF5ZXJTdGF0ZS5zaXplQ2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRl
bHRhLnNpemVDaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGlmIChtYXNrTGF5ZXIoKSkKICAgICAgICAg
bWFza0xheWVyKCktPnNldFNpemUoc2l6ZSk7CkBAIC0yNTAsNiArMjU1LDcgQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdCkKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNldFRyYW5zZm9ybSh0KTsKICAgICBtX2xh
eWVyU3RhdGUudHJhbnNmb3JtQ2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLnRy
YW5zZm9ybUNoYW5nZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlR2VvbWV0cnkoKTsKIH0KQEAg
LTI2MSw2ICsyNjcsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q2hpbGRy
ZW5UcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmCiAKICAgICBHcmFwaGljc0xh
eWVyOjpzZXRDaGlsZHJlblRyYW5zZm9ybSh0KTsKICAgICBtX2xheWVyU3RhdGUuY2hpbGRyZW5U
cmFuc2Zvcm1DaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEuY2hpbGRyZW5UcmFu
c2Zvcm1DaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGRpZENoYW5nZUdlb21ldHJ5KCk7CiB9CkBAIC0y
NzMsNiArMjgwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFByZXNlcnZl
czNEKGJvb2wgYikKICAgICBHcmFwaGljc0xheWVyOjpzZXRQcmVzZXJ2ZXMzRChiKTsKICAgICBt
X2xheWVyU3RhdGUucHJlc2VydmVzM0QgPSBiOwogICAgIG1fbGF5ZXJTdGF0ZS5mbGFnc0NoYW5n
ZWQgPSB0cnVlOworICAgIG1fbmljb3NpYS5kZWx0YS5mbGFnc0NoYW5nZWQgPSB0cnVlOwogCiAg
ICAgZGlkQ2hhbmdlR2VvbWV0cnkoKTsKIH0KQEAgLTI4NCw2ICsyOTIsNyBAQCB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0TWFza3NUb0JvdW5kcyhib29sIGIpCiAgICAgR3JhcGhp
Y3NMYXllcjo6c2V0TWFza3NUb0JvdW5kcyhiKTsKICAgICBtX2xheWVyU3RhdGUubWFza3NUb0Jv
dW5kcyA9IGI7CiAgICAgbV9sYXllclN0YXRlLmZsYWdzQ2hhbmdlZCA9IHRydWU7CisgICAgbV9u
aWNvc2lhLmRlbHRhLmZsYWdzQ2hhbmdlZCA9IHRydWU7CiAKICAgICBkaWRDaGFuZ2VHZW9tZXRy
eSgpOwogfQpAQCAtMjk1LDYgKzMwNCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXREcmF3c0NvbnRlbnQoYm9vbCBiKQogICAgIEdyYXBoaWNzTGF5ZXI6OnNldERyYXdzQ29u
dGVudChiKTsKICAgICBtX2xheWVyU3RhdGUuZHJhd3NDb250ZW50ID0gYjsKICAgICBtX2xheWVy
U3RhdGUuZmxhZ3NDaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEuZmxhZ3NDaGFu
Z2VkID0gdHJ1ZTsKIAogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KQEAgLTMwNiw2ICsz
MTYsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNWaXNpYmxl
KGJvb2wgYikKICAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1Zpc2libGUoYik7CiAgICAg
bV9sYXllclN0YXRlLmNvbnRlbnRzVmlzaWJsZSA9IGI7CiAgICAgbV9sYXllclN0YXRlLmZsYWdz
Q2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLmZsYWdzQ2hhbmdlZCA9IHRydWU7
CiAKICAgICBpZiAobWFza0xheWVyKCkpCiAgICAgICAgIG1hc2tMYXllcigpLT5zZXRDb250ZW50
c1Zpc2libGUoYik7CkBAIC0zMjEsNiArMzMyLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzT3BhcXVlKGJvb2wgYikKICAgICBHcmFwaGljc0xheWVyOjpzZXRD
b250ZW50c09wYXF1ZShiKTsKICAgICBtX2xheWVyU3RhdGUuY29udGVudHNPcGFxdWUgPSBiOwog
ICAgIG1fbGF5ZXJTdGF0ZS5mbGFnc0NoYW5nZWQgPSB0cnVlOworICAgIG1fbmljb3NpYS5kZWx0
YS5mbGFnc0NoYW5nZWQgPSB0cnVlOwogCiAgICAgLy8gRGVtYW5kIGEgcmVwYWludCBvZiB0aGUg
d2hvbGUgbGF5ZXIuCiAgICAgaWYgKCFtX25lZWRzRGlzcGxheS5jb21wbGV0ZUxheWVyKSB7CkBA
IC0zNDEsNiArMzUzLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldEJhY2tm
YWNlVmlzaWJpbGl0eShib29sIGIpCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0QmFja2ZhY2VWaXNp
YmlsaXR5KGIpOwogICAgIG1fbGF5ZXJTdGF0ZS5iYWNrZmFjZVZpc2libGUgPSBiOwogICAgIG1f
bGF5ZXJTdGF0ZS5mbGFnc0NoYW5nZWQgPSB0cnVlOworICAgIG1fbmljb3NpYS5kZWx0YS5mbGFn
c0NoYW5nZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogfQpAQCAtMzUz
LDYgKzM2Niw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRPcGFjaXR5KGZs
b2F0IG9wYWNpdHkpCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0T3BhY2l0eShvcGFjaXR5KTsKICAg
ICBtX2xheWVyU3RhdGUub3BhY2l0eSA9IG9wYWNpdHk7CiAgICAgbV9sYXllclN0YXRlLm9wYWNp
dHlDaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEub3BhY2l0eUNoYW5nZWQgPSB0
cnVlOwogCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogfQpAQCAtMzY1LDYgKzM3OSw3IEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1JlY3QoY29uc3QgRmxv
YXRSZWN0JiByKQogICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzUmVjdChyKTsKICAgICBt
X2xheWVyU3RhdGUuY29udGVudHNSZWN0ID0gcjsKICAgICBtX2xheWVyU3RhdGUuY29udGVudHNS
ZWN0Q2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLmNvbnRlbnRzUmVjdENoYW5n
ZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogfQpAQCAtMzc3LDYgKzM5
Miw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVTaXpl
KGNvbnN0IEZsb2F0U2l6ZSYgcykKICAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RpbGVT
aXplKHMpOwogICAgIG1fbGF5ZXJTdGF0ZS5jb250ZW50c1RpbGVTaXplID0gczsKICAgICBtX2xh
eWVyU3RhdGUuY29udGVudHNUaWxpbmdDaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVs
dGEuY29udGVudHNUaWxpbmdDaGFuZ2VkID0gdHJ1ZTsKICAgICBkaWRDaGFuZ2VMYXllclN0YXRl
KCk7CiB9CiAKQEAgLTM4OCw2ICs0MDQsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3QgRmxvYXRTaXplJiBwKQogICAgIEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzVGlsZVBoYXNlKHApOwogICAgIG1fbGF5ZXJTdGF0ZS5jb250ZW50
c1RpbGVQaGFzZSA9IHA7CiAgICAgbV9sYXllclN0YXRlLmNvbnRlbnRzVGlsaW5nQ2hhbmdlZCA9
IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLmNvbnRlbnRzVGlsaW5nQ2hhbmdlZCA9IHRydWU7
CiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwogfQogCkBAIC00NTMsMTEgKzQ3MCwxMyBAQCBi
b29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVy
YXRpb25zJiBuZXdGaWx0ZXJzKQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogewotICAgIGlmIChtX2xh
eWVyU3RhdGUuc29saWRDb2xvciA9PSBjb2xvcikKKyAgICBpZiAobV9zb2xpZENvbG9yID09IGNv
bG9yKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX3NvbGlkQ29sb3IgPSBjb2xvcjsKICAgICBt
X2xheWVyU3RhdGUuc29saWRDb2xvciA9IGNvbG9yOwogICAgIG1fbGF5ZXJTdGF0ZS5zb2xpZENv
bG9yQ2hhbmdlZCA9IHRydWU7CisgICAgbV9uaWNvc2lhLmRlbHRhLnNvbGlkQ29sb3JDaGFuZ2Vk
ID0gdHJ1ZTsKIAogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KQEAgLTUxNiw2ICs1MzUs
NyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0TWFza0xheWVyKEdyYXBoaWNz
TGF5ZXIqIGxheWVyKQogCiAgICAgbV9sYXllclN0YXRlLm1hc2sgPSBjb29yZGluYXRlZExheWVy
LmlkKCk7CiAgICAgbV9sYXllclN0YXRlLm1hc2tDaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29z
aWEuZGVsdGEubWFza0NoYW5nZWQgPSB0cnVlOwogCiAgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgp
OwogfQpAQCAtNTQwLDYgKzU2MCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikKICAgICBHcmFwaGljc0xh
eWVyOjpzZXRSZXBsaWNhdGVkQnlMYXllcihsYXllcik7CiAgICAgbV9sYXllclN0YXRlLnJlcGxp
Y2EgPSB0b0Nvb3JkaW5hdGVkTGF5ZXJJRChsYXllcik7CiAgICAgbV9sYXllclN0YXRlLnJlcGxp
Y2FDaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEucmVwbGljYUNoYW5nZWQgPSB0
cnVlOwogICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKIH0KIApAQCAtNjAyLDYgKzYyMyw4IEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQ2hpbGRyZW4oKQogICAgICAgICBy
ZXR1cm47CiAgICAgbV9zaG91bGRTeW5jQ2hpbGRyZW4gPSBmYWxzZTsKICAgICBtX2xheWVyU3Rh
dGUuY2hpbGRyZW5DaGFuZ2VkID0gdHJ1ZTsKKyAgICBtX25pY29zaWEuZGVsdGEuY2hpbGRyZW5D
aGFuZ2VkID0gdHJ1ZTsKKwogICAgIG1fbGF5ZXJTdGF0ZS5jaGlsZHJlbi5jbGVhcigpOwogICAg
IGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbigpKQogICAgICAgICBtX2xheWVyU3RhdGUuY2hp
bGRyZW4uYXBwZW5kKHRvQ29vcmRpbmF0ZWRMYXllcklEKGNoaWxkKSk7CkBAIC03NTAsNiArNzcz
LDY5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCkKICAgICAvLyBPbmx5IHVuc2V0IG1fbW92aW5nVmlzaWJsZVJl
Y3QgYWZ0ZXIgd2UgaGF2ZSB1cGRhdGVkIHRoZSB2aXNpYmxlIHJlY3QgYWZ0ZXIgdGhlIGFuaW1h
dGlvbiBzdG9wcGVkLgogICAgIGlmICghaGFzQWN0aXZlVHJhbnNmb3JtQW5pbWF0aW9uKQogICAg
ICAgICBtX21vdmluZ1Zpc2libGVSZWN0ID0gZmFsc2U7CisKKyAgICB7CisgICAgICAgIG1fbmlj
b3NpYS5sYXllci0+dXBkYXRlU3RhdGUoCisgICAgICAgICAgICBbdGhpc10oTmljb3NpYTo6Q29t
cG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgc3RhdGUpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgLy8gT1IgdGhlIGxvY2FsIGRlbHRhIHZhbHVlIGludG8gdGhlIGxheWVyJ3MgcGVu
ZGluZyBzdGF0ZSBkZWx0YS4gQWZ0ZXIgdGhhdCwKKyAgICAgICAgICAgICAgICAvLyBnbyB0aHJv
dWdoIGVhY2ggbG9jYWwgY2hhbmdlIGFuZCB1cGRhdGUgdGhlIHBlbmRpbmcgc3RhdGUgYWNjb3Jk
aW5nbHkuCisgICAgICAgICAgICAgICAgYXV0byYgbG9jYWxEZWx0YSA9IG1fbmljb3NpYS5kZWx0
YTsKKyAgICAgICAgICAgICAgICBzdGF0ZS5kZWx0YS52YWx1ZSB8PSBsb2NhbERlbHRhLnZhbHVl
OworCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsRGVsdGEucG9zaXRpb25DaGFuZ2VkKQorICAg
ICAgICAgICAgICAgICAgICBzdGF0ZS5wb3NpdGlvbiA9IHBvc2l0aW9uKCk7CisgICAgICAgICAg
ICAgICAgaWYgKGxvY2FsRGVsdGEuYW5jaG9yUG9pbnRDaGFuZ2VkKQorICAgICAgICAgICAgICAg
ICAgICBzdGF0ZS5hbmNob3JQb2ludCA9IGFuY2hvclBvaW50KCk7CisgICAgICAgICAgICAgICAg
aWYgKGxvY2FsRGVsdGEuc2l6ZUNoYW5nZWQpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNp
emUgPSBzaXplKCk7CisKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxEZWx0YS50cmFuc2Zvcm1D
aGFuZ2VkKQorICAgICAgICAgICAgICAgICAgICBzdGF0ZS50cmFuc2Zvcm0gPSB0cmFuc2Zvcm0o
KTsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxEZWx0YS5jaGlsZHJlblRyYW5zZm9ybUNoYW5n
ZWQpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlLmNoaWxkcmVuVHJhbnNmb3JtID0gY2hpbGRy
ZW5UcmFuc2Zvcm0oKTsKKworICAgICAgICAgICAgICAgIGlmIChsb2NhbERlbHRhLmNvbnRlbnRz
UmVjdENoYW5nZWQpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlLmNvbnRlbnRzUmVjdCA9IGNv
bnRlbnRzUmVjdCgpOworICAgICAgICAgICAgICAgIGlmIChsb2NhbERlbHRhLmNvbnRlbnRzVGls
aW5nQ2hhbmdlZCkgeworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5jb250ZW50c1RpbGVQaGFz
ZSA9IGNvbnRlbnRzVGlsZVBoYXNlKCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLmNvbnRl
bnRzVGlsZVNpemUgPSBjb250ZW50c1RpbGVTaXplKCk7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgaWYgKGxvY2FsRGVsdGEub3BhY2l0eUNoYW5nZWQpCisgICAgICAgICAg
ICAgICAgICAgIHN0YXRlLm9wYWNpdHkgPSBvcGFjaXR5KCk7CisgICAgICAgICAgICAgICAgaWYg
KGxvY2FsRGVsdGEuc29saWRDb2xvckNoYW5nZWQpCisgICAgICAgICAgICAgICAgICAgIHN0YXRl
LnNvbGlkQ29sb3IgPSBtX3NvbGlkQ29sb3I7CisKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxE
ZWx0YS5jaGlsZHJlbkNoYW5nZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuY2hpbGRy
ZW4gPSBXVEY6Om1hcChjaGlsZHJlbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgW10oYXV0
byogY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4oY2hpbGQp
LT5tX25pY29zaWEubGF5ZXI7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxEZWx0YS5tYXNrQ2hhbmdlZCkg
eworICAgICAgICAgICAgICAgICAgICBhdXRvKiBtYXNrID0gZG93bmNhc3Q8Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyPihtYXNrTGF5ZXIoKSk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlLm1h
c2sgPSBtYXNrID8gbWFzay0+bV9uaWNvc2lhLmxheWVyIDogbnVsbHB0cjsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxEZWx0YS5yZXBsaWNhQ2hhbmdlZCkg
eworICAgICAgICAgICAgICAgICAgICBhdXRvKiByZXBsaWNhID0gZG93bmNhc3Q8Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyPihyZXBsaWNhTGF5ZXIoKSk7CisgICAgICAgICAgICAgICAgICAgIHN0
YXRlLnJlcGxpY2EgPSByZXBsaWNhID8gcmVwbGljYS0+bV9uaWNvc2lhLmxheWVyIDogbnVsbHB0
cjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxEZWx0YS5m
bGFnc0NoYW5nZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuZmxhZ3MuY29udGVudHNP
cGFxdWUgPSBjb250ZW50c09wYXF1ZSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5mbGFn
cy5kcmF3c0NvbnRlbnQgPSBkcmF3c0NvbnRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgc3Rh
dGUuZmxhZ3MuY29udGVudHNWaXNpYmxlID0gY29udGVudHNBcmVWaXNpYmxlKCk7CisgICAgICAg
ICAgICAgICAgICAgIHN0YXRlLmZsYWdzLmJhY2tmYWNlVmlzaWJsZSA9IGJhY2tmYWNlVmlzaWJp
bGl0eSgpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5mbGFncy5tYXNrc1RvQm91bmRzID0g
bWFza3NUb0JvdW5kcygpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZS5mbGFncy5wcmVzZXJ2
ZXMzRCA9IHByZXNlcnZlczNEKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7
CisgICAgICAgIG1fbmljb3NpYS5kZWx0YSA9IHsgfTsKKyAgICB9CiB9CiAKIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jUGVuZGluZ1N0YXRlQ2hhbmdlc0luY2x1ZGluZ1N1Ykxh
eWVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmgKaW5kZXggYWRjODY5ZTdiZjY2NmYyNTUxYWY1ZDRkN2ZmMjZkOTExYTJkMDUxNi4u
YjM5MzI4YmNkMDA0Y2FlZjQ1ZWIyODM0MWUwYjkwNDMzM2JmMmM4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1
ZGUgIk5pY29zaWFCdWZmZXIuaCIKKyNpbmNsdWRlICJOaWNvc2lhUGxhdGZvcm1MYXllci5oIgog
I2luY2x1ZGUgIlRleHR1cmVNYXBwZXJBbmltYXRpb24uaCIKICNpbmNsdWRlICJUaWxlZEJhY2tp
bmdTdG9yZS5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgiCkBAIC0xODYs
NiArMTg3LDggQEAgcHJpdmF0ZToKICAgICBGbG9hdFBvaW50IG1fYWRqdXN0ZWRQb3NpdGlvbjsK
ICAgICBGbG9hdFBvaW50M0QgbV9hZGp1c3RlZEFuY2hvclBvaW50OwogCisgICAgQ29sb3IgbV9z
b2xpZENvbG9yOworCiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV9pc1B1cmdpbmc7CiAjZW5k
aWYKQEAgLTIyMCw2ICsyMjMsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX2FuaW1hdGlvblN0
YXJ0ZWRUaW1lcjsKICAgICBUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyBtX2FuaW1hdGlvbnM7CiAg
ICAgTW9ub3RvbmljVGltZSBtX2xhc3RBbmltYXRpb25TdGFydFRpbWU7CisKKyAgICBzdHJ1Y3Qg
eworICAgICAgICBSZWZQdHI8Tmljb3NpYTo6Q29tcG9zaXRpb25MYXllcj4gbGF5ZXI7CisgICAg
ICAgIE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGU6OkRlbHRhIGRlbHRhOwor
ICAgIH0gbV9uaWNvc2lhOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>